@kern-ux-annex/kern-angular-kit 1.0.2 → 1.2.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.
@@ -27,16 +27,20 @@ declare class KernDialog {
27
27
  readonly btnCloseLabelText: _angular_core.InputSignal<string>;
28
28
  readonly btnPrimaryLabelText: _angular_core.InputSignal<string | null>;
29
29
  readonly btnSecondaryLabelText: _angular_core.InputSignal<string | null>;
30
+ readonly formId: _angular_core.InputSignal<string | null>;
31
+ readonly forceBodyScrollLock: _angular_core.InputSignal<boolean>;
30
32
  readonly cancelEvent: _angular_core.OutputEmitterRef<Event>;
31
33
  readonly btnPrimaryClickEvent: _angular_core.OutputEmitterRef<Event>;
32
34
  readonly btnSecondaryClickEvent: _angular_core.OutputEmitterRef<Event>;
33
35
  private readonly generatedId;
36
+ private readonly scrollLockService;
34
37
  protected readonly effectiveId: _angular_core.Signal<string>;
35
38
  private readonly dialog;
36
39
  showModal(): void;
37
40
  closeModal(): void;
41
+ protected unlockBodyScroll(): void;
38
42
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<KernDialog, never>;
39
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<KernDialog, "kern-dialog", never, { "dialogId": { "alias": "dialogId"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "btnCloseLabelText": { "alias": "btnCloseLabelText"; "required": false; "isSignal": true; }; "btnPrimaryLabelText": { "alias": "btnPrimaryLabelText"; "required": false; "isSignal": true; }; "btnSecondaryLabelText": { "alias": "btnSecondaryLabelText"; "required": false; "isSignal": true; }; }, { "cancelEvent": "cancelEvent"; "btnPrimaryClickEvent": "btnPrimaryClickEvent"; "btnSecondaryClickEvent": "btnSecondaryClickEvent"; }, never, ["*"], true, never>;
43
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<KernDialog, "kern-dialog", never, { "dialogId": { "alias": "dialogId"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "btnCloseLabelText": { "alias": "btnCloseLabelText"; "required": false; "isSignal": true; }; "btnPrimaryLabelText": { "alias": "btnPrimaryLabelText"; "required": false; "isSignal": true; }; "btnSecondaryLabelText": { "alias": "btnSecondaryLabelText"; "required": false; "isSignal": true; }; "formId": { "alias": "formId"; "required": false; "isSignal": true; }; "forceBodyScrollLock": { "alias": "forceBodyScrollLock"; "required": false; "isSignal": true; }; }, { "cancelEvent": "cancelEvent"; "btnPrimaryClickEvent": "btnPrimaryClickEvent"; "btnSecondaryClickEvent": "btnSecondaryClickEvent"; }, never, ["*"], true, never>;
40
44
  }
41
45
 
42
46
  declare class KernLoader {
@@ -60,9 +64,10 @@ declare class KernButton {
60
64
  readonly iconLeft: _angular_core.InputSignal<string | null>;
61
65
  readonly iconRight: _angular_core.InputSignal<string | null>;
62
66
  readonly srOnlyLabel: _angular_core.InputSignal<boolean>;
67
+ readonly formId: _angular_core.InputSignal<string | null>;
63
68
  readonly clickEvent: _angular_core.OutputEmitterRef<Event>;
64
69
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<KernButton, never>;
65
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<KernButton, "kern-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "iconLeft": { "alias": "iconLeft"; "required": false; "isSignal": true; }; "iconRight": { "alias": "iconRight"; "required": false; "isSignal": true; }; "srOnlyLabel": { "alias": "srOnlyLabel"; "required": false; "isSignal": true; }; }, { "clickEvent": "clickEvent"; }, never, ["*"], true, never>;
70
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<KernButton, "kern-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "block": { "alias": "block"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "iconLeft": { "alias": "iconLeft"; "required": false; "isSignal": true; }; "iconRight": { "alias": "iconRight"; "required": false; "isSignal": true; }; "srOnlyLabel": { "alias": "srOnlyLabel"; "required": false; "isSignal": true; }; "formId": { "alias": "formId"; "required": false; "isSignal": true; }; }, { "clickEvent": "clickEvent"; }, never, ["*"], true, never>;
66
71
  }
67
72
 
68
73
  declare class KernCard {
@@ -441,6 +446,7 @@ declare class KernInputText {
441
446
  protected readonly effectiveId: _angular_core.Signal<string>;
442
447
  protected readonly inputDescribedBy: _angular_core.Signal<string | null>;
443
448
  protected onInput(event: Event): void;
449
+ protected onKeydown(event: KeyboardEvent): void;
444
450
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<KernInputText, never>;
445
451
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<KernInputText, "kern-input-text", never, { "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "labelText": { "alias": "labelText"; "required": true; "isSignal": true; }; "optional": { "alias": "optional"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "inputmode": { "alias": "inputmode"; "required": false; "isSignal": true; }; "maxlength": { "alias": "maxlength"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; "hintTemplate": { "alias": "hintTemplate"; "required": false; "isSignal": true; }; "hintText": { "alias": "hintText"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "titleText": { "alias": "titleText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof ControlValueAccessorDirective; inputs: {}; outputs: {}; }]>;
446
452
  }
@@ -607,711 +613,6 @@ declare class KernAngularKitModule {
607
613
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<KernAngularKitModule>;
608
614
  }
609
615
 
610
- /**
611
- * TypeScript interfaces for KERN Angular Kit components
612
- * Provides IntelliSense support and type safety
613
- */
614
- interface KernAccordionInputs {
615
- title: string;
616
- open?: boolean;
617
- }
618
- interface KernAccordionGroupInputs {
619
- }
620
- interface KernAlertInputs {
621
- title: string;
622
- type?: 'info' | 'success' | 'warning' | 'danger';
623
- }
624
- interface KernBadgeInputs {
625
- variant?: 'info' | 'success' | 'warning' | 'danger';
626
- icon?: string | null;
627
- }
628
- interface KernButtonInputs {
629
- variant?: 'primary' | 'secondary' | 'tertiary';
630
- block?: boolean;
631
- disabled?: boolean;
632
- type?: 'button' | 'submit' | 'reset';
633
- iconLeft?: string | null;
634
- iconRight?: string | null;
635
- srOnlyLabel?: boolean;
636
- }
637
- interface KernButtonOutputs {
638
- clickEvent: Event;
639
- }
640
- interface KernCardInputs {
641
- title?: string | null;
642
- titleLinkHref?: string | null;
643
- titleLinkTarget?: '_self' | '_blank' | '_parent' | '_top';
644
- preline?: string | null;
645
- subline?: string | null;
646
- imgSrc?: string | null;
647
- imgAlt?: string | null;
648
- size?: 'default' | 'small' | 'large';
649
- headingLevel?: '1' | '2' | '3' | '4' | '5';
650
- btnPrimaryLabelText?: string | null;
651
- btnSecondaryLabelText?: string | null;
652
- }
653
- interface KernCardOutputs {
654
- titleLinkClickEvent: Event;
655
- btnPrimaryClickEvent: Event;
656
- btnSecondaryClickEvent: Event;
657
- }
658
- interface KernDialogInputs {
659
- dialogId?: string;
660
- title: string;
661
- btnCloseLabelText?: string;
662
- btnPrimaryLabelText?: string | null;
663
- btnSecondaryLabelText?: string | null;
664
- }
665
- interface KernDialogOutputs {
666
- cancelEvent: Event;
667
- btnPrimaryClickEvent: Event;
668
- btnSecondaryClickEvent: Event;
669
- }
670
- interface KernDividerInputs {
671
- }
672
- interface KernIconInputs {
673
- name: string;
674
- size?: string;
675
- }
676
- interface KernLinkInputs {
677
- href: string;
678
- target?: '_self' | '_blank' | '_parent' | '_top';
679
- external?: boolean;
680
- }
681
- interface KernLoaderInputs {
682
- text?: string;
683
- }
684
- interface KernProgressInputs {
685
- value: number;
686
- max?: number;
687
- label?: string;
688
- }
689
- interface KernKopfzeileInputs {
690
- fluid?: boolean;
691
- }
692
- interface KernHeadingInputs {
693
- level?: '1' | '2' | '3' | '4' | '5' | '6';
694
- text: string;
695
- }
696
- interface KernTableInputs {
697
- responsive?: boolean;
698
- small?: boolean;
699
- striped?: boolean;
700
- caption?: string | null;
701
- columns: KernTableColumn[];
702
- data: KernTableRow[];
703
- footer?: KernTableRow[] | null;
704
- rowHeaderKey?: string | null;
705
- }
706
- interface KernSummaryInputs {
707
- titleId?: string;
708
- title?: string | null;
709
- titleNumber?: string | null;
710
- headingLevel?: '1' | '2' | '3' | '4' | '5' | '6';
711
- items: {
712
- term: string;
713
- description: string;
714
- }[];
715
- actionLinkHref?: string | null;
716
- actionLinkTarget?: '_self' | '_blank' | '_parent' | '_top';
717
- }
718
- interface KernSummaryOutputs {
719
- actionLinkClickEvent: Event;
720
- }
721
- interface KernSummaryGroupInputs {
722
- }
723
- interface KernDescriptionListInputs {
724
- items: {
725
- term: string;
726
- description: string;
727
- }[];
728
- orientation?: 'horizontal' | 'vertical';
729
- }
730
- interface KernTasklistItem {
731
- id: string;
732
- text: string;
733
- completed?: boolean;
734
- href?: string;
735
- }
736
- interface KernTasklistInputs {
737
- tasks: KernTasklistItem[];
738
- editable?: boolean;
739
- }
740
- interface KernInputBaseInputs {
741
- inputId?: string;
742
- labelText: string;
743
- optional?: boolean;
744
- readonly?: boolean;
745
- required?: boolean;
746
- }
747
- interface KernFieldsetInputs {
748
- legend: string;
749
- required?: boolean;
750
- }
751
- interface KernInputErrorInputs {
752
- errorText: string;
753
- }
754
- interface KernInputHintInputs {
755
- hintText: string;
756
- }
757
- interface KernInputTextInputs extends KernInputBaseInputs {
758
- inputmode?: 'decimal' | 'numeric' | null;
759
- maxlength?: number | null;
760
- }
761
- interface KernInputNumberInputs extends KernInputBaseInputs {
762
- min?: number | null;
763
- max?: number | null;
764
- step?: number | null;
765
- autocomplete?: string | null;
766
- placeholder?: string | null;
767
- }
768
- interface KernInputCheckboxInputs extends KernInputBaseInputs {
769
- }
770
- interface KernInputDateInputs extends KernInputBaseInputs {
771
- min?: string | null;
772
- max?: string | null;
773
- }
774
- interface KernInputEmailInputs extends KernInputBaseInputs {
775
- }
776
- interface KernInputFileInputs extends KernInputBaseInputs {
777
- accept?: string | null;
778
- multiple?: boolean;
779
- }
780
- interface KernInputPasswordInputs extends KernInputBaseInputs {
781
- maxlength?: number | null;
782
- }
783
- interface KernInputRadioInputs extends KernInputBaseInputs {
784
- value: string;
785
- name: string;
786
- }
787
- interface KernInputSelectInputs extends KernInputBaseInputs {
788
- emptyPlaceholder?: string;
789
- }
790
- interface KernInputTelInputs extends KernInputBaseInputs {
791
- }
792
- interface KernInputTextareaInputs extends KernInputBaseInputs {
793
- rows?: number | null;
794
- cols?: number | null;
795
- maxlength?: number | null;
796
- }
797
- interface KernInputUrlInputs extends KernInputBaseInputs {
798
- }
799
- interface KernContainerInputs {
800
- fluid?: boolean;
801
- }
802
- interface KernRowInputs {
803
- verticalAlign?: 'start' | 'center' | 'end' | null;
804
- horizontalAlign?: 'start' | 'center' | 'end' | 'around' | 'between' | 'evenly' | null;
805
- }
806
- interface KernColInputs {
807
- size?: number | Partial<Record<'base' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl', number>>;
808
- offset?: number | Partial<Record<'base' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl', number>>;
809
- }
810
- /**
811
- * Combined interface mapping component selectors to their input types
812
- * Useful for programmatic component configuration
813
- */
814
- interface KernComponentSchemas {
815
- 'kern-accordion': KernAccordionInputs;
816
- 'kern-accordion-group': KernAccordionGroupInputs;
817
- 'kern-alert': KernAlertInputs;
818
- 'kern-badge': KernBadgeInputs;
819
- 'kern-button': KernButtonInputs;
820
- 'kern-card': KernCardInputs;
821
- 'kern-dialog': KernDialogInputs;
822
- 'kern-divider': KernDividerInputs;
823
- 'kern-icon': KernIconInputs;
824
- 'kern-link': KernLinkInputs;
825
- 'kern-loader': KernLoaderInputs;
826
- 'kern-progress': KernProgressInputs;
827
- 'kern-kopfzeile': KernKopfzeileInputs;
828
- 'kern-heading': KernHeadingInputs;
829
- 'kern-table': KernTableInputs;
830
- 'kern-summary': KernSummaryInputs;
831
- 'kern-summary-group': KernSummaryGroupInputs;
832
- 'kern-description-list': KernDescriptionListInputs;
833
- 'kern-tasklist': KernTasklistInputs;
834
- 'kern-fieldset': KernFieldsetInputs;
835
- 'kern-input-error': KernInputErrorInputs;
836
- 'kern-input-hint': KernInputHintInputs;
837
- 'kern-input-text': KernInputTextInputs;
838
- 'kern-input-number': KernInputNumberInputs;
839
- 'kern-input-checkbox': KernInputCheckboxInputs;
840
- 'kern-input-date': KernInputDateInputs;
841
- 'kern-input-email': KernInputEmailInputs;
842
- 'kern-input-file': KernInputFileInputs;
843
- 'kern-input-password': KernInputPasswordInputs;
844
- 'kern-input-radio': KernInputRadioInputs;
845
- 'kern-input-select': KernInputSelectInputs;
846
- 'kern-input-tel': KernInputTelInputs;
847
- 'kern-input-textarea': KernInputTextareaInputs;
848
- 'kern-input-url': KernInputUrlInputs;
849
- 'kern-container': KernContainerInputs;
850
- 'kern-row': KernRowInputs;
851
- 'kern-col': KernColInputs;
852
- }
853
- /**
854
- * Type helper for getting component inputs by selector
855
- */
856
- type ComponentInputs<T extends keyof KernComponentSchemas> = KernComponentSchemas[T];
857
- /**
858
- * Union type of all component selectors
859
- */
860
- type KernComponentSelector = keyof KernComponentSchemas;
861
- /**
862
- * Type helper for getting component outputs by selector
863
- */
864
- interface KernComponentOutputs {
865
- 'kern-button': KernButtonOutputs;
866
- 'kern-card': KernCardOutputs;
867
- 'kern-dialog': KernDialogOutputs;
868
- 'kern-summary': KernSummaryOutputs;
869
- }
870
- /**
871
- * Type helper for component event handlers
872
- */
873
- type ComponentOutputs<T extends keyof KernComponentOutputs> = KernComponentOutputs[T];
874
-
875
- /**
876
- * Augment the global JSX namespace to provide IntelliSense for KERN components
877
- * when used as custom elements or in JSX/TSX contexts
878
- */
879
- declare global {
880
- namespace JSX {
881
- interface IntrinsicElements {
882
- 'kern-accordion': {
883
- title: string;
884
- open?: boolean;
885
- children?: any;
886
- };
887
- 'kern-accordion-group': {
888
- children?: any;
889
- };
890
- 'kern-alert': {
891
- title: string;
892
- type?: 'info' | 'success' | 'warning' | 'danger';
893
- children?: any;
894
- };
895
- 'kern-badge': {
896
- variant?: 'info' | 'success' | 'warning' | 'danger';
897
- icon?: string | null;
898
- children?: any;
899
- };
900
- 'kern-button': {
901
- variant?: 'primary' | 'secondary' | 'tertiary';
902
- block?: boolean;
903
- disabled?: boolean;
904
- type?: 'button' | 'submit' | 'reset';
905
- iconLeft?: string | null;
906
- iconRight?: string | null;
907
- srOnlyLabel?: boolean;
908
- onClick?: (event: Event) => void;
909
- children?: any;
910
- };
911
- 'kern-card': {
912
- title?: string | null;
913
- titleLinkHref?: string | null;
914
- titleLinkTarget?: '_self' | '_blank' | '_parent' | '_top';
915
- preline?: string | null;
916
- subline?: string | null;
917
- imgSrc?: string | null;
918
- imgAlt?: string | null;
919
- size?: 'default' | 'small' | 'large';
920
- headingLevel?: '1' | '2' | '3' | '4' | '5';
921
- btnPrimaryLabelText?: string | null;
922
- btnSecondaryLabelText?: string | null;
923
- onTitleLinkClickEvent?: (event: Event) => void;
924
- onBtnPrimaryClickEvent?: (event: Event) => void;
925
- onBtnSecondaryClickEvent?: (event: Event) => void;
926
- children?: any;
927
- };
928
- 'kern-dialog': {
929
- dialogId?: string;
930
- title: string;
931
- btnCloseLabelText?: string;
932
- btnPrimaryLabelText?: string | null;
933
- btnSecondaryLabelText?: string | null;
934
- onCancelEvent?: (event: Event) => void;
935
- onBtnPrimaryClickEvent?: (event: Event) => void;
936
- onBtnSecondaryClickEvent?: (event: Event) => void;
937
- children?: any;
938
- };
939
- 'kern-divider': {
940
- children?: any;
941
- };
942
- 'kern-icon': {
943
- name: string;
944
- size?: string;
945
- };
946
- 'kern-link': {
947
- href: string;
948
- target?: '_self' | '_blank' | '_parent' | '_top';
949
- external?: boolean;
950
- children?: any;
951
- };
952
- 'kern-loader': {
953
- text?: string;
954
- children?: any;
955
- };
956
- 'kern-progress': {
957
- value: number;
958
- max?: number;
959
- label?: string;
960
- };
961
- 'kern-kopfzeile': {
962
- fluid?: boolean;
963
- };
964
- 'kern-heading': {
965
- level?: '1' | '2' | '3' | '4' | '5' | '6';
966
- text: string;
967
- };
968
- 'kern-table': {
969
- responsive?: boolean;
970
- small?: boolean;
971
- striped?: boolean;
972
- caption?: string | null;
973
- columns: Array<{
974
- key: string;
975
- header: string;
976
- numeric?: boolean;
977
- }>;
978
- data: Array<Record<string, unknown>>;
979
- footer?: Array<Record<string, unknown>> | null;
980
- rowHeaderKey?: string | null;
981
- };
982
- 'kern-summary': {
983
- titleId?: string;
984
- title?: string | null;
985
- titleNumber?: string | null;
986
- headingLevel?: '1' | '2' | '3' | '4' | '5' | '6';
987
- items: Array<{
988
- term: string;
989
- description: string;
990
- }>;
991
- actionLinkHref?: string | null;
992
- actionLinkTarget?: '_self' | '_blank' | '_parent' | '_top';
993
- onActionLinkClickEvent?: (event: Event) => void;
994
- children?: any;
995
- };
996
- 'kern-summary-group': {
997
- children?: any;
998
- };
999
- 'kern-description-list': {
1000
- items: Array<{
1001
- term: string;
1002
- description: string;
1003
- }>;
1004
- orientation?: 'horizontal' | 'vertical';
1005
- };
1006
- 'kern-tasklist': {
1007
- tasks: Array<{
1008
- id: string;
1009
- text: string;
1010
- completed?: boolean;
1011
- href?: string;
1012
- }>;
1013
- editable?: boolean;
1014
- };
1015
- 'kern-fieldset': {
1016
- legend: string;
1017
- required?: boolean;
1018
- children?: any;
1019
- };
1020
- 'kern-input-error': {
1021
- errorText: string;
1022
- };
1023
- 'kern-input-hint': {
1024
- hintText: string;
1025
- };
1026
- 'kern-input-text': {
1027
- inputId?: string;
1028
- labelText: string;
1029
- optional?: boolean;
1030
- readonly?: boolean;
1031
- required?: boolean;
1032
- inputmode?: 'decimal' | 'numeric' | null;
1033
- maxlength?: number | null;
1034
- value?: string;
1035
- onChange?: (event: Event) => void;
1036
- onInput?: (event: Event) => void;
1037
- };
1038
- 'kern-input-number': {
1039
- inputId?: string;
1040
- labelText: string;
1041
- optional?: boolean;
1042
- readonly?: boolean;
1043
- required?: boolean;
1044
- min?: number | null;
1045
- max?: number | null;
1046
- step?: number | null;
1047
- autocomplete?: string | null;
1048
- placeholder?: string | null;
1049
- value?: number;
1050
- onChange?: (event: Event) => void;
1051
- onInput?: (event: Event) => void;
1052
- };
1053
- 'kern-input-checkbox': {
1054
- inputId?: string;
1055
- labelText: string;
1056
- optional?: boolean;
1057
- readonly?: boolean;
1058
- required?: boolean;
1059
- checked?: boolean;
1060
- onChange?: (event: Event) => void;
1061
- };
1062
- 'kern-input-date': {
1063
- inputId?: string;
1064
- labelText: string;
1065
- optional?: boolean;
1066
- readonly?: boolean;
1067
- required?: boolean;
1068
- min?: string | null;
1069
- max?: string | null;
1070
- value?: string;
1071
- onChange?: (event: Event) => void;
1072
- };
1073
- 'kern-input-email': {
1074
- inputId?: string;
1075
- labelText: string;
1076
- optional?: boolean;
1077
- readonly?: boolean;
1078
- required?: boolean;
1079
- value?: string;
1080
- onChange?: (event: Event) => void;
1081
- onInput?: (event: Event) => void;
1082
- };
1083
- 'kern-input-file': {
1084
- inputId?: string;
1085
- labelText: string;
1086
- optional?: boolean;
1087
- readonly?: boolean;
1088
- required?: boolean;
1089
- accept?: string | null;
1090
- multiple?: boolean;
1091
- onChange?: (event: Event) => void;
1092
- };
1093
- 'kern-input-password': {
1094
- inputId?: string;
1095
- labelText: string;
1096
- optional?: boolean;
1097
- readonly?: boolean;
1098
- required?: boolean;
1099
- maxlength?: number | null;
1100
- value?: string;
1101
- onChange?: (event: Event) => void;
1102
- onInput?: (event: Event) => void;
1103
- };
1104
- 'kern-input-radio': {
1105
- inputId?: string;
1106
- labelText: string;
1107
- optional?: boolean;
1108
- readonly?: boolean;
1109
- required?: boolean;
1110
- value: string;
1111
- name: string;
1112
- checked?: boolean;
1113
- onChange?: (event: Event) => void;
1114
- };
1115
- 'kern-input-select': {
1116
- inputId?: string;
1117
- labelText: string;
1118
- optional?: boolean;
1119
- readonly?: boolean;
1120
- required?: boolean;
1121
- emptyPlaceholder?: string;
1122
- value?: string | string[];
1123
- onChange?: (event: Event) => void;
1124
- children?: any;
1125
- };
1126
- 'kern-input-tel': {
1127
- inputId?: string;
1128
- labelText: string;
1129
- optional?: boolean;
1130
- readonly?: boolean;
1131
- required?: boolean;
1132
- value?: string;
1133
- onChange?: (event: Event) => void;
1134
- onInput?: (event: Event) => void;
1135
- };
1136
- 'kern-input-textarea': {
1137
- inputId?: string;
1138
- labelText: string;
1139
- optional?: boolean;
1140
- readonly?: boolean;
1141
- required?: boolean;
1142
- rows?: number | null;
1143
- cols?: number | null;
1144
- maxlength?: number | null;
1145
- value?: string;
1146
- onChange?: (event: Event) => void;
1147
- onInput?: (event: Event) => void;
1148
- };
1149
- 'kern-input-url': {
1150
- inputId?: string;
1151
- labelText: string;
1152
- optional?: boolean;
1153
- readonly?: boolean;
1154
- required?: boolean;
1155
- value?: string;
1156
- onChange?: (event: Event) => void;
1157
- onInput?: (event: Event) => void;
1158
- };
1159
- 'kern-container': {
1160
- fluid?: boolean;
1161
- };
1162
- 'kern-row': {
1163
- verticalAlign?: 'start' | 'center' | 'end' | null;
1164
- horizontalAlign?: 'start' | 'center' | 'end' | 'around' | 'between' | 'evenly' | null;
1165
- };
1166
- 'kern-col': {
1167
- size?: number | Partial<Record<'base' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl', number>>;
1168
- offset?: number | Partial<Record<'base' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl', number>>;
1169
- };
1170
- }
1171
- }
1172
- }
1173
- /**
1174
- * Angular module that enables custom element schemas
1175
- * Import this module to allow Angular to recognize KERN components as valid custom elements
1176
- */
1177
- declare class KernElementsModule {
1178
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<KernElementsModule, never>;
1179
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<KernElementsModule, never, never, never>;
1180
- static ɵinj: _angular_core.ɵɵInjectorDeclaration<KernElementsModule>;
1181
- }
1182
- /**
1183
- * HTML Element interfaces for direct DOM manipulation
1184
- * Useful when working with KERN components as native custom elements
1185
- */
1186
- interface KernAccordionElement extends HTMLElement {
1187
- title: string;
1188
- open: boolean;
1189
- }
1190
- interface KernAlertElement extends HTMLElement {
1191
- title: string;
1192
- type: 'info' | 'success' | 'warning' | 'danger';
1193
- }
1194
- interface KernBadgeElement extends HTMLElement {
1195
- variant: 'info' | 'success' | 'warning' | 'danger';
1196
- icon?: string | null;
1197
- }
1198
- interface KernButtonElement extends HTMLElement {
1199
- variant: 'primary' | 'secondary' | 'tertiary';
1200
- block: boolean;
1201
- disabled: boolean;
1202
- type: 'button' | 'submit' | 'reset';
1203
- iconLeft?: string | null;
1204
- iconRight?: string | null;
1205
- srOnlyLabel: boolean;
1206
- }
1207
- interface KernCardElement extends HTMLElement {
1208
- cardTitle?: string | null;
1209
- titleLinkHref?: string | null;
1210
- titleLinkTarget: '_self' | '_blank' | '_parent' | '_top';
1211
- preline?: string | null;
1212
- subline?: string | null;
1213
- imgSrc?: string | null;
1214
- imgAlt?: string | null;
1215
- size: 'default' | 'small' | 'large';
1216
- headingLevel: '1' | '2' | '3' | '4' | '5';
1217
- btnPrimaryLabelText?: string | null;
1218
- btnSecondaryLabelText?: string | null;
1219
- }
1220
- interface KernDialogElement extends HTMLElement {
1221
- dialogId?: string;
1222
- dialogTitle: string;
1223
- btnCloseLabelText: string;
1224
- btnPrimaryLabelText?: string | null;
1225
- btnSecondaryLabelText?: string | null;
1226
- showModal(): void;
1227
- close(): void;
1228
- }
1229
- interface KernIconElement extends HTMLElement {
1230
- name: string;
1231
- size?: string;
1232
- }
1233
- interface KernLinkElement extends HTMLElement {
1234
- href: string;
1235
- target: '_self' | '_blank' | '_parent' | '_top';
1236
- external: boolean;
1237
- }
1238
- interface KernLoaderElement extends HTMLElement {
1239
- text: string;
1240
- }
1241
- interface KernProgressElement extends HTMLElement {
1242
- value: number;
1243
- max: number;
1244
- label?: string;
1245
- }
1246
- interface KernKopfzeileElement extends HTMLElement {
1247
- fluid?: boolean;
1248
- }
1249
- interface KernTableElement extends HTMLElement {
1250
- responsive: boolean;
1251
- small: boolean;
1252
- striped: boolean;
1253
- caption?: string | null;
1254
- columns: Array<{
1255
- key: string;
1256
- header: string;
1257
- numeric?: boolean;
1258
- }>;
1259
- data: Array<Record<string, unknown>>;
1260
- footer?: Array<Record<string, unknown>> | null;
1261
- rowHeaderKey?: string | null;
1262
- }
1263
- interface KernSummaryElement extends HTMLElement {
1264
- titleId?: string;
1265
- summaryTitle?: string | null;
1266
- titleNumber?: string | null;
1267
- headingLevel: '1' | '2' | '3' | '4' | '5' | '6';
1268
- items: Array<{
1269
- term: string;
1270
- description: string;
1271
- }>;
1272
- actionLinkHref?: string | null;
1273
- actionLinkTarget: '_self' | '_blank' | '_parent' | '_top';
1274
- }
1275
- interface KernInputElement extends HTMLElement {
1276
- inputId?: string;
1277
- labelText: string;
1278
- optional: boolean;
1279
- readonly: boolean;
1280
- required: boolean;
1281
- value: string;
1282
- }
1283
- interface KernContainerElement extends HTMLElement {
1284
- fluid?: boolean;
1285
- }
1286
- interface KernRowElement extends HTMLElement {
1287
- verticalAlign?: 'start' | 'center' | 'end' | null;
1288
- horizontalAlign?: 'start' | 'center' | 'end' | 'around' | 'between' | 'evenly' | null;
1289
- }
1290
- interface KernColElement extends HTMLElement {
1291
- size?: number | Partial<Record<'base' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl', number>>;
1292
- offset?: number | Partial<Record<'base' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl', number>>;
1293
- }
1294
- /**
1295
- * Type guards for KERN custom elements
1296
- */
1297
- declare function isKernAccordion(element: Element | null): element is KernAccordionElement;
1298
- declare function isKernAlert(element: Element | null): element is KernAlertElement;
1299
- declare function isKernBadge(element: Element | null): element is KernBadgeElement;
1300
- declare function isKernButton(element: Element | null): element is KernButtonElement;
1301
- declare function isKernCard(element: Element | null): element is KernCardElement;
1302
- declare function isKernDialog(element: Element | null): element is KernDialogElement;
1303
- declare function isKernIcon(element: Element | null): element is KernIconElement;
1304
- declare function isKernLink(element: Element | null): element is KernLinkElement;
1305
- declare function isKernLoader(element: Element | null): element is KernLoaderElement;
1306
- declare function isKernProgress(element: Element | null): element is KernProgressElement;
1307
- declare function isKernKopfzeile(element: Element | null): element is KernKopfzeileElement;
1308
- declare function isKernTable(element: Element | null): element is KernTableElement;
1309
- declare function isKernSummary(element: Element | null): element is KernSummaryElement;
1310
- declare function isKernInput(element: Element | null): element is KernInputElement;
1311
- declare function isKernContainer(element: Element | null): element is KernContainerElement;
1312
- declare function isKernRow(element: Element | null): element is KernRowElement;
1313
- declare function isKernCol(element: Element | null): element is KernColElement;
1314
-
1315
616
  declare class UniqueIdService {
1316
617
  private counter;
1317
618
  getUniqueId(prefix?: string): string;
@@ -1319,5 +620,15 @@ declare class UniqueIdService {
1319
620
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<UniqueIdService>;
1320
621
  }
1321
622
 
1322
- export { ControlValueAccessorDirective, KernAccordion, KernAccordionGroup, KernAlert, KernAngularKitModule, KernBadge, KernBody, KernButton, KernCard, KernCol, KernContainer, KernDescriptionList, KernDialog, KernDivider, KernElementsModule, KernFieldset, KernHeading, KernIcon, KernInputCheckbox, KernInputDate, KernInputEmail, KernInputError, KernInputFile, KernInputHint, KernInputNumber, KernInputPassword, KernInputRadio, KernInputSelect, KernInputTel, KernInputText, KernInputTextarea, KernInputUrl, KernKopfzeile, KernLabel, KernLink, KernList, KernLoader, KernPreline, KernProgress, KernRow, KernSubline, KernSummary, KernSummaryGroup, KernTable, KernTasklist, KernTitle, UniqueIdService, isKernAccordion, isKernAlert, isKernBadge, isKernButton, isKernCard, isKernCol, isKernContainer, isKernDialog, isKernIcon, isKernInput, isKernKopfzeile, isKernLink, isKernLoader, isKernProgress, isKernRow, isKernSummary, isKernTable };
1323
- export type { ComponentInputs, ComponentOutputs, KernAccordionElement, KernAccordionGroupInputs, KernAccordionInputs, KernAlertElement, KernAlertInputs, KernBadgeElement, KernBadgeInputs, KernButtonElement, KernButtonInputs, KernButtonOutputs, KernCardElement, KernCardInputs, KernCardOutputs, KernColElement, KernColInputs, KernComponentOutputs, KernComponentSchemas, KernComponentSelector, KernContainerElement, KernContainerInputs, KernDescriptionListInputs, KernDialogElement, KernDialogInputs, KernDialogOutputs, KernDividerInputs, KernFieldsetInputs, KernHeadingInputs, KernIconElement, KernIconInputs, KernInputBaseInputs, KernInputCheckboxInputs, KernInputDateInputs, KernInputElement, KernInputEmailInputs, KernInputErrorInputs, KernInputFileInputs, KernInputHintInputs, KernInputNumberInputs, KernInputPasswordInputs, KernInputRadioInputs, KernInputSelectInputs, KernInputTelInputs, KernInputTextInputs, KernInputTextareaInputs, KernInputUrlInputs, KernKopfzeileElement, KernKopfzeileInputs, KernLinkElement, KernLinkInputs, KernLoaderElement, KernLoaderInputs, KernProgressElement, KernProgressInputs, KernRowElement, KernRowInputs, KernSummaryElement, KernSummaryGroupInputs, KernSummaryInputs, KernSummaryOutputs, KernTableColumn, KernTableElement, KernTableInputs, KernTableRow, KernTasklistData, KernTasklistInputs, KernTasklistItem };
623
+ declare class ScrollLockService {
624
+ private lockCount;
625
+ private defaultOverflowState;
626
+ lock(): void;
627
+ unlock(): void;
628
+ isLocked(): boolean;
629
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ScrollLockService, never>;
630
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ScrollLockService>;
631
+ }
632
+
633
+ export { ControlValueAccessorDirective, KernAccordion, KernAccordionGroup, KernAlert, KernAngularKitModule, KernBadge, KernBody, KernButton, KernCard, KernCol, KernContainer, KernDescriptionList, KernDialog, KernDivider, KernFieldset, KernHeading, KernIcon, KernInputCheckbox, KernInputDate, KernInputEmail, KernInputError, KernInputFile, KernInputHint, KernInputNumber, KernInputPassword, KernInputRadio, KernInputSelect, KernInputTel, KernInputText, KernInputTextarea, KernInputUrl, KernKopfzeile, KernLabel, KernLink, KernList, KernLoader, KernPreline, KernProgress, KernRow, KernSubline, KernSummary, KernSummaryGroup, KernTable, KernTasklist, KernTitle, ScrollLockService, UniqueIdService };
634
+ export type { KernTableColumn, KernTableRow, KernTasklistData };