@area8975/ui 0.2.2-dev.33 → 0.2.2-dev.36

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.33",
3
+ "version": "0.2.2-dev.36",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^22.0.0",
6
6
  "@angular/core": "^22.0.0",
@@ -1002,12 +1002,12 @@ export declare class UiFieldComponent {
1002
1002
  export declare class UiInputComponent<ValueType = string> {
1003
1003
  readonly value: import("@angular/core").ModelSignal<ValueType>;
1004
1004
  readonly classes: import("@angular/core").InputSignal<string>;
1005
- readonly type: import("@angular/core").InputSignal<"number" | "color" | "text" | "search" | "time" | "email" | "tel" | "url" | "password" | "date" | "datetime-local" | "month" | "week">;
1005
+ readonly type: import("@angular/core").InputSignal<"number" | "search" | "time" | "color" | "text" | "email" | "tel" | "url" | "password" | "date" | "datetime-local" | "month" | "week">;
1006
1006
  readonly id: import("@angular/core").InputSignal<string>;
1007
1007
  readonly name: import("@angular/core").InputSignal<string>;
1008
1008
  readonly placeholder: import("@angular/core").InputSignal<string>;
1009
1009
  readonly autocomplete: import("@angular/core").InputSignal<string>;
1010
- readonly inputmode: import("@angular/core").InputSignal<"" | "decimal" | "none" | "text" | "search" | "numeric" | "email" | "tel" | "url">;
1010
+ readonly inputmode: import("@angular/core").InputSignal<"" | "decimal" | "none" | "search" | "text" | "numeric" | "email" | "tel" | "url">;
1011
1011
  readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
1012
1012
  readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
1013
1013
  readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
@@ -1038,7 +1038,7 @@ export declare class UiInputComponent<ValueType = string> {
1038
1038
  readonly trailingElement: import("@angular/core").Signal<TemplateRef<unknown> | undefined>;
1039
1039
  protected readonly revealed: import("@angular/core").WritableSignal<boolean>;
1040
1040
  protected readonly canReveal: import("@angular/core").Signal<boolean>;
1041
- protected readonly shownType: import("@angular/core").Signal<"number" | "color" | "text" | "search" | "time" | "email" | "tel" | "url" | "password" | "date" | "datetime-local" | "month" | "week">;
1041
+ protected readonly shownType: import("@angular/core").Signal<"number" | "search" | "time" | "color" | "text" | "email" | "tel" | "url" | "password" | "date" | "datetime-local" | "month" | "week">;
1042
1042
  readonly generatedClasses: import("@angular/core").Signal<string>;
1043
1043
  protected handleInput(event: Event): void;
1044
1044
  protected handleFocus(event: FocusEvent): void;
@@ -1789,7 +1789,7 @@ export type BadgeSize = typeof BadgeSizes[number];
1789
1789
  * A general-purpose button.
1790
1790
  */
1791
1791
  export declare class UiButtonComponent {
1792
- readonly appearance: import("@angular/core").InputSignal<"none" | "solid" | "link" | "outline" | "ghost" | "white">;
1792
+ readonly appearance: import("@angular/core").InputSignal<"none" | "link" | "solid" | "outline" | "ghost" | "white">;
1793
1793
  readonly intent: import("@angular/core").InputSignal<"none" | "primary" | "secondary" | "success" | "warning" | "danger">;
1794
1794
  readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg">;
1795
1795
  readonly classes: import("@angular/core").InputSignal<string>;
@@ -1802,6 +1802,9 @@ export declare class UiButtonComponent {
1802
1802
  * `disabled` is set explicitly, or implicitly while `loading` is true.
1803
1803
  */
1804
1804
  readonly isDisabled: import("@angular/core").Signal<boolean>;
1805
+ private readonly group;
1806
+ /** In a segmented group the button matches a `ui-segmented` option instead of its own variant. */
1807
+ private readonly segmented;
1805
1808
  readonly generatedClasses: import("@angular/core").Signal<string>;
1806
1809
  private readonly intentAndAppearanceClasses;
1807
1810
  private readonly sizeClasses;
@@ -1874,6 +1877,8 @@ export type ButtonSize = typeof ButtonSizes[number];
1874
1877
  /** @see {@link ButtonTypes} */
1875
1878
  export type ButtonType = typeof ButtonTypes[number];
1876
1879
  /**
1880
+ * Buttons that belong together, joined edge to edge or in a segmented track.
1881
+ *
1877
1882
  * @example
1878
1883
  * ```html
1879
1884
  * <ui-button-group>
@@ -1884,10 +1889,29 @@ export type ButtonType = typeof ButtonTypes[number];
1884
1889
  * ```
1885
1890
  */
1886
1891
  export declare class UiButtonGroupComponent {
1892
+ /** `segmented` matches `ui-segmented`, so the two can sit side by side. Buttons inside ignore their own appearance, intent and size. */
1893
+ readonly appearance: import("@angular/core").InputSignal<"attached" | "segmented">;
1887
1894
  readonly buttons: import("@angular/core").Signal<readonly UiButtonComponent[]>;
1888
1895
  static ɵfac: i0.ɵɵFactoryDeclaration<UiButtonGroupComponent, never>;
1889
- static ɵcmp: i0.ɵɵComponentDeclaration<UiButtonGroupComponent, "ui-button-group", never, {}, {}, ["buttons"], ["*"], true, never>;
1896
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiButtonGroupComponent, "ui-button-group", never, {
1897
+ "appearance": {
1898
+ "alias": "appearance";
1899
+ "required": false;
1900
+ "isSignal": true;
1901
+ };
1902
+ }, {}, ["buttons"], ["*"], true, never>;
1890
1903
  }
1904
+ /**
1905
+ * How the buttons in a group are drawn. `"attached"` joins them edge to edge,
1906
+ * `"segmented"` sits them in a track that matches `ui-segmented`.
1907
+ */
1908
+ export declare const ButtonGroupAppearances: readonly ["attached", "segmented"];
1909
+ /** @see {@link ButtonGroupAppearances} */
1910
+ export type ButtonGroupAppearance = typeof ButtonGroupAppearances[number];
1911
+ /** Lets a button take its look from the group it's in. */
1912
+ export declare const UI_BUTTON_GROUP: InjectionToken<{
1913
+ appearance: Signal<ButtonGroupAppearance>;
1914
+ }>;
1891
1915
  /** Which day each calendar row starts on. 0 is Sunday, 1 is Monday. */
1892
1916
  export declare const WeekStarts: readonly [0, 1];
1893
1917
  /** @see {@link WeekStarts} */
@@ -2049,6 +2073,83 @@ export declare class UiContainerComponent {
2049
2073
  static ɵfac: i0.ɵɵFactoryDeclaration<UiContainerComponent, never>;
2050
2074
  static ɵcmp: i0.ɵɵComponentDeclaration<UiContainerComponent, "ui-container", never, {}, {}, never, ["*"], true, never>;
2051
2075
  }
2076
+ /** The disclosure's content, only rendered while it's expanded. */
2077
+ export declare class UiDisclosurePanelDirective {
2078
+ readonly template: TemplateRef<any>;
2079
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiDisclosurePanelDirective, never>;
2080
+ static ɵdir: i0.ɵɵDirectiveDeclaration<UiDisclosurePanelDirective, "ng-template[uiDisclosurePanel]", never, {}, {}, never, never, true, never>;
2081
+ }
2082
+ /**
2083
+ * Shows and hides a panel of content from a `ui-disclosure-trigger` inside it.
2084
+ * The content goes in an `<ng-template uiDisclosurePanel>`, rendered after
2085
+ * everything else in the disclosure.
2086
+ */
2087
+ export declare class UiDisclosureComponent {
2088
+ readonly expanded: import("@angular/core").ModelSignal<boolean>;
2089
+ /** The panel's id, which the trigger's aria-controls points at. Generated when left out. */
2090
+ readonly panelId: import("@angular/core").InputSignal<string>;
2091
+ private readonly generatedId;
2092
+ readonly regionId: import("@angular/core").Signal<string>;
2093
+ protected readonly panel: import("@angular/core").Signal<UiDisclosurePanelDirective | undefined>;
2094
+ readonly toggle: () => void;
2095
+ readonly open: () => void;
2096
+ readonly close: () => void;
2097
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiDisclosureComponent, never>;
2098
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiDisclosureComponent, "ui-disclosure", ["uiDisclosure"], {
2099
+ "expanded": {
2100
+ "alias": "expanded";
2101
+ "required": false;
2102
+ "isSignal": true;
2103
+ };
2104
+ "panelId": {
2105
+ "alias": "panelId";
2106
+ "required": false;
2107
+ "isSignal": true;
2108
+ };
2109
+ }, {
2110
+ "expanded": "expandedChange";
2111
+ }, ["panel"], ["*"], true, never>;
2112
+ }
2113
+ /**
2114
+ * How a disclosure trigger looks. `"section"` is a full-width header,
2115
+ * `"row"` stretches the trigger over its row - see
2116
+ * `UiDisclosureTriggerComponent.appearance`.
2117
+ */
2118
+ export declare const DisclosureTriggerAppearances: readonly ["section", "row"];
2119
+ /** @see {@link DisclosureTriggerAppearances} */
2120
+ export type DisclosureTriggerAppearance = typeof DisclosureTriggerAppearances[number];
2121
+ /** A chevron that turns with the `ui-disclosure` it's in. Put it in the trigger, or anywhere in a row. */
2122
+ export declare class UiDisclosureChevronComponent {
2123
+ protected readonly disclosure: UiDisclosureComponent;
2124
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiDisclosureChevronComponent, never>;
2125
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiDisclosureChevronComponent, "ui-disclosure-chevron", never, {}, {}, never, never, true, never>;
2126
+ }
2127
+ /**
2128
+ * The button that expands and collapses the `ui-disclosure` it's in.
2129
+ *
2130
+ * As a `"row"`, its hit area and focus ring cover the nearest positioned
2131
+ * element around it, so make the row `relative`, otherwise it's the whole
2132
+ * disclosure. Give other controls in the row `class="relative"` so they stay
2133
+ * clickable above it.
2134
+ */
2135
+ export declare class UiDisclosureTriggerComponent {
2136
+ protected readonly disclosure: UiDisclosureComponent;
2137
+ readonly appearance: import("@angular/core").InputSignal<"section" | "row">;
2138
+ readonly ariaLabel: import("@angular/core").InputSignal<string>;
2139
+ static ɵfac: i0.ɵɵFactoryDeclaration<UiDisclosureTriggerComponent, never>;
2140
+ static ɵcmp: i0.ɵɵComponentDeclaration<UiDisclosureTriggerComponent, "ui-disclosure-trigger", never, {
2141
+ "appearance": {
2142
+ "alias": "appearance";
2143
+ "required": false;
2144
+ "isSignal": true;
2145
+ };
2146
+ "ariaLabel": {
2147
+ "alias": "ariaLabel";
2148
+ "required": false;
2149
+ "isSignal": true;
2150
+ };
2151
+ }, {}, never, ["*"], true, never>;
2152
+ }
2052
2153
  export declare class UiDrawerComponent {
2053
2154
  readonly isOpen: import("@angular/core").WritableSignal<boolean>;
2054
2155
  readonly enableBackdrop: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
@@ -2131,7 +2232,7 @@ export declare class UiKpiComponent {
2131
2232
  readonly value: import("@angular/core").InputSignal<string>;
2132
2233
  readonly hint: import("@angular/core").InputSignal<string>;
2133
2234
  readonly icon: import("@angular/core").InputSignal<keyof import("@ng-icons/core").NgIconNameMap | undefined>;
2134
- readonly iconPosition: import("@angular/core").InputSignal<"right" | "left">;
2235
+ readonly iconPosition: import("@angular/core").InputSignal<"left" | "right">;
2135
2236
  static ɵfac: i0.ɵɵFactoryDeclaration<UiKpiComponent, never>;
2136
2237
  static ɵcmp: i0.ɵɵComponentDeclaration<UiKpiComponent, "ui-kpi", never, {
2137
2238
  "label": {
@@ -2381,7 +2482,7 @@ export declare class UiProgressComponent {
2381
2482
  readonly shape: import("@angular/core").InputSignal<"square" | "straight" | "rounded">;
2382
2483
  readonly orientation: import("@angular/core").InputSignal<"vertical" | "horizontal">;
2383
2484
  readonly title: import("@angular/core").InputSignal<string>;
2384
- readonly labelPosition: import("@angular/core").InputSignal<"none" | "top" | "end" | "floating" | "inside">;
2485
+ readonly labelPosition: import("@angular/core").InputSignal<"none" | "end" | "top" | "floating" | "inside">;
2385
2486
  readonly labelWith: import("@angular/core").InputSignal<(value: number, max: number) => string>;
2386
2487
  /** Splits the bar into this many blocks. */
2387
2488
  readonly steps: import("@angular/core").InputSignal<number | null>;
@@ -3479,7 +3580,7 @@ export declare class UiDatepickerComponent {
3479
3580
  }
3480
3581
  export declare class UiDropdownButtonComponent {
3481
3582
  readonly intent: import("@angular/core").InputSignal<"none" | "primary" | "secondary" | "success" | "warning" | "danger">;
3482
- readonly appearance: import("@angular/core").InputSignal<"none" | "solid" | "link" | "outline" | "ghost" | "white">;
3583
+ readonly appearance: import("@angular/core").InputSignal<"none" | "link" | "solid" | "outline" | "ghost" | "white">;
3483
3584
  readonly icon: import("@angular/core").InputSignal<string>;
3484
3585
  readonly isOpen: import("@angular/core").ModelSignal<boolean>;
3485
3586
  static ɵfac: i0.ɵɵFactoryDeclaration<UiDropdownButtonComponent, never>;
@@ -3708,6 +3809,8 @@ export interface TableOptionsFacet {
3708
3809
  kind: 'options';
3709
3810
  options: TableFacetOption[];
3710
3811
  multiple?: boolean;
3812
+ /** Shows this many options, plus any picked, then a "Show N more" toggle. Leave out to show them all. */
3813
+ visibleOptions?: number;
3711
3814
  }
3712
3815
  /** Writes `{ start, end }` ISO dates under `id`. */
3713
3816
  export interface TableDateRangeFacet {
@@ -3736,6 +3839,7 @@ export declare class UiTableFiltersComponent {
3736
3839
  protected readonly anyDate: DateMode;
3737
3840
  protected readonly customDate: DateMode;
3738
3841
  private readonly customDates;
3842
+ private readonly expanded;
3739
3843
  private readonly linked;
3740
3844
  protected readonly appliedCount: import("@angular/core").Signal<number>;
3741
3845
  protected readonly anyApplied: import("@angular/core").Signal<boolean>;
@@ -3748,12 +3852,19 @@ export declare class UiTableFiltersComponent {
3748
3852
  protected pick(facet: TableOptionsFacet, value: unknown): void;
3749
3853
  protected isChecked(facet: TableOptionsFacet, option: TableFacetOption): boolean;
3750
3854
  protected check(facet: TableOptionsFacet, option: TableFacetOption, checked: boolean): void;
3855
+ protected isExpanded(facet: TableOptionsFacet): boolean;
3856
+ protected isShown(facet: TableOptionsFacet, option: TableFacetOption, index: number): boolean;
3857
+ /** How many options collapsing hides, 0 when there's nothing to toggle. */
3858
+ protected hiddenCount(facet: TableOptionsFacet): number;
3859
+ protected toggleExpanded(facet: TableOptionsFacet): void;
3751
3860
  protected range(facet: TableDateRangeFacet): DateRange;
3752
3861
  protected dateMode(facet: TableDateRangeFacet): DateMode;
3753
3862
  protected pickDate(facet: TableDateRangeFacet, mode: DateMode): void;
3754
3863
  protected setRange(facet: TableDateRangeFacet, range: DateRange): void;
3755
3864
  protected clearAll(): void;
3756
3865
  private setCustom;
3866
+ private isPastCutoff;
3867
+ private isSelected;
3757
3868
  private apply;
3758
3869
  private write;
3759
3870
  private currentFilters;