@area8975/ui 0.1.1-dev.13 → 0.1.1-dev.17

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.1.1-dev.13",
3
+ "version": "0.1.1-dev.17",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^22.0.0",
6
6
  "@angular/core": "^22.0.0",
package/theme.css CHANGED
@@ -140,6 +140,11 @@
140
140
  --background: var(--color-neutral-900);
141
141
  --sidebar: var(--card);
142
142
  --sidebar-line: var(--card-line);
143
+
144
+ /* menus sit on cards, Preline's item hover is the card's own colour so it never showed */
145
+ --dropdown-item-hover: var(--color-neutral-700);
146
+ --dropdown-item-focus: var(--color-neutral-700);
147
+ --dropdown-item-active: var(--color-neutral-700);
143
148
  }
144
149
 
145
150
  /*
@@ -3,6 +3,7 @@ import { ElementRef, EnvironmentProviders, InjectionToken, OnDestroy, OnInit, Pr
3
3
  import ApexCharts$1 from "apexcharts";
4
4
  import { Placement } from "@floating-ui/dom";
5
5
  import { Observable } from "rxjs";
6
+ import { IconType } from "@ng-icons/core";
6
7
  /** One entry in a legend, the colour ties it to its marks. */
7
8
  export interface ChartLegendItem {
8
9
  name: string;
@@ -705,7 +706,7 @@ export declare class UiDropzoneComponent {
705
706
  readonly maxSize: import("@angular/core").InputSignal<number | null>;
706
707
  readonly title: import("@angular/core").InputSignal<string>;
707
708
  readonly hint: import("@angular/core").InputSignal<string>;
708
- readonly icon: import("@angular/core").InputSignal<string>;
709
+ readonly icon: import("@angular/core").InputSignal<keyof import("@ng-icons/core").NgIconNameMap>;
709
710
  readonly rejected: import("@angular/core").OutputEmitterRef<FileRejection[]>;
710
711
  private readonly picker;
711
712
  private dragDepth;
@@ -1985,7 +1986,7 @@ export declare class UiKpiComponent {
1985
1986
  readonly label: import("@angular/core").InputSignal<string>;
1986
1987
  readonly value: import("@angular/core").InputSignal<string>;
1987
1988
  readonly hint: import("@angular/core").InputSignal<string>;
1988
- readonly icon: import("@angular/core").InputSignal<string | undefined>;
1989
+ readonly icon: import("@angular/core").InputSignal<keyof import("@ng-icons/core").NgIconNameMap | undefined>;
1989
1990
  readonly iconPosition: import("@angular/core").InputSignal<"right" | "left">;
1990
1991
  static ɵfac: i0.ɵɵFactoryDeclaration<UiKpiComponent, never>;
1991
1992
  static ɵcmp: i0.ɵɵComponentDeclaration<UiKpiComponent, "ui-kpi", never, {
@@ -2315,6 +2316,8 @@ export declare class UiSegmentedComponent<T> {
2315
2316
  readonly value: import("@angular/core").ModelSignal<T>;
2316
2317
  /** What the options choose between, e.g. "How far back the charts go". */
2317
2318
  readonly ariaLabel: import("@angular/core").InputSignal<string>;
2319
+ /** Stretches to the container's width with the options sharing it evenly. */
2320
+ readonly fill: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
2318
2321
  protected readonly name: string;
2319
2322
  static ɵfac: i0.ɵɵFactoryDeclaration<UiSegmentedComponent<any>, never>;
2320
2323
  static ɵcmp: i0.ɵɵComponentDeclaration<UiSegmentedComponent<any>, "ui-segmented", never, {
@@ -2333,6 +2336,11 @@ export declare class UiSegmentedComponent<T> {
2333
2336
  "required": true;
2334
2337
  "isSignal": true;
2335
2338
  };
2339
+ "fill": {
2340
+ "alias": "fill";
2341
+ "required": false;
2342
+ "isSignal": true;
2343
+ };
2336
2344
  }, {
2337
2345
  "value": "valueChange";
2338
2346
  }, never, never, true, never>;
@@ -2719,7 +2727,7 @@ export declare class UiToastComponent {
2719
2727
  /** ms before the toast dismisses itself, paused while hovered or focused. null never times out. */
2720
2728
  readonly timeoutMs: import("@angular/core").InputSignal<number | null>;
2721
2729
  readonly dismissed: import("@angular/core").OutputEmitterRef<void>;
2722
- protected readonly icon: import("@angular/core").Signal<string>;
2730
+ protected readonly icon: import("@angular/core").Signal<IconType>;
2723
2731
  protected readonly iconColour: import("@angular/core").Signal<string>;
2724
2732
  protected readonly role: import("@angular/core").Signal<"alert" | "status">;
2725
2733
  private hovered;
@@ -2936,6 +2944,25 @@ export declare class UiSidebarComponent {
2936
2944
  "isOpen": "isOpenChange";
2937
2945
  }, never, ["*", "[sidebar-footer]"], true, never>;
2938
2946
  }
2947
+ /**
2948
+ * A labelled section of sidebar items. The label shows while the sidebar is
2949
+ * open and turns into a divider when it's collapsed, screen readers get the
2950
+ * name either way.
2951
+ */
2952
+ export declare class UiSidebarGroupComponent {
2953
+ private readonly sidebar;
2954
+ readonly label: import("@angular/core").InputSignal<string>;
2955
+ protected readonly labelId: string;
2956
+ readonly isCollapsed: import("@angular/core").Signal<boolean>;
2957
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiSidebarGroupComponent, never>;
2958
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiSidebarGroupComponent, "ui-sidebar-group", never, {
2959
+ "label": {
2960
+ "alias": "label";
2961
+ "required": true;
2962
+ "isSignal": true;
2963
+ };
2964
+ }, {}, never, ["*"], true, never>;
2965
+ }
2939
2966
  export declare class UiSidebarItemComponent {
2940
2967
  private readonly sidebar;
2941
2968
  readonly label: import("@angular/core").InputSignal<string>;
@@ -3465,6 +3492,56 @@ export declare class UiTimeSelectComponent {
3465
3492
  "value": "valueChange";
3466
3493
  }, never, never, true, never>;
3467
3494
  }
3495
+ /**
3496
+ * The signed in person and their options, e.g. Settings and Log out, with a
3497
+ * theme switch. Goes inside a dropdown's `uiDropdownContent`, the same as
3498
+ * `ui-dropdown-menu`. Give that dropdown `closeBehaviour="whenClickOutside"`
3499
+ * so picking a theme doesn't close it, picking an item still does.
3500
+ */
3501
+ export declare class UiUserMenuComponent {
3502
+ private readonly dropdown;
3503
+ readonly name: import("@angular/core").InputSignal<string>;
3504
+ /** A second line under the name, e.g. an email address. */
3505
+ readonly detail: import("@angular/core").InputSignal<string>;
3506
+ readonly src: import("@angular/core").InputSignal<string | null>;
3507
+ /** The same items as `ui-dropdown-menu`, buttons, labelled groups and dividers. */
3508
+ readonly items: import("@angular/core").InputSignal<DropdownMenuItem[]>;
3509
+ /** Shows the System, Light and Dark switch, which needs `provideUiTheme()`. */
3510
+ readonly themeSwitch: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
3511
+ protected readonly menuItems: import("@angular/core").Signal<DropdownMenuItem[]>;
3512
+ protected isDivider(item: DropdownMenuItem): boolean;
3513
+ protected group(item: DropdownMenuItem): DropdownMenuCategory | null;
3514
+ protected button(item: DropdownMenuItem): DropdownMenuButton | null;
3515
+ private closing;
3516
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiUserMenuComponent, never>;
3517
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiUserMenuComponent, "ui-user-menu", never, {
3518
+ "name": {
3519
+ "alias": "name";
3520
+ "required": true;
3521
+ "isSignal": true;
3522
+ };
3523
+ "detail": {
3524
+ "alias": "detail";
3525
+ "required": false;
3526
+ "isSignal": true;
3527
+ };
3528
+ "src": {
3529
+ "alias": "src";
3530
+ "required": false;
3531
+ "isSignal": true;
3532
+ };
3533
+ "items": {
3534
+ "alias": "items";
3535
+ "required": false;
3536
+ "isSignal": true;
3537
+ };
3538
+ "themeSwitch": {
3539
+ "alias": "themeSwitch";
3540
+ "required": false;
3541
+ "isSignal": true;
3542
+ };
3543
+ }, {}, never, never, true, never>;
3544
+ }
3468
3545
  /** What the user picked, `system` follows the OS setting. */
3469
3546
  export type UiThemePreference = 'system' | 'light' | 'dark';
3470
3547
  export interface UiThemeConfig {
@@ -3504,4 +3581,29 @@ export declare class UiThemeService {
3504
3581
  static ɵprov: i0.ɵɵInjectableDeclaration<any>;
3505
3582
  }
3506
3583
  /** Starts theme switching at boot. Read or change it through `UiThemeService`. */
3507
- export declare function provideUiTheme(config?: Partial<UiThemeConfig>): EnvironmentProviders;
3584
+ export declare function provideUiTheme(config?: Partial<UiThemeConfig>): EnvironmentProviders;
3585
+ /**
3586
+ * Picks System, Light or Dark through UiThemeService, so the choice is stored
3587
+ * and applied straight away. Add `provideUiTheme()` so the stored choice is
3588
+ * applied at boot, not only once this has rendered.
3589
+ */
3590
+ export declare class UiThemeSwitchComponent {
3591
+ protected readonly theme: UiThemeService;
3592
+ readonly ariaLabel: import("@angular/core").InputSignal<string>;
3593
+ /** Stretches to the container's width, see `ui-segmented`. */
3594
+ readonly fill: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
3595
+ protected readonly options: SegmentedOption<UiThemePreference>[];
3596
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiThemeSwitchComponent, never>;
3597
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiThemeSwitchComponent, "ui-theme-switch", never, {
3598
+ "ariaLabel": {
3599
+ "alias": "ariaLabel";
3600
+ "required": false;
3601
+ "isSignal": true;
3602
+ };
3603
+ "fill": {
3604
+ "alias": "fill";
3605
+ "required": false;
3606
+ "isSignal": true;
3607
+ };
3608
+ }, {}, never, never, true, never>;
3609
+ }