@area8975/ui 0.2.2-dev.48 → 0.2.2-dev.49

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": "@area8975/ui",
3
- "version": "0.2.2-dev.48",
3
+ "version": "0.2.2-dev.49",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^22.0.0",
6
6
  "@angular/core": "^22.0.0",
@@ -1157,7 +1157,22 @@ export declare class UiFieldComponent {
1157
1157
  readonly for: import("@angular/core").InputSignal<string>;
1158
1158
  readonly hintId: import("@angular/core").InputSignal<string>;
1159
1159
  readonly errorId: import("@angular/core").InputSignal<string>;
1160
+ /**
1161
+ * The label's id, `${for}-label`. Controls that a `<label for>` can't
1162
+ * reach (e.g. `ui-rich-text-editor`) point `aria-labelledby` at it.
1163
+ */
1164
+ readonly labelId: import("@angular/core").Signal<string>;
1165
+ private readonly document;
1160
1166
  protected get forAttr(): string | null;
1167
+ protected get labelIdAttr(): string | null;
1168
+ /**
1169
+ * A label click is passed on to its control as a click, which opens a
1170
+ * `ui-select` or `ui-datepicker` rather than just focusing it, and does
1171
+ * nothing at all for controls a label can't target (a contenteditable,
1172
+ * a `role="button"` div). So apart from checkboxes and radios, where the
1173
+ * click is the point, the label just focuses its control.
1174
+ */
1175
+ protected onClick(event: MouseEvent): void;
1161
1176
  protected get hintAttr(): string | null;
1162
1177
  protected get errorAttr(): string | null;
1163
1178
  static ɵfac: i0.ɵɵFactoryDeclaration<UiFieldComponent, never>;
@@ -1526,9 +1541,16 @@ export declare class UiRichTextEditorComponent {
1526
1541
  readonly spellcheck: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
1527
1542
  readonly ariaLabel: import("@angular/core").InputSignal<string>;
1528
1543
  readonly describedBy: import("@angular/core").InputSignal<string>;
1544
+ /**
1545
+ * Ids of the elements that name the editor. Defaults to the label of the
1546
+ * `ui-field` it sits in, when that field's `for` is this editor's `id` -
1547
+ * a `<label for>` can't name a contenteditable on its own.
1548
+ */
1549
+ readonly labelledBy: import("@angular/core").InputSignal<string>;
1529
1550
  readonly focused: import("@angular/core").OutputEmitterRef<FocusEvent>;
1530
1551
  readonly blurred: import("@angular/core").OutputEmitterRef<FocusEvent>;
1531
1552
  private readonly injector;
1553
+ private readonly field;
1532
1554
  private readonly host;
1533
1555
  private readonly content;
1534
1556
  private readonly editor;
@@ -1542,6 +1564,7 @@ export declare class UiRichTextEditorComponent {
1542
1564
  protected readonly linkHref: import("@angular/core").WritableSignal<string>;
1543
1565
  /** Index of the toolbar button that takes the toolbar's single tab stop. */
1544
1566
  protected readonly focusIndex: import("@angular/core").WritableSignal<number>;
1567
+ private readonly resolvedLabelledBy;
1545
1568
  protected readonly editable: import("@angular/core").Signal<boolean>;
1546
1569
  protected readonly toolGroups: import("@angular/core").Signal<("blockquote" | "code" | "link" | "strike" | "bold" | "italic" | "underline" | "heading1" | "heading2" | "heading3" | "bulletList" | "orderedList" | "codeBlock" | "horizontalRule" | "undo" | "redo")[][]>;
1547
1570
  protected readonly flatTools: import("@angular/core").Signal<("blockquote" | "code" | "link" | "strike" | "bold" | "italic" | "underline" | "heading1" | "heading2" | "heading3" | "bulletList" | "orderedList" | "codeBlock" | "horizontalRule" | "undo" | "redo")[]>;
@@ -1630,6 +1653,11 @@ export declare class UiRichTextEditorComponent {
1630
1653
  "required": false;
1631
1654
  "isSignal": true;
1632
1655
  };
1656
+ "labelledBy": {
1657
+ "alias": "labelledBy";
1658
+ "required": false;
1659
+ "isSignal": true;
1660
+ };
1633
1661
  }, {
1634
1662
  "value": "valueChange";
1635
1663
  "validationState": "validationStateChange";
@@ -2086,10 +2114,13 @@ export type AlertAppearance = typeof AlertAppearances[number];
2086
2114
  export declare class UiAvatarComponent {
2087
2115
  readonly name: import("@angular/core").InputSignal<string>;
2088
2116
  readonly src: import("@angular/core").InputSignal<string | null>;
2089
- readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg">;
2117
+ readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | "xl">;
2118
+ /** Fill behind the initials, any CSS colour. The initials' ink is picked to read on six digit hex, anything else gets dark ink. */
2119
+ readonly colour: import("@angular/core").InputSignal<string | null>;
2090
2120
  private readonly failedSrc;
2091
2121
  protected readonly showImage: import("@angular/core").Signal<boolean>;
2092
2122
  protected readonly initials: import("@angular/core").Signal<string>;
2123
+ protected readonly ink: import("@angular/core").Signal<string | null>;
2093
2124
  readonly generatedClasses: import("@angular/core").Signal<string>;
2094
2125
  protected imageFailed(): void;
2095
2126
  static ɵfac: i0.ɵɵFactoryDeclaration<UiAvatarComponent, never>;
@@ -2109,9 +2140,14 @@ export declare class UiAvatarComponent {
2109
2140
  "required": false;
2110
2141
  "isSignal": true;
2111
2142
  };
2143
+ "colour": {
2144
+ "alias": "colour";
2145
+ "required": false;
2146
+ "isSignal": true;
2147
+ };
2112
2148
  }, {}, never, never, true, never>;
2113
2149
  }
2114
- export declare const AvatarSizes: readonly ["sm", "md", "lg"];
2150
+ export declare const AvatarSizes: readonly ["sm", "md", "lg", "xl"];
2115
2151
  /** @see {@link AvatarSizes} */
2116
2152
  export type AvatarSize = typeof AvatarSizes[number];
2117
2153
  export declare class UiBadgeComponent {
@@ -2288,6 +2324,20 @@ export interface CalendarDay {
2288
2324
  isInRange: boolean;
2289
2325
  isRangeStart: boolean;
2290
2326
  isRangeEnd: boolean;
2327
+ /** Extra classes from the calendar's `dayClass`. */
2328
+ className: string;
2329
+ }
2330
+ /** The month a calendar shows, for loading what its days need. */
2331
+ export interface CalendarView {
2332
+ /** First of the month, e.g. "2026-11-01". */
2333
+ month: IsoDate;
2334
+ /** First and last day in the grid, including days from the months either side. */
2335
+ start: IsoDate;
2336
+ end: IsoDate;
2337
+ }
2338
+ export interface CalendarDayContext {
2339
+ $implicit: IsoDate;
2340
+ day: CalendarDay;
2291
2341
  }
2292
2342
  /** A local date and time ISO string, e.g. "2026-09-29T14:30". */
2293
2343
  export type IsoDateTime = string;
@@ -2299,6 +2349,15 @@ export interface DateRange {
2299
2349
  start: IsoDate | null;
2300
2350
  end: IsoDate | null;
2301
2351
  }
2352
+ /**
2353
+ * Draws each day's content in place of its number:
2354
+ * `<ng-template uiCalendarDay let-date let-day="day">`.
2355
+ */
2356
+ export declare class UiCalendarDayDirective {
2357
+ readonly template: TemplateRef<CalendarDayContext>;
2358
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiCalendarDayDirective, never>;
2359
+ static ɵdir: i0.ɵɵDirectiveDeclaration<UiCalendarDayDirective, "ng-template[uiCalendarDay]", never, {}, {}, never, never, true, never>;
2360
+ }
2302
2361
  export declare class UiCalendarComponent {
2303
2362
  private readonly host;
2304
2363
  private readonly injector;
@@ -2312,6 +2371,15 @@ export declare class UiCalendarComponent {
2312
2371
  readonly isDateDisabled: import("@angular/core").InputSignal<(date: IsoDate) => boolean>;
2313
2372
  readonly weekStart: import("@angular/core").InputSignal<0 | 1>;
2314
2373
  readonly locale: import("@angular/core").InputSignal<string>;
2374
+ /** Classes for a day, e.g. a tint. Signals it reads update the grid. */
2375
+ readonly dayClass: import("@angular/core").InputSignal<(date: IsoDate) => string>;
2376
+ /** Leaves picked days unmarked, for when a click does something other than pick. */
2377
+ readonly hideSelection: import("@angular/core").InputSignal<boolean>;
2378
+ /** Every click on an available day, even one that's already picked. */
2379
+ readonly dayClick: import("@angular/core").OutputEmitterRef<string>;
2380
+ /** The month in view, on first render and whenever it changes. */
2381
+ readonly monthChange: import("@angular/core").OutputEmitterRef<CalendarView>;
2382
+ protected readonly dayTemplate: import("@angular/core").Signal<UiCalendarDayDirective | undefined>;
2315
2383
  protected readonly today: string;
2316
2384
  private readonly anchorDate;
2317
2385
  private readonly activeDate;
@@ -2324,11 +2392,13 @@ export declare class UiCalendarComponent {
2324
2392
  protected readonly yearSource: import("@angular/core").Signal<SelectLocalDataSource<number>>;
2325
2393
  protected readonly displayMonth: (month: number) => string;
2326
2394
  protected readonly days: import("@angular/core").Signal<CalendarDay[]>;
2395
+ private readonly view;
2327
2396
  private readonly rangeBounds;
2328
2397
  /** Only one day is tabbable, arrow keys move between the rest. */
2329
2398
  protected readonly tabbableDate: import("@angular/core").Signal<string>;
2330
2399
  protected readonly canGoBack: import("@angular/core").Signal<boolean>;
2331
2400
  protected readonly canGoForward: import("@angular/core").Signal<boolean>;
2401
+ constructor();
2332
2402
  /** Moves focus onto the active day, e.g. when a datepicker opens. */
2333
2403
  focusActiveDate(): void;
2334
2404
  protected showMonth(offset: number): void;
@@ -2379,10 +2449,22 @@ export declare class UiCalendarComponent {
2379
2449
  "required": false;
2380
2450
  "isSignal": true;
2381
2451
  };
2452
+ "dayClass": {
2453
+ "alias": "dayClass";
2454
+ "required": false;
2455
+ "isSignal": true;
2456
+ };
2457
+ "hideSelection": {
2458
+ "alias": "hideSelection";
2459
+ "required": false;
2460
+ "isSignal": true;
2461
+ };
2382
2462
  }, {
2383
2463
  "value": "valueChange";
2384
2464
  "range": "rangeChange";
2385
- }, never, never, true, never>;
2465
+ "dayClick": "dayClick";
2466
+ "monthChange": "monthChange";
2467
+ }, ["dayTemplate"], never, true, never>;
2386
2468
  }
2387
2469
  export declare class UiCardComponent {
2388
2470
  readonly radius: import("@angular/core").InputSignal<"none" | "sm" | "md" | "lg" | "xl">;