@skyux/forms 10.6.2 → 10.8.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 (66) hide show
  1. package/documentation.json +3690 -2969
  2. package/esm2022/index.mjs +2 -1
  3. package/esm2022/lib/modules/character-counter/character-counter-indicator.component.mjs +3 -3
  4. package/esm2022/lib/modules/character-counter/character-counter-screen-reader.pipe.mjs +3 -3
  5. package/esm2022/lib/modules/character-counter/character-counter.directive.mjs +3 -3
  6. package/esm2022/lib/modules/character-counter/character-counter.module.mjs +4 -4
  7. package/esm2022/lib/modules/checkbox/checkbox-group.component.mjs +17 -6
  8. package/esm2022/lib/modules/checkbox/checkbox-label-text-label.component.mjs +5 -5
  9. package/esm2022/lib/modules/checkbox/checkbox-label.component.mjs +3 -3
  10. package/esm2022/lib/modules/checkbox/checkbox.component.mjs +16 -8
  11. package/esm2022/lib/modules/checkbox/checkbox.module.mjs +13 -6
  12. package/esm2022/lib/modules/field-group/field-group.component.mjs +9 -5
  13. package/esm2022/lib/modules/field-group/field-group.module.mjs +4 -4
  14. package/esm2022/lib/modules/file-attachment/file-attachment-label.component.mjs +3 -3
  15. package/esm2022/lib/modules/file-attachment/file-attachment.component.mjs +14 -7
  16. package/esm2022/lib/modules/file-attachment/file-attachment.service.mjs +3 -3
  17. package/esm2022/lib/modules/file-attachment/file-attachments.module.mjs +11 -7
  18. package/esm2022/lib/modules/file-attachment/file-drop.component.mjs +18 -6
  19. package/esm2022/lib/modules/file-attachment/file-item.component.mjs +3 -3
  20. package/esm2022/lib/modules/file-attachment/file-item.service.mjs +3 -3
  21. package/esm2022/lib/modules/file-attachment/file-size.pipe.mjs +3 -3
  22. package/esm2022/lib/modules/form-error/form-error.component.mjs +3 -3
  23. package/esm2022/lib/modules/form-error/form-error.module.mjs +4 -4
  24. package/esm2022/lib/modules/form-error/form-errors.component.mjs +3 -3
  25. package/esm2022/lib/modules/form-error/form-errors.module.mjs +4 -4
  26. package/esm2022/lib/modules/input-box/input-box-adapter.service.mjs +3 -3
  27. package/esm2022/lib/modules/input-box/input-box-control.directive.mjs +3 -3
  28. package/esm2022/lib/modules/input-box/input-box-help-inline.component.mjs +3 -3
  29. package/esm2022/lib/modules/input-box/input-box-hint-text.pipe.mjs +5 -5
  30. package/esm2022/lib/modules/input-box/input-box-host.service.mjs +10 -4
  31. package/esm2022/lib/modules/input-box/input-box.component.mjs +12 -7
  32. package/esm2022/lib/modules/input-box/input-box.module.mjs +8 -6
  33. package/esm2022/lib/modules/radio/radio-group-id.service.mjs +3 -3
  34. package/esm2022/lib/modules/radio/radio-group.component.mjs +3 -3
  35. package/esm2022/lib/modules/radio/radio-label.component.mjs +3 -3
  36. package/esm2022/lib/modules/radio/radio.component.mjs +8 -5
  37. package/esm2022/lib/modules/radio/radio.module.mjs +4 -4
  38. package/esm2022/lib/modules/selection-box/selection-box-adapter.service.mjs +3 -3
  39. package/esm2022/lib/modules/selection-box/selection-box-description.component.mjs +3 -3
  40. package/esm2022/lib/modules/selection-box/selection-box-grid.component.mjs +3 -3
  41. package/esm2022/lib/modules/selection-box/selection-box-header.component.mjs +3 -3
  42. package/esm2022/lib/modules/selection-box/selection-box.component.mjs +3 -3
  43. package/esm2022/lib/modules/selection-box/selection-box.module.mjs +4 -4
  44. package/esm2022/lib/modules/shared/sky-forms-resources.module.mjs +4 -4
  45. package/esm2022/lib/modules/toggle-switch/toggle-switch-label.component.mjs +3 -3
  46. package/esm2022/lib/modules/toggle-switch/toggle-switch.component.mjs +3 -3
  47. package/esm2022/lib/modules/toggle-switch/toggle-switch.module.mjs +4 -4
  48. package/esm2022/testing/checkbox/checkbox-harness.mjs +52 -12
  49. package/fesm2022/skyux-forms-testing.mjs +51 -11
  50. package/fesm2022/skyux-forms-testing.mjs.map +1 -1
  51. package/fesm2022/skyux-forms.mjs +235 -174
  52. package/fesm2022/skyux-forms.mjs.map +1 -1
  53. package/index.d.ts +1 -0
  54. package/lib/modules/checkbox/checkbox-group.component.d.ts +15 -1
  55. package/lib/modules/checkbox/checkbox.component.d.ts +21 -2
  56. package/lib/modules/checkbox/checkbox.module.d.ts +4 -3
  57. package/lib/modules/field-group/field-group.component.d.ts +7 -1
  58. package/lib/modules/file-attachment/file-attachment.component.d.ts +21 -2
  59. package/lib/modules/file-attachment/file-attachments.module.d.ts +2 -1
  60. package/lib/modules/file-attachment/file-drop.component.d.ts +11 -1
  61. package/lib/modules/input-box/input-box-host.service.d.ts +1 -0
  62. package/lib/modules/input-box/input-box.component.d.ts +2 -0
  63. package/lib/modules/input-box/input-box.module.d.ts +1 -1
  64. package/lib/modules/radio/radio.component.d.ts +7 -1
  65. package/package.json +13 -12
  66. package/testing/checkbox/checkbox-harness.d.ts +25 -2
package/index.d.ts CHANGED
@@ -41,6 +41,7 @@ export { SkyFormErrorsComponent as λ21 } from './lib/modules/form-error/form-er
41
41
  export { SkyFormErrorComponent as λ22 } from './lib/modules/form-error/form-error.component';
42
42
  export { SkyInputBoxControlDirective as λ20 } from './lib/modules/input-box/input-box-control.directive';
43
43
  export { SkyInputBoxComponent as λ10 } from './lib/modules/input-box/input-box.component';
44
+ export { SkyInputBoxHintTextPipe as λ26 } from './lib/modules/input-box/input-box-hint-text.pipe';
44
45
  export { SkyRadioGroupComponent as λ11 } from './lib/modules/radio/radio-group.component';
45
46
  export { SkyRadioLabelComponent as λ12 } from './lib/modules/radio/radio-label.component';
46
47
  export { SkyRadioComponent as λ13 } from './lib/modules/radio/radio.component';
@@ -1,3 +1,4 @@
1
+ import { TemplateRef } from '@angular/core';
1
2
  import { FormGroup } from '@angular/forms';
2
3
  import * as i0 from "@angular/core";
3
4
  /**
@@ -5,6 +6,19 @@ import * as i0 from "@angular/core";
5
6
  */
6
7
  export declare class SkyCheckboxGroupComponent {
7
8
  #private;
9
+ /**
10
+ * The content of the help popover. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)
11
+ * button is added to the checkbox group fieldset legend. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)
12
+ * when clicked using the specified content and optional title.
13
+ * @preview
14
+ */
15
+ helpPopoverContent: string | TemplateRef<unknown> | undefined;
16
+ /**
17
+ * The title of the help popover. This property only applies when `helpPopoverContent` is
18
+ * also specified.
19
+ * @preview
20
+ */
21
+ helpPopoverTitle: string | undefined;
8
22
  /**
9
23
  * The text to display as the checkbox group's label.
10
24
  * @preview
@@ -35,7 +49,7 @@ export declare class SkyCheckboxGroupComponent {
35
49
  protected errorId: string;
36
50
  protected formErrorsDataId: string;
37
51
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyCheckboxGroupComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyCheckboxGroupComponent, "sky-checkbox-group", never, { "labelText": { "alias": "labelText"; "required": true; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "required": { "alias": "required"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": true; }; }, {}, never, ["sky-checkbox[icon]", "sky-checkbox", "sky-form-error"], true, never>;
52
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyCheckboxGroupComponent, "sky-checkbox-group", never, { "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "labelText": { "alias": "labelText"; "required": true; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "required": { "alias": "required"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": true; }; }, {}, never, ["sky-checkbox[icon]", "sky-checkbox", "sky-form-error"], true, never>;
39
53
  static ngAcceptInputType_labelHidden: unknown;
40
54
  static ngAcceptInputType_required: unknown;
41
55
  static ngAcceptInputType_stacked: unknown;
@@ -1,4 +1,4 @@
1
- import { ElementRef, EventEmitter, OnInit } from '@angular/core';
1
+ import { ElementRef, EventEmitter, OnInit, TemplateRef } from '@angular/core';
2
2
  import { ControlValueAccessor, NgControl } from '@angular/forms';
3
3
  import { Observable } from 'rxjs';
4
4
  import { SkyCheckboxChange } from './checkbox-change';
@@ -53,6 +53,19 @@ export declare class SkyCheckboxComponent implements ControlValueAccessor, OnIni
53
53
  */
54
54
  set name(value: string | undefined);
55
55
  get name(): string;
56
+ /**
57
+ * The content of the help popover. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)
58
+ * button is added to the checkbox label. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)
59
+ * when clicked using the specified content and optional title.
60
+ * @preview
61
+ */
62
+ helpPopoverContent: string | TemplateRef<unknown> | undefined;
63
+ /**
64
+ * The title of the help popover. This property only applies when `helpPopoverContent` is
65
+ * also specified.
66
+ * @preview
67
+ */
68
+ helpPopoverTitle: string | undefined;
56
69
  /**
57
70
  * Fires when the selected value changes.
58
71
  */
@@ -108,6 +121,12 @@ export declare class SkyCheckboxComponent implements ControlValueAccessor, OnIni
108
121
  * @preview
109
122
  */
110
123
  labelHidden: boolean;
124
+ /**
125
+ * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides
126
+ * additional context to the user.
127
+ * @preview
128
+ */
129
+ hintText: string | undefined;
111
130
  /**
112
131
  * Fires when users select or deselect the checkbox.
113
132
  */
@@ -153,6 +172,6 @@ export declare class SkyCheckboxComponent implements ControlValueAccessor, OnIni
153
172
  /** Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor. */
154
173
  onTouched: () => any;
155
174
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyCheckboxComponent, never>;
156
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyCheckboxComponent, "sky-checkbox", never, { "label": { "alias": "label"; "required": false; }; "labelledBy": { "alias": "labelledBy"; "required": false; }; "id": { "alias": "id"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "name": { "alias": "name"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "checkboxType": { "alias": "checkboxType"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "required": { "alias": "required"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; }, { "change": "change"; "checkedChange": "checkedChange"; "disabledChange": "disabledChange"; "indeterminateChange": "indeterminateChange"; }, never, ["sky-checkbox-label", "sky-form-error"], false, never>;
175
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyCheckboxComponent, "sky-checkbox", never, { "label": { "alias": "label"; "required": false; }; "labelledBy": { "alias": "labelledBy"; "required": false; }; "id": { "alias": "id"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "name": { "alias": "name"; "required": false; }; "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "checkboxType": { "alias": "checkboxType"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "required": { "alias": "required"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; }, { "change": "change"; "checkedChange": "checkedChange"; "disabledChange": "disabledChange"; "indeterminateChange": "indeterminateChange"; }, never, ["sky-checkbox-label", "sky-form-error"], false, never>;
157
176
  static ngAcceptInputType_labelHidden: unknown;
158
177
  }
@@ -8,10 +8,11 @@ import * as i6 from "./checkbox-group.component";
8
8
  import * as i7 from "../form-error/form-error.module";
9
9
  import * as i8 from "../form-error/form-errors.module";
10
10
  import * as i9 from "../shared/sky-forms-resources.module";
11
- import * as i10 from "@skyux/indicators";
12
- import * as i11 from "@skyux/core";
11
+ import * as i10 from "@skyux/help-inline";
12
+ import * as i11 from "@skyux/indicators";
13
+ import * as i12 from "@skyux/core";
13
14
  export declare class SkyCheckboxModule {
14
15
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyCheckboxModule, never>;
15
- static ɵmod: i0.ɵɵNgModuleDeclaration<SkyCheckboxModule, [typeof i1.SkyCheckboxComponent, typeof i2.SkyCheckboxLabelComponent, typeof i3.SkyCheckboxLabelTextLabelComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i6.SkyCheckboxGroupComponent, typeof i7.SkyFormErrorModule, typeof i8.SkyFormErrorsModule, typeof i9.SkyFormsResourcesModule, typeof i10.SkyIconModule, typeof i11.SkyTrimModule], [typeof i1.SkyCheckboxComponent, typeof i2.SkyCheckboxLabelComponent, typeof i6.SkyCheckboxGroupComponent, typeof i7.SkyFormErrorModule]>;
16
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SkyCheckboxModule, [typeof i1.SkyCheckboxComponent, typeof i2.SkyCheckboxLabelComponent, typeof i3.SkyCheckboxLabelTextLabelComponent], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i6.SkyCheckboxGroupComponent, typeof i7.SkyFormErrorModule, typeof i8.SkyFormErrorsModule, typeof i9.SkyFormsResourcesModule, typeof i10.SkyHelpInlineModule, typeof i11.SkyIconModule, typeof i12.SkyIdModule, typeof i12.SkyTrimModule], [typeof i1.SkyCheckboxComponent, typeof i2.SkyCheckboxLabelComponent, typeof i6.SkyCheckboxGroupComponent, typeof i7.SkyFormErrorModule]>;
16
17
  static ɵinj: i0.ɵɵInjectorDeclaration<SkyCheckboxModule>;
17
18
  }
@@ -10,6 +10,12 @@ export declare class SkyFieldGroupComponent {
10
10
  * @preview
11
11
  */
12
12
  labelText: string;
13
+ /**
14
+ * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides
15
+ * additional context to the user.
16
+ * @preview
17
+ */
18
+ hintText: string | undefined;
13
19
  /**
14
20
  * Indicates whether to hide the `labelText`.
15
21
  * @preview
@@ -33,7 +39,7 @@ export declare class SkyFieldGroupComponent {
33
39
  set headingStyle(value: SkyFieldGroupHeadingStyle);
34
40
  protected headingClass: string;
35
41
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyFieldGroupComponent, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyFieldGroupComponent, "sky-field-group", never, { "labelText": { "alias": "labelText"; "required": true; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "headingLevel": { "alias": "headingLevel"; "required": false; }; "headingStyle": { "alias": "headingStyle"; "required": false; }; }, {}, never, ["*"], true, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyFieldGroupComponent, "sky-field-group", never, { "labelText": { "alias": "labelText"; "required": true; }; "hintText": { "alias": "hintText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "headingLevel": { "alias": "headingLevel"; "required": false; }; "headingStyle": { "alias": "headingStyle"; "required": false; }; }, {}, never, ["*"], true, never>;
37
43
  static ngAcceptInputType_labelHidden: unknown;
38
44
  static ngAcceptInputType_stacked: unknown;
39
45
  static ngAcceptInputType_headingLevel: unknown;
@@ -1,4 +1,4 @@
1
- import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
1
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList, TemplateRef } from '@angular/core';
2
2
  import { NgControl, ValidationErrors } from '@angular/forms';
3
3
  import { SkyThemeService } from '@skyux/theme';
4
4
  import { SkyFileAttachmentLabelComponent } from './file-attachment-label.component';
@@ -28,6 +28,19 @@ export declare class SkyFileAttachmentComponent implements AfterViewInit, AfterC
28
28
  */
29
29
  set disabled(value: boolean | undefined);
30
30
  get disabled(): boolean;
31
+ /**
32
+ * The content of the help popover. When specified along with `labelText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)
33
+ * button is added to the single file attachment label. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)
34
+ * when clicked using the specified content and optional title.
35
+ * @preview
36
+ */
37
+ helpPopoverContent: string | TemplateRef<unknown> | undefined;
38
+ /**
39
+ * The title of the help popover. This property only applies when `helpPopoverContent` is
40
+ * also specified.
41
+ * @preview
42
+ */
43
+ helpPopoverTitle: string | undefined;
31
44
  /**
32
45
  * The text to display as the file attachment's label.
33
46
  * @preview
@@ -38,6 +51,12 @@ export declare class SkyFileAttachmentComponent implements AfterViewInit, AfterC
38
51
  * @preview
39
52
  */
40
53
  labelHidden: boolean;
54
+ /**
55
+ * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides
56
+ * additional context to the user.
57
+ * @preview
58
+ */
59
+ hintText: string | undefined;
41
60
  /**
42
61
  * The maximum size in bytes for valid files.
43
62
  * @default 500000
@@ -114,6 +133,6 @@ export declare class SkyFileAttachmentComponent implements AfterViewInit, AfterC
114
133
  setDisabledState(isDisabled: boolean): void;
115
134
  emitClick(): void;
116
135
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyFileAttachmentComponent, [null, null, null, { optional: true; self: true; }, { optional: true; }]>;
117
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyFileAttachmentComponent, "sky-file-attachment", never, { "acceptedTypes": { "alias": "acceptedTypes"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; "minFileSize": { "alias": "minFileSize"; "required": false; }; "validateFn": { "alias": "validateFn"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, { "fileChange": "fileChange"; "fileClick": "fileClick"; }, ["labelComponents"], ["sky-form-error", "sky-file-attachment-label"], false, never>;
136
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyFileAttachmentComponent, "sky-file-attachment", never, { "acceptedTypes": { "alias": "acceptedTypes"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; "minFileSize": { "alias": "minFileSize"; "required": false; }; "validateFn": { "alias": "validateFn"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, { "fileChange": "fileChange"; "fileClick": "fileClick"; }, ["labelComponents"], ["sky-form-error", "sky-file-attachment-label"], false, never>;
118
137
  static ngAcceptInputType_labelHidden: unknown;
119
138
  }
@@ -12,8 +12,9 @@ import * as i10 from "../form-error/form-errors.module";
12
12
  import * as i11 from "@skyux/indicators";
13
13
  import * as i12 from "@skyux/core";
14
14
  import * as i13 from "@skyux/theme";
15
+ import * as i14 from "@skyux/help-inline";
15
16
  export declare class SkyFileAttachmentsModule {
16
17
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyFileAttachmentsModule, never>;
17
- static ɵmod: i0.ɵɵNgModuleDeclaration<SkyFileAttachmentsModule, [typeof i1.SkyFileAttachmentComponent, typeof i2.SkyFileAttachmentLabelComponent, typeof i3.SkyFileDropComponent, typeof i4.SkyFileItemComponent, typeof i5.SkyFileSizePipe], [typeof i6.CommonModule, typeof i7.FormsModule, typeof i8.SkyFormsResourcesModule, typeof i9.SkyFormErrorModule, typeof i10.SkyFormErrorsModule, typeof i11.SkyIconModule, typeof i12.SkyIdModule, typeof i13.SkyThemeModule, typeof i12.SkyTrimModule], [typeof i1.SkyFileAttachmentComponent, typeof i2.SkyFileAttachmentLabelComponent, typeof i3.SkyFileDropComponent, typeof i4.SkyFileItemComponent, typeof i5.SkyFileSizePipe, typeof i9.SkyFormErrorModule]>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SkyFileAttachmentsModule, [typeof i1.SkyFileAttachmentComponent, typeof i2.SkyFileAttachmentLabelComponent, typeof i3.SkyFileDropComponent, typeof i4.SkyFileItemComponent, typeof i5.SkyFileSizePipe], [typeof i6.CommonModule, typeof i7.FormsModule, typeof i8.SkyFormsResourcesModule, typeof i9.SkyFormErrorModule, typeof i10.SkyFormErrorsModule, typeof i11.SkyIconModule, typeof i12.SkyIdModule, typeof i13.SkyThemeModule, typeof i12.SkyTrimModule, typeof i14.SkyHelpInlineModule], [typeof i1.SkyFileAttachmentComponent, typeof i2.SkyFileAttachmentLabelComponent, typeof i3.SkyFileDropComponent, typeof i4.SkyFileItemComponent, typeof i5.SkyFileSizePipe, typeof i9.SkyFormErrorModule]>;
18
19
  static ɵinj: i0.ɵɵInjectorDeclaration<SkyFileAttachmentsModule>;
19
20
  }
@@ -94,6 +94,15 @@ export declare class SkyFileDropComponent implements OnDestroy {
94
94
  * @preview
95
95
  */
96
96
  hintText: string | undefined;
97
+ /**
98
+ * Whether uploading a file or link is required.
99
+ * When you set this property to `true`, the component adds `aria-required` and `required`
100
+ * attributes to the input elements so that screen readers announce an invalid state until the input element
101
+ * is complete.
102
+ * For more information about the `aria-required` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-required).
103
+ * @preview
104
+ */
105
+ required: boolean;
97
106
  inputEl: ElementRef | undefined;
98
107
  rejectedOver: boolean;
99
108
  acceptedOver: boolean;
@@ -111,6 +120,7 @@ export declare class SkyFileDropComponent implements OnDestroy {
111
120
  addLink(event: Event): void;
112
121
  onLinkBlur(): void;
113
122
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyFileDropComponent, never>;
114
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyFileDropComponent, "sky-file-drop", never, { "fileUploadAriaLabel": { "alias": "fileUploadAriaLabel"; "required": false; }; "linkUploadAriaLabel": { "alias": "linkUploadAriaLabel"; "required": false; }; "minFileSize": { "alias": "minFileSize"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "validateFn": { "alias": "validateFn"; "required": false; }; "acceptedTypes": { "alias": "acceptedTypes"; "required": false; }; "noClick": { "alias": "noClick"; "required": false; }; "allowLinks": { "alias": "allowLinks"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; }, { "filesChanged": "filesChanged"; "linkInputBlur": "linkInputBlur"; "linkChanged": "linkChanged"; }, never, ["*"], false, never>;
123
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyFileDropComponent, "sky-file-drop", never, { "fileUploadAriaLabel": { "alias": "fileUploadAriaLabel"; "required": false; }; "linkUploadAriaLabel": { "alias": "linkUploadAriaLabel"; "required": false; }; "minFileSize": { "alias": "minFileSize"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "validateFn": { "alias": "validateFn"; "required": false; }; "acceptedTypes": { "alias": "acceptedTypes"; "required": false; }; "noClick": { "alias": "noClick"; "required": false; }; "allowLinks": { "alias": "allowLinks"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "required": { "alias": "required"; "required": false; }; }, { "filesChanged": "filesChanged"; "linkInputBlur": "linkInputBlur"; "linkChanged": "linkChanged"; }, never, ["*"], false, never>;
115
124
  static ngAcceptInputType_labelHidden: unknown;
125
+ static ngAcceptInputType_required: unknown;
116
126
  }
@@ -14,6 +14,7 @@ export declare class SkyInputBoxHostService {
14
14
  populate(args: SkyInputBoxPopulateArgs): void;
15
15
  setHintText(hintText: string | undefined): void;
16
16
  setHintTextHidden(hide: boolean): void;
17
+ setHintTextScreenReaderOnly(hide: boolean): void;
17
18
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyInputBoxHostService, never>;
18
19
  static ɵprov: i0.ɵɵInjectableDeclaration<SkyInputBoxHostService>;
19
20
  }
@@ -68,6 +68,7 @@ export declare class SkyInputBoxComponent implements OnInit, AfterContentChecked
68
68
  hostIconsInsetTemplate: TemplateRef<unknown> | undefined;
69
69
  hostIconsInsetLeftTemplate: TemplateRef<unknown> | undefined;
70
70
  protected hintTextHidden: boolean;
71
+ protected hintTextScreenReaderOnly: boolean;
71
72
  protected hostHintText: string | undefined;
72
73
  readonly controlId: string;
73
74
  readonly errorId: string;
@@ -93,6 +94,7 @@ export declare class SkyInputBoxComponent implements OnInit, AfterContentChecked
93
94
  populate(args: SkyInputBoxPopulateArgs): void;
94
95
  setHintTextHidden(hide: boolean): void;
95
96
  setHostHintText(value: string | undefined): void;
97
+ setHintTextScreenReaderOnly(hide: boolean): void;
96
98
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyInputBoxComponent, never>;
97
99
  static ɵcmp: i0.ɵɵComponentDeclaration<SkyInputBoxComponent, "sky-input-box", never, { "hasErrors": { "alias": "hasErrors"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "characterLimit": { "alias": "characterLimit"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; }, {}, ["formControl", "formControlByName", "ngModel", "inputRef"], [".sky-control-label", ".sky-control-help", "sky-character-counter-indicator", "input,select,.sky-form-control:not(textarea),sky-text-editor", "textarea", ".sky-input-group-btn.sky-input-box-btn-left", ".sky-input-group-btn:not(.sky-input-box-btn-left):not(.sky-input-box-btn-inset)", ".sky-input-group-btn.sky-input-box-btn-inset", ".sky-input-group-icon.sky-input-box-icon-inset", ".sky-input-group-icon.sky-input-box-icon-inset-left", "sky-form-error", ".sky-error-label,.sky-error-indicator"], false, never>;
98
100
  }
@@ -11,6 +11,6 @@ import * as i9 from "./input-box-hint-text.pipe";
11
11
  import * as i10 from "@skyux/theme";
12
12
  export declare class SkyInputBoxModule {
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyInputBoxModule, never>;
14
- static ɵmod: i0.ɵɵNgModuleDeclaration<SkyInputBoxModule, [typeof i1.SkyInputBoxComponent], [typeof i2.CommonModule, typeof i3.SkyCharacterCounterModule, typeof i4.SkyFormErrorsModule, typeof i5.SkyFormErrorModule, typeof i6.SkyFormsResourcesModule, typeof i7.SkyInputBoxControlDirective, typeof i8.SkyInputBoxHelpInlineComponent, typeof i9.SkyInputBoxHintTextPipe, typeof i10.SkyThemeModule], [typeof i1.SkyInputBoxComponent, typeof i7.SkyInputBoxControlDirective, typeof i5.SkyFormErrorModule]>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SkyInputBoxModule, [typeof i1.SkyInputBoxComponent], [typeof i2.CommonModule, typeof i3.SkyCharacterCounterModule, typeof i4.SkyFormErrorsModule, typeof i5.SkyFormErrorModule, typeof i6.SkyFormsResourcesModule, typeof i7.SkyInputBoxControlDirective, typeof i8.SkyInputBoxHelpInlineComponent, typeof i9.SkyInputBoxHintTextPipe, typeof i10.SkyThemeModule], [typeof i9.SkyInputBoxHintTextPipe, typeof i1.SkyInputBoxComponent, typeof i7.SkyInputBoxControlDirective, typeof i5.SkyFormErrorModule]>;
15
15
  static ɵinj: i0.ɵɵInjectorDeclaration<SkyInputBoxModule>;
16
16
  }
@@ -105,6 +105,12 @@ export declare class SkyRadioComponent implements OnDestroy, ControlValueAccesso
105
105
  * @preview
106
106
  */
107
107
  labelHidden: boolean;
108
+ /**
109
+ * [Persistent inline help text](https://developer.blackbaud.com/skyux/design/guidelines/user-assistance#inline-help) that provides
110
+ * additional context to the user.
111
+ * @preview
112
+ */
113
+ hintText: string | undefined;
108
114
  /**
109
115
  * Fires when users select a radio button.
110
116
  */
@@ -135,6 +141,6 @@ export declare class SkyRadioComponent implements OnDestroy, ControlValueAccesso
135
141
  onInputChange(event: Event): void;
136
142
  onInputFocusChange(): void;
137
143
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyRadioComponent, never>;
138
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyRadioComponent, "sky-radio", never, { "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelledBy": { "alias": "labelledBy"; "required": false; }; "name": { "alias": "name"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "value": { "alias": "value"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "radioType": { "alias": "radioType"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; }, { "change": "change"; "checkedChange": "checkedChange"; "disabledChange": "disabledChange"; }, never, ["sky-radio-label"], false, never>;
144
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyRadioComponent, "sky-radio", never, { "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelledBy": { "alias": "labelledBy"; "required": false; }; "name": { "alias": "name"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "value": { "alias": "value"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "radioType": { "alias": "radioType"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; }, { "change": "change"; "checkedChange": "checkedChange"; "disabledChange": "disabledChange"; }, never, ["sky-radio-label"], false, never>;
139
145
  static ngAcceptInputType_labelHidden: unknown;
140
146
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/forms",
3
- "version": "10.6.2",
3
+ "version": "10.8.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -36,17 +36,18 @@
36
36
  }
37
37
  },
38
38
  "peerDependencies": {
39
- "@angular/cdk": "^17.3.1",
40
- "@angular/common": "^17.3.1",
41
- "@angular/core": "^17.3.1",
42
- "@angular/forms": "^17.3.1",
43
- "@angular/platform-browser": "^17.3.1",
44
- "@skyux-sdk/testing": "10.6.2",
45
- "@skyux/core": "10.6.2",
46
- "@skyux/i18n": "10.6.2",
47
- "@skyux/indicators": "10.6.2",
48
- "@skyux/popovers": "10.6.2",
49
- "@skyux/theme": "10.6.2"
39
+ "@angular/cdk": "^17.3.4",
40
+ "@angular/common": "^17.3.4",
41
+ "@angular/core": "^17.3.4",
42
+ "@angular/forms": "^17.3.4",
43
+ "@angular/platform-browser": "^17.3.4",
44
+ "@skyux-sdk/testing": "10.8.0",
45
+ "@skyux/core": "10.8.0",
46
+ "@skyux/help-inline": "10.8.0",
47
+ "@skyux/i18n": "10.8.0",
48
+ "@skyux/indicators": "10.8.0",
49
+ "@skyux/popovers": "10.8.0",
50
+ "@skyux/theme": "10.8.0"
50
51
  },
51
52
  "dependencies": {
52
53
  "tslib": "^2.6.2"
@@ -1,4 +1,5 @@
1
1
  import { HarnessPredicate } from '@angular/cdk/testing';
2
+ import { TemplateRef } from '@angular/core';
2
3
  import { SkyComponentHarness } from '@skyux/core/testing';
3
4
  import { SkyCheckboxHarnessFilters } from './checkbox-harness-filters';
4
5
  /**
@@ -20,6 +21,10 @@ export declare class SkyCheckboxHarness extends SkyComponentHarness {
20
21
  * Blurs the checkbox.
21
22
  */
22
23
  blur(): Promise<void>;
24
+ /**
25
+ * Clicks the help inline button.
26
+ */
27
+ clickHelpInline(): Promise<void>;
23
28
  /**
24
29
  * Puts the checkbox in a checked state by toggling it if it is currently unchecked, or doing nothing if it is already checked.
25
30
  */
@@ -36,6 +41,14 @@ export declare class SkyCheckboxHarness extends SkyComponentHarness {
36
41
  * Gets the checkbox's aria-labelledby.
37
42
  */
38
43
  getAriaLabelledby(): Promise<string | null>;
44
+ /**
45
+ * Gets the help popover content.
46
+ */
47
+ getHelpPopoverContent(): Promise<TemplateRef<unknown> | string | undefined>;
48
+ /**
49
+ * Gets the help popover title.
50
+ */
51
+ getHelpPopoverTitle(): Promise<string | undefined>;
39
52
  /**
40
53
  * Gets the checkbox's label text. If the label is set via `labelText` and `labelHidden` is true,
41
54
  * the text will still be returned.
@@ -45,6 +58,10 @@ export declare class SkyCheckboxHarness extends SkyComponentHarness {
45
58
  * Whether the label is hidden. Only supported when using the `labelText` input to set the label.
46
59
  */
47
60
  getLabelHidden(): Promise<boolean>;
61
+ /**
62
+ * Gets the checkbox's hint text.
63
+ */
64
+ getHintText(): Promise<string>;
48
65
  /**
49
66
  * Gets the checkbox's name.
50
67
  */
@@ -53,6 +70,14 @@ export declare class SkyCheckboxHarness extends SkyComponentHarness {
53
70
  * Gets the checkbox's value.
54
71
  */
55
72
  getValue(): Promise<string | null>;
73
+ /**
74
+ * Whether the checkbox displays custom error.
75
+ */
76
+ hasCustomError(errorName: string): Promise<boolean>;
77
+ /**
78
+ * Whether the checkbox displays an error that it is required.
79
+ */
80
+ hasRequiredError(): Promise<boolean>;
56
81
  /**
57
82
  * Whether the checkbox is checked.
58
83
  */
@@ -73,6 +98,4 @@ export declare class SkyCheckboxHarness extends SkyComponentHarness {
73
98
  * Puts the checkbox in an unchecked state by toggling it if it is currently checked, or doing nothing if it is already unchecked.
74
99
  */
75
100
  uncheck(): Promise<void>;
76
- hasRequiredError(): Promise<boolean>;
77
- hasCustomError(errorName: string): Promise<boolean>;
78
101
  }