@frame-kit/ui-ng 0.2.7 → 0.2.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frame-kit/ui-ng",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "Style-agnostic, token-driven Angular UI component library for FrameKit.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { InjectionToken, TemplateRef, Type, OnInit, ElementRef } from '@angular/core';
2
+ import { InjectionToken, AfterContentInit, TemplateRef, Type, OnInit, ElementRef } from '@angular/core';
3
3
  import { NgControl, AsyncValidatorFn, ValidatorFn, AbstractControl, FormArray, FormGroup, FormControl, ControlValueAccessor } from '@angular/forms';
4
4
  import { IconSize, IconColor } from '@frame-kit/ui-ng/core/icon';
5
5
 
@@ -173,6 +173,22 @@ declare class LabelComponent {
173
173
 
174
174
  type ShowErrorsOn = 'touched' | 'dirty' | 'submit';
175
175
 
176
+ declare const FK_LABEL_ACTION: InjectionToken<FkLabelActionDirective>;
177
+ /**
178
+ * Marks content that belongs on the label's own row, aligned to the trailing
179
+ * edge — a "Forgot password?" link beside a Password label being the canonical
180
+ * case.
181
+ *
182
+ * It sits outside the `<label>` element deliberately. A link inside a label is
183
+ * activated when the label is clicked, so the user reaches for the link and
184
+ * focuses the input instead; and its text would join the input's accessible
185
+ * name.
186
+ */
187
+ declare class FkLabelActionDirective {
188
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FkLabelActionDirective, never>;
189
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FkLabelActionDirective, "[fkLabelAction]", never, {}, {}, never, never, true, never>;
190
+ }
191
+
176
192
  declare const FK_PREFIX: InjectionToken<FkPrefixDirective>;
177
193
  declare class FkPrefixDirective {
178
194
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FkPrefixDirective, never>;
@@ -185,7 +201,7 @@ declare class FkSuffixDirective {
185
201
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<FkSuffixDirective, "[fkSuffix]", never, {}, {}, never, never, true, never>;
186
202
  }
187
203
 
188
- declare class FormFieldComponent {
204
+ declare class FormFieldComponent implements AfterContentInit {
189
205
  readonly className: _angular_core.InputSignal<string>;
190
206
  /** Text label rendered above the field; forwarded to the projected fk-label when present. */
191
207
  readonly label: _angular_core.InputSignal<string | null>;
@@ -214,10 +230,26 @@ declare class FormFieldComponent {
214
230
  readonly hintRef: _angular_core.Signal<HintComponent | undefined>;
215
231
  readonly errorRef: _angular_core.Signal<ErrorComponent | undefined>;
216
232
  readonly labelRef: _angular_core.Signal<LabelComponent | undefined>;
233
+ readonly labelActionRef: _angular_core.Signal<FkLabelActionDirective | undefined>;
217
234
  readonly prefixRef: _angular_core.Signal<FkPrefixDirective | undefined>;
218
235
  readonly suffixRef: _angular_core.Signal<FkSuffixDirective | undefined>;
219
236
  private readonly globalErrorMessages;
220
237
  private readonly cdr;
238
+ private readonly host;
239
+ /**
240
+ * `fkPrefix` and `fkSuffix` project only when their directive resolves, and
241
+ * it only resolves when the consumer imports it. Forget the import and the
242
+ * attribute stays inert markup: Angular does not warn about an unknown
243
+ * attribute on a known element, the content query returns undefined, the
244
+ * wrapper is never rendered, and the icon simply is not there. Nothing fails
245
+ * — which is what makes it slow to diagnose.
246
+ *
247
+ * Content queries have resolved by this point, and the element is still in
248
+ * the DOM either way, so an element carrying the attribute with no resolved
249
+ * directive is an unambiguous signal.
250
+ */
251
+ ngAfterContentInit(): void;
252
+ private warnOnUnresolvedProjection;
221
253
  get hostClass(): string;
222
254
  readonly fieldId: string;
223
255
  readonly labelId: string;
@@ -254,7 +286,7 @@ declare class FormFieldComponent {
254
286
  constructor();
255
287
  private syncDescribedByIds;
256
288
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormFieldComponent, never>;
257
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormFieldComponent, "fk-form-field", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "showErrorsOn": { "alias": "showErrorsOn"; "required": false; "isSignal": true; }; "submitted": { "alias": "submitted"; "required": false; "isSignal": true; }; "externalDescribedBy": { "alias": "externalDescribedBy"; "required": false; "isSignal": true; }; "fallbackControl": { "alias": "fallbackControl"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; }, {}, ["control", "hintRef", "errorRef", "labelRef", "prefixRef", "suffixRef"], ["fk-label", "[fkPrefix]", "*", "[fkSuffix]", "fk-error", "fk-hint"], true, never>;
289
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormFieldComponent, "fk-form-field", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "showErrorsOn": { "alias": "showErrorsOn"; "required": false; "isSignal": true; }; "submitted": { "alias": "submitted"; "required": false; "isSignal": true; }; "externalDescribedBy": { "alias": "externalDescribedBy"; "required": false; "isSignal": true; }; "fallbackControl": { "alias": "fallbackControl"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; }, {}, ["control", "hintRef", "errorRef", "labelRef", "labelActionRef", "prefixRef", "suffixRef"], ["fk-label", "[fkLabelAction]", "[fkPrefix]", "*", "[fkSuffix]", "fk-error", "fk-hint"], true, never>;
258
290
  }
259
291
 
260
292
  /**
@@ -1708,5 +1740,5 @@ declare class TimeInputComponent implements ControlValueAccessor, FieldControl {
1708
1740
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimeInputComponent, "fk-time-input", never, { "className": { "alias": "className"; "required": false; "isSignal": true; }; "isRequired": { "alias": "required"; "required": false; "isSignal": true; }; "isReadonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1709
1741
  }
1710
1742
 
1711
- export { AutocompleteComponent, CheckboxComponent, DEFAULT_ERROR_MESSAGES, DateInputComponent, DatetimeInputComponent, ERROR_MESSAGES, ErrorComponent, FIELD_CONTROL, FK_AUTOCOMPLETE_OPTION_TPL, FK_FILE_DROPZONE_ICON, FK_PREFIX, FK_SUFFIX, FORM, FieldArrayOutletComponent, FieldGroupComponent, FieldOutletComponent, FieldRegistry, FileDropzoneComponent, FileUploadComponent, FkAutocompleteOptionTplDirective, FkFileDropzoneIconDirective, FkPrefixDirective, FkSuffixDirective, FormComponent, FormFieldComponent, FormRendererComponent, FormSectionComponent, HintComponent, InputComponent, LabelComponent, NumberInputComponent, PasswordInputComponent, RadioComponent, SchemaParser, SectionOutletComponent, SegmentedBarComponent, SelectComponent, SliderComponent, SwitchComponent, TagInputComponent, TextareaComponent, TimeInputComponent, ValidationRegistry, getError, getFieldState, getInvalidFields, hasError, interpolateMessage, isFormValid, markAllTouched, resolveErrorMessage };
1743
+ export { AutocompleteComponent, CheckboxComponent, DEFAULT_ERROR_MESSAGES, DateInputComponent, DatetimeInputComponent, ERROR_MESSAGES, ErrorComponent, FIELD_CONTROL, FK_AUTOCOMPLETE_OPTION_TPL, FK_FILE_DROPZONE_ICON, FK_LABEL_ACTION, FK_PREFIX, FK_SUFFIX, FORM, FieldArrayOutletComponent, FieldGroupComponent, FieldOutletComponent, FieldRegistry, FileDropzoneComponent, FileUploadComponent, FkAutocompleteOptionTplDirective, FkFileDropzoneIconDirective, FkLabelActionDirective, FkPrefixDirective, FkSuffixDirective, FormComponent, FormFieldComponent, FormRendererComponent, FormSectionComponent, HintComponent, InputComponent, LabelComponent, NumberInputComponent, PasswordInputComponent, RadioComponent, SchemaParser, SectionOutletComponent, SegmentedBarComponent, SelectComponent, SliderComponent, SwitchComponent, TagInputComponent, TextareaComponent, TimeInputComponent, ValidationRegistry, getError, getFieldState, getInvalidFields, hasError, interpolateMessage, isFormValid, markAllTouched, resolveErrorMessage };
1712
1744
  export type { AsyncValidatorConfig, AsyncValidatorFactory, AutocompleteFilterMode, AutocompleteOption, ErrorMessages, FieldControl, FieldGroupLayout, FieldSchema, FieldState, FieldUiConfig, FkFileDropzoneSelection, FormRendererSubmitValue, FormSchema, FormSchemaSection, FormStatus, InputType, LabelEndLink, LayoutColumn, LayoutRow, Option, PasswordAutoComplete, ProgressSegment, RadioOption, SegmentedBarSize, SelectOption, ShowErrorsOn, ValidatorConfig, ValidatorFactory, VisibilityRule };