@magmonium/one 0.4.76 → 0.4.78

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": "@magmonium/one",
3
- "version": "0.4.76",
3
+ "version": "0.4.78",
4
4
  "description": "Magmonium One — Angular design-system primitives for mm Apps",
5
5
  "author": "magmonium",
6
6
  "license": "MIT",
@@ -1614,7 +1614,7 @@ export declare class DraggableDirective {
1614
1614
  readonly max: import("@angular/core").InputSignal<Position | undefined>;
1615
1615
  readonly dragStart: import("@angular/core").OutputEmitterRef<void>;
1616
1616
  readonly dragEnd: import("@angular/core").OutputEmitterRef<void>;
1617
- protected readonly cursor: import("@angular/core").Signal<"move" | "ew-resize" | "ns-resize">;
1617
+ protected readonly cursor: import("@angular/core").Signal<"ew-resize" | "ns-resize" | "move">;
1618
1618
  protected state: DraggableState;
1619
1619
  set pos(position: Position);
1620
1620
  /**
@@ -2916,7 +2916,7 @@ export declare class ButtonComponent extends ReactiveElementComponent<Button> {
2916
2916
  navParams: import("@angular/core").InputSignal<Record<string, string | number> | undefined>;
2917
2917
  href: import("@angular/core").InputSignal<string | undefined>;
2918
2918
  disabled: import("@angular/core").InputSignal<boolean | undefined>;
2919
- variant: import("@angular/core").InputSignal<"ghost" | "primary" | "secondary" | "tab" | undefined>;
2919
+ variant: import("@angular/core").InputSignal<"primary" | "ghost" | "secondary" | "tab" | undefined>;
2920
2920
  name: import("@angular/core").InputSignal<string | undefined>;
2921
2921
  baseUrl: import("@angular/core").InputSignal<string | undefined>;
2922
2922
  one: import("@angular/core").InputSignal<boolean | undefined>;
@@ -3536,7 +3536,7 @@ export declare class ButtonGroupComponent extends ConfigComponent<ButtonGroup> {
3536
3536
  color?: string | keyof import("dist/libs/cli/src").ThemeColor;
3537
3537
  align?: ConfigAlign;
3538
3538
  isLoading?: boolean;
3539
- variant?: "ghost" | "primary" | "secondary" | "tab" | undefined;
3539
+ variant?: "primary" | "ghost" | "secondary" | "tab" | undefined;
3540
3540
  label?: string;
3541
3541
  noTranslate?: boolean;
3542
3542
  params?: Record<string, string>;
@@ -4316,7 +4316,7 @@ declare class BaseTextInputComponent<T extends Input = TextInput> extends BaseIn
4316
4316
  private autofocused;
4317
4317
  constructor();
4318
4318
  readonly isFocused: import("@angular/core").WritableSignal<boolean>;
4319
- readonly iconColor: import("@angular/core").Signal<"border" | "error" | "focus">;
4319
+ readonly iconColor: import("@angular/core").Signal<"error" | "border" | "focus">;
4320
4320
  protected readonly setValue: (value: string) => void;
4321
4321
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseTextInputComponent<any>, never>;
4322
4322
  static ɵdir: i0.ɵɵDirectiveDeclaration<BaseTextInputComponent<any>, never, never, {
@@ -4936,7 +4936,7 @@ export declare class SectionFilterGroupComponent {
4936
4936
  readonly paddingX: import("@angular/core").InputSignal<boolean | undefined>;
4937
4937
  readonly paddingY: import("@angular/core").InputSignal<boolean | undefined>;
4938
4938
  readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
4939
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
4939
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right" | undefined>;
4940
4940
  readonly config: import("@angular/core").InputSignal<SectionFilterGroupConfig | undefined>;
4941
4941
  /**
4942
4942
  * The whole group's selection, keyed by each Filter's `name` — one key per
@@ -4954,7 +4954,7 @@ export declare class SectionFilterGroupComponent {
4954
4954
  protected readonly resolvedPadding: import("@angular/core").Signal<boolean>;
4955
4955
  protected readonly resolvedPaddingX: import("@angular/core").Signal<boolean>;
4956
4956
  protected readonly resolvedPaddingY: import("@angular/core").Signal<boolean>;
4957
- protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right">;
4957
+ protected readonly resolvedAlign: import("@angular/core").Signal<"center" | "left" | "right">;
4958
4958
  protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
4959
4959
  protected readonly noBorder: import("@angular/core").Signal<boolean>;
4960
4960
  /**
@@ -5059,7 +5059,7 @@ export declare class SectionStepperComponent implements OnDestroy {
5059
5059
  readonly lg: import("@angular/core").InputSignal<number | undefined>;
5060
5060
  readonly xl: import("@angular/core").InputSignal<number | undefined>;
5061
5061
  readonly xxl: import("@angular/core").InputSignal<number | undefined>;
5062
- readonly orientation: import("@angular/core").InputSignal<"horizontal" | "vertical" | undefined>;
5062
+ readonly orientation: import("@angular/core").InputSignal<"vertical" | "horizontal" | undefined>;
5063
5063
  readonly stepChange: import("@angular/core").OutputEmitterRef<number>;
5064
5064
  private readonly isCompact;
5065
5065
  private readonly mediaMatched;
@@ -5133,7 +5133,7 @@ export declare class SectionStepperComponent implements OnDestroy {
5133
5133
  export declare class SectionBadgesComponent {
5134
5134
  readonly wrap: import("@angular/core").InputSignal<boolean>;
5135
5135
  readonly border: import("@angular/core").InputSignal<boolean>;
5136
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
5136
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right">;
5137
5137
  private readonly sectionContext;
5138
5138
  protected readonly hasBorder: import("@angular/core").Signal<boolean>;
5139
5139
  static ɵfac: i0.ɵɵFactoryDeclaration<SectionBadgesComponent, never>;
@@ -5281,7 +5281,7 @@ export declare class SectionPaginationComponent {
5281
5281
  * Entries that are not positive numbers drop rather than throw.
5282
5282
  */
5283
5283
  readonly perPageOptions: import("@angular/core").InputSignal<string | undefined>;
5284
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
5284
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right">;
5285
5285
  readonly showPerPage: import("@angular/core").InputSignal<boolean>;
5286
5286
  /** Hides the band outright once everything fits one page. */
5287
5287
  readonly hideOnSinglePage: import("@angular/core").InputSignal<boolean>;
@@ -5618,7 +5618,7 @@ export declare class SectionComponent extends ConfigComponent<SectionConfig> {
5618
5618
  readonly align: import("@angular/core").InputSignal<SectionAlign | undefined>;
5619
5619
  readonly alignX: import("@angular/core").InputSignal<GridAlignX | undefined>;
5620
5620
  readonly alignY: import("@angular/core").InputSignal<GridAlignY | undefined>;
5621
- readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
5621
+ readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | Size | undefined>;
5622
5622
  private readonly parentSize;
5623
5623
  readonly resolvedSize: import("@angular/core").Signal<Size>;
5624
5624
  protected readonly sizeLength: import("@angular/core").Signal<string>;
@@ -5789,8 +5789,8 @@ export declare class SectionHeaderComponent {
5789
5789
  readonly visibilityRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
5790
5790
  readonly disableRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
5791
5791
  readonly extraData: import("@angular/core").InputSignal<unknown>;
5792
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
5793
- readonly alignment: import("@angular/core").Signal<"left" | "center" | "right">;
5792
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right" | undefined>;
5793
+ readonly alignment: import("@angular/core").Signal<"center" | "left" | "right">;
5794
5794
  readonly badge: import("@angular/core").InputSignal<BadgeCount | undefined>;
5795
5795
  readonly showBack: import("@angular/core").InputSignal<boolean>;
5796
5796
  readonly actionButton: import("@angular/core").InputSignal<string | undefined>;
@@ -5808,7 +5808,7 @@ export declare class SectionHeaderComponent {
5808
5808
  protected readonly sidepanel: import("@angular/core").Signal<boolean>;
5809
5809
  protected readonly noBorder: import("@angular/core").Signal<boolean>;
5810
5810
  protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
5811
- protected readonly boxAlign: import("@angular/core").Signal<"left" | "center" | "right">;
5811
+ protected readonly boxAlign: import("@angular/core").Signal<"center" | "left" | "right">;
5812
5812
  protected readonly iconBox: import("@angular/core").Signal<string>;
5813
5813
  protected readonly isSticky: import("@angular/core").Signal<boolean>;
5814
5814
  protected readonly hasMenu: import("@angular/core").Signal<boolean>;
@@ -5955,7 +5955,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
5955
5955
  readonly vertical: import("@angular/core").InputSignal<boolean | undefined>;
5956
5956
  readonly align: import("@angular/core").InputSignal<ConfigAlign>;
5957
5957
  readonly variant: import("@angular/core").InputSignal<"spaced" | "joined" | undefined>;
5958
- readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
5958
+ readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | Size | undefined>;
5959
5959
  readonly fullWidth: import("@angular/core").InputSignal<boolean | undefined>;
5960
5960
  private readonly parentSize;
5961
5961
  readonly resolvedSize: import("@angular/core").Signal<Size>;
@@ -5963,7 +5963,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
5963
5963
  protected readonly resolvedFullWidth: import("@angular/core").Signal<boolean>;
5964
5964
  protected readonly resolvedVertical: import("@angular/core").Signal<boolean>;
5965
5965
  protected readonly resolvedVariant: import("@angular/core").Signal<"spaced" | "joined">;
5966
- protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right" | "top" | "bottom">;
5966
+ protected readonly resolvedAlign: import("@angular/core").Signal<"center" | "left" | "right" | "bottom" | "top">;
5967
5967
  static ɵfac: i0.ɵɵFactoryDeclaration<SectionButtonGroupComponent, never>;
5968
5968
  static ɵcmp: i0.ɵɵComponentDeclaration<SectionButtonGroupComponent, "m-section-button-group", never, {
5969
5969
  "vertical": {
@@ -5995,7 +5995,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
5995
5995
  }
5996
5996
  export declare class SectionFooterComponent {
5997
5997
  readonly sticky: import("@angular/core").InputSignal<boolean>;
5998
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
5998
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right">;
5999
5999
  readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
6000
6000
  private readonly scrollSticky;
6001
6001
  protected readonly isSticky: import("@angular/core").Signal<boolean>;
@@ -6003,7 +6003,7 @@ export declare class SectionFooterComponent {
6003
6003
  protected readonly sidepanel: import("@angular/core").Signal<boolean>;
6004
6004
  protected readonly noBorder: import("@angular/core").Signal<boolean>;
6005
6005
  protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
6006
- protected readonly boxAlign: import("@angular/core").Signal<"left" | "center" | "right">;
6006
+ protected readonly boxAlign: import("@angular/core").Signal<"center" | "left" | "right">;
6007
6007
  static ɵfac: i0.ɵɵFactoryDeclaration<SectionFooterComponent, never>;
6008
6008
  static ɵcmp: i0.ɵɵComponentDeclaration<SectionFooterComponent, "m-section-footer", never, {
6009
6009
  "sticky": {
@@ -8160,7 +8160,7 @@ declare class DropdownBoxComponent {
8160
8160
  }
8161
8161
  /** The trigger both option Fields draw: a searchable text input and a chevron. */
8162
8162
  declare const DROPDOWN_TEMPLATE = "\n @if (config(); as dropdown) {\n @if (dropdown.label) {\n <m-label\n [for]=\"dropdown.name ?? ''\"\n [placeholder]=\"dropdown.label\"\n [params]=\"dropdown.params\"\n [required]=\"required()\"\n [disabled]=\"disabled()\"\n />\n }\n <div\n class=\"trigger-wrap\"\n #wrapper\n [mSelector]=\"selectorConfig()\"\n [disabled]=\"disabled() || readonly() || !!config()?.readonly\"\n (opened)=\"onOpened()\"\n (closed)=\"onClosed()\"\n (focusin)=\"isFocused.set(true)\"\n (focusout)=\"isFocused.set(false)\"\n >\n <m-text-input\n [config]=\"triggerInputConfig()\"\n [value]=\"displayValue()\"\n [disabled]=\"disabled()\"\n [invalid]=\"invalid()\"\n [hideErrors]=\"true\"\n [(touched)]=\"touched\"\n [focused]=\"focused()\"\n (valueChange)=\"onInput($event)\"\n (click)=\"preventToggleWhenOpen($event)\"\n (keydown.space)=\"$event.stopPropagation()\"\n (keydown.enter)=\"onEnter($event)\"\n (keydown.arrowdown)=\"onArrow($event, 1)\"\n (keydown.arrowup)=\"onArrow($event, -1)\"\n (keydown.tab)=\"$event.stopPropagation()\"\n />\n <m-button [disabled]=\"disabled()\" [config]=\"chevron()\" />\n </div>\n @if (showErrors()) {\n @for (error of errors(); track $index) {\n <m-text-output\n variant=\"footer\"\n color=\"error\"\n [label]=\"error.message\"\n />\n }\n }\n }\n";
8163
- declare const DROPDOWN_IMPORTS: (typeof TextInputComponent | typeof SelectorDirective | typeof LabelComponent | typeof TextOutputComponent | typeof ButtonComponent)[];
8163
+ declare const DROPDOWN_IMPORTS: (typeof ButtonComponent | typeof LabelComponent | typeof SelectorDirective | typeof TextOutputComponent | typeof TextInputComponent)[];
8164
8164
  /**
8165
8165
  * Everything a Dropdown and a Multiselect share: the options, the search, the
8166
8166
  * keyboard walk and the panel. What differs is only what the Field holds — one
@@ -8344,7 +8344,7 @@ declare class ColorPickerBoxComponent implements AfterViewInit, OnDestroy {
8344
8344
  protected readonly _eyedropperConfig: import("@magmonium/one").Button;
8345
8345
  protected readonly _headerContextMenu: ContextMenu;
8346
8346
  protected readonly themeSwatches: import("@angular/core").Signal<{
8347
- key: "mm" | "mmLite" | "mmDark" | "background" | "border" | "text" | "textSecondary" | "focus" | "error" | "errorLight" | "warning" | "successLite" | "success" | "highlight" | "wealth";
8347
+ key: "background" | "border" | "text" | "textSecondary" | "mm" | "mmLite" | "mmDark" | "focus" | "error" | "errorLight" | "warning" | "successLite" | "success" | "highlight" | "wealth";
8348
8348
  color: string;
8349
8349
  }[]>;
8350
8350
  hue: import("@angular/core").WritableSignal<number>;
@@ -9089,7 +9089,7 @@ export declare class FileUploadInputComponent extends BaseInputComponent<FileUpl
9089
9089
  private readonly editorSize;
9090
9090
  private readonly maxSize;
9091
9091
  protected readonly isLocked: import("@angular/core").Signal<boolean>;
9092
- protected readonly dropZoneIconColor: import("@angular/core").Signal<"border" | "error" | "focus">;
9092
+ protected readonly dropZoneIconColor: import("@angular/core").Signal<"error" | "border" | "focus">;
9093
9093
  /** Object URLs of the previews on show, keyed by what the value holds. */
9094
9094
  private readonly previews;
9095
9095
  protected readonly heldFiles: import("@angular/core").Signal<HeldFile[]>;
@@ -9543,17 +9543,17 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
9543
9543
  protected readonly resolvesConfigAsset = false;
9544
9544
  readonly variant: import("@angular/core").InputSignal<string | undefined>;
9545
9545
  readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
9546
- readonly heightMode: import("@angular/core").InputSignal<"full" | "fixed" | undefined>;
9546
+ readonly heightMode: import("@angular/core").InputSignal<"fixed" | "full" | undefined>;
9547
9547
  readonly maxHeight: import("@angular/core").InputSignal<string | number | undefined>;
9548
9548
  readonly height: import("@angular/core").InputSignal<string | number | undefined>;
9549
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
9549
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right" | undefined>;
9550
9550
  readonly padding: import("@angular/core").InputSignal<string | number | undefined>;
9551
9551
  readonly paddingX: import("@angular/core").InputSignal<string | number | undefined>;
9552
9552
  readonly paddingY: import("@angular/core").InputSignal<string | number | undefined>;
9553
9553
  readonly margin: import("@angular/core").InputSignal<string | number | undefined>;
9554
9554
  readonly marginX: import("@angular/core").InputSignal<string | number | undefined>;
9555
9555
  readonly marginY: import("@angular/core").InputSignal<string | number | undefined>;
9556
- readonly size: import("@angular/core").InputSignal<Size | "sm" | "md" | "lg" | undefined>;
9556
+ readonly size: import("@angular/core").InputSignal<"sm" | "md" | "lg" | Size | undefined>;
9557
9557
  readonly autofocus: import("@angular/core").InputSignal<boolean>;
9558
9558
  data: import("@angular/core").InputSignal<T | undefined>;
9559
9559
  readonly dataChange: import("@angular/core").OutputEmitterRef<T>;
@@ -9598,7 +9598,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
9598
9598
  protected readonly handleSubmit: (event: Event) => void;
9599
9599
  readonly resolvedSize: import("@angular/core").Signal<Size>;
9600
9600
  protected readonly sizeLength: import("@angular/core").Signal<string | null>;
9601
- readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right">;
9601
+ readonly resolvedAlign: import("@angular/core").Signal<"center" | "left" | "right">;
9602
9602
  readonly resolvedVariant: import("@angular/core").Signal<string | undefined>;
9603
9603
  readonly resolvedMaxWidth: import("@angular/core").Signal<string | number | undefined>;
9604
9604
  private readonly resolvedPadding;
@@ -9610,7 +9610,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
9610
9610
  readonly resolvedMinHeight: import("@angular/core").Signal<string | undefined>;
9611
9611
  readonly resolvedMinWidth: import("@angular/core").Signal<string | undefined>;
9612
9612
  readonly resolvedMaxHeight: import("@angular/core").Signal<string | number | undefined>;
9613
- readonly resolvedHeightMode: import("@angular/core").Signal<"full" | "fixed" | undefined>;
9613
+ readonly resolvedHeightMode: import("@angular/core").Signal<"fixed" | "full" | undefined>;
9614
9614
  readonly isFullHeight: import("@angular/core").Signal<boolean>;
9615
9615
  readonly cssMaxHeight: import("@angular/core").Signal<string | undefined>;
9616
9616
  constructor();
@@ -10458,7 +10458,7 @@ export declare class ComponentStepperComponent {
10458
10458
  components: import("@angular/core").InputSignal<Type<unknown>[]>;
10459
10459
  labels: import("@angular/core").InputSignal<string[] | undefined>;
10460
10460
  currentIndex: import("@angular/core").InputSignal<number>;
10461
- variant: import("@angular/core").InputSignal<"horizontal" | "vertical">;
10461
+ variant: import("@angular/core").InputSignal<"vertical" | "horizontal">;
10462
10462
  context: import("@angular/core").InputSignal<Record<string, unknown> | undefined>;
10463
10463
  readonly stepChange: import("@angular/core").OutputEmitterRef<number>;
10464
10464
  static ɵfac: i0.ɵɵFactoryDeclaration<ComponentStepperComponent, never>;
@@ -11795,6 +11795,232 @@ export declare class ScoreComponent {
11795
11795
  };
11796
11796
  }, {}, never, never, true, never>;
11797
11797
  }
11798
+ /** The band a Score falls in, or `no-data` when it has none. */
11799
+ type ScoreBand = 'exceptional' | 'strong' | 'average' | 'weak' | 'no-data';
11800
+ /** How a ScoreSet is laid out: ring + bars, or one row of chips. */
11801
+ type ScoreSetVariant = 'default' | 'compact';
11802
+ /**
11803
+ * The band a Score falls in. Painted on the primary item only — the rest of a
11804
+ * set wear their dimension's own colour, a band being a second colour no bar
11805
+ * fill should carry beside it.
11806
+ */
11807
+ export declare const scoreBand: (value: number | null) => ScoreBand;
11808
+ /**
11809
+ * The `n` of "Top n%": a Score is a percentile, so what it honestly says is a
11810
+ * standing in the Scored Universe, never a quality reading. Floored at 1 — the
11811
+ * stock that ranks first is in the top 1%, not the top 0%.
11812
+ */
11813
+ export declare const scoreStanding: (value: number | null) => number | null;
11814
+ /**
11815
+ * Whether a Score Date is older than `staleAfterDays` whole days. A Score that
11816
+ * failed to rescore keeps its old value and its old date, so the date is the
11817
+ * only thing that tells tonight's standing from March's. No date, or one that
11818
+ * does not parse, is not evidence of staleness.
11819
+ */
11820
+ export declare const isScoreStale: (scoreDate: string | undefined, today: Date, staleAfterDays: number) => boolean;
11821
+ /**
11822
+ * How many identity colours a set has before it reuses one. Six Okabe–Ito
11823
+ * hues, yellow left out for failing contrast on a light surface; the values,
11824
+ * one pair per theme, live in the set's own stylesheet.
11825
+ */
11826
+ export declare const SCORE_TONE_COUNT = 6;
11827
+ /**
11828
+ * The identity colour of the `index`-th non-primary item — a fixed hue per
11829
+ * dimension, so Momentum is the same colour on every stock whatever its value.
11830
+ */
11831
+ export declare const categoricalTone: (index: number) => string;
11832
+ /**
11833
+ * What a ScoreSetItem reads off the set it sits in. A token rather than the
11834
+ * component class, so the item and the set do not import each other: the set
11835
+ * decides which item is primary and in what order the rows stand, and each
11836
+ * item draws itself from that.
11837
+ */
11838
+ interface ScoreSetHost {
11839
+ readonly variant: Signal<ScoreSetVariant>;
11840
+ readonly bandShown: Signal<boolean>;
11841
+ /** Whether a Score shows "Top n%" beside its number. */
11842
+ readonly standingShown: Signal<boolean>;
11843
+ readonly stale: Signal<boolean>;
11844
+ /** "based on n of m", or '' when every row has a Score. */
11845
+ readonly basis: Signal<string>;
11846
+ /** The item drawn large, or null when none is primary. */
11847
+ readonly primaryItem: Signal<unknown>;
11848
+ /** An item's position among the rows, -1 for the primary. */
11849
+ readonly rowIndex: (item: unknown) => number;
11850
+ /** "Top n%", with the set's peer group when it names one. */
11851
+ readonly standingText: (value: number | null) => string;
11852
+ readonly choose: (key: string) => void;
11853
+ }
11854
+ declare const SCORE_SET_HOST: InjectionToken<ScoreSetHost>;
11855
+ /**
11856
+ * One Score of a ScoreSet, written as a tag inside `m-score-set` so a set's
11857
+ * dimensions are markup rather than an array literal (GLOSSARY.md
11858
+ * ScoreSetItem). It draws itself, in the shape the set gives it — the large
11859
+ * primary or a row — so the tag is the Score's own box: whatever is put on it
11860
+ * (an editor's selection, a test id) lands on what is drawn. Outside a set it
11861
+ * draws nothing.
11862
+ */
11863
+ export declare class ScoreSetItemComponent {
11864
+ /**
11865
+ * What the set's `scoreSelect` output emits when this item is chosen. Not
11866
+ * required: an item dropped in the editor has none until it is typed, and a
11867
+ * missing required input would throw in the emitted app.
11868
+ */
11869
+ readonly key: import("@angular/core").InputSignal<string>;
11870
+ /** TranslationAsset key naming the dimension. */
11871
+ readonly label: import("@angular/core").InputSignal<string>;
11872
+ /** 0–100. `null` is a Score that was not computed — drawn as "—", never 0. */
11873
+ readonly value: import("@angular/core").InputSignal<number | null | undefined>;
11874
+ /** Bare attribute. The first primary item in a set is drawn large. */
11875
+ readonly primary: import("@angular/core").InputSignal<string | boolean | undefined>;
11876
+ /** A ThemeColor key or CSS colour replacing this item's identity colour. */
11877
+ readonly color: import("@angular/core").InputSignal<string | undefined>;
11878
+ /** TranslationAsset key for the tooltip. */
11879
+ readonly description: import("@angular/core").InputSignal<string | undefined>;
11880
+ readonly isPrimary: import("@angular/core").Signal<boolean>;
11881
+ protected readonly set: ScoreSetHost | null;
11882
+ private readonly translateService;
11883
+ private readonly themeStore;
11884
+ protected readonly tipId: string;
11885
+ protected readonly tipDismissed: import("@angular/core").WritableSignal<boolean>;
11886
+ protected readonly shape: import("@angular/core").Signal<"primary" | "row" | "none">;
11887
+ protected readonly tone: import("@angular/core").Signal<string | null>;
11888
+ protected readonly model: import("@angular/core").Signal<{
11889
+ value: number | null;
11890
+ name: string;
11891
+ standing: string;
11892
+ display: string;
11893
+ bandText: string;
11894
+ valueText: string;
11895
+ tip: string;
11896
+ }>;
11897
+ protected readonly choose: () => void | undefined;
11898
+ protected readonly onKeydown: (event: KeyboardEvent) => void;
11899
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScoreSetItemComponent, never>;
11900
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScoreSetItemComponent, "m-score-set-item", never, {
11901
+ "key": {
11902
+ "alias": "key";
11903
+ "required": false;
11904
+ "isSignal": true;
11905
+ };
11906
+ "label": {
11907
+ "alias": "label";
11908
+ "required": false;
11909
+ "isSignal": true;
11910
+ };
11911
+ "value": {
11912
+ "alias": "value";
11913
+ "required": false;
11914
+ "isSignal": true;
11915
+ };
11916
+ "primary": {
11917
+ "alias": "primary";
11918
+ "required": false;
11919
+ "isSignal": true;
11920
+ };
11921
+ "color": {
11922
+ "alias": "color";
11923
+ "required": false;
11924
+ "isSignal": true;
11925
+ };
11926
+ "description": {
11927
+ "alias": "description";
11928
+ "required": false;
11929
+ "isSignal": true;
11930
+ };
11931
+ }, {}, never, never, true, never>;
11932
+ }
11933
+ /**
11934
+ * Several Scores drawn as one control: a headline, one primary Score drawn
11935
+ * large, and the rest as identity-coloured rows inside (GLOSSARY.md ScoreSet).
11936
+ * It decides which item is primary and in what order the rows stand; each
11937
+ * `m-score-set-item` draws itself from that, so every Score is its own box.
11938
+ * No border, background or radius of its own — what holds it pays for those.
11939
+ */
11940
+ export declare class ScoreSetComponent implements ScoreSetHost {
11941
+ /** TranslationAsset key for the headline. */
11942
+ readonly label: import("@angular/core").InputSignal<string>;
11943
+ /** TranslationAsset key naming the peer group a standing is taken against. */
11944
+ readonly of: import("@angular/core").InputSignal<string | undefined>;
11945
+ /** The run date the Scores were computed on (Score Date), ISO. */
11946
+ readonly scoreDate: import("@angular/core").InputSignal<string | undefined>;
11947
+ /** Whole days a Score Date may age before the set reads as stale. */
11948
+ readonly staleAfterDays: import("@angular/core").InputSignal<number>;
11949
+ /** The band word under the primary. `showBand="false"` drops it. */
11950
+ readonly showBand: import("@angular/core").InputSignal<string | boolean | undefined>;
11951
+ /**
11952
+ * Bare attribute. Shows "Top n%" beside each Score; off, a Score is its
11953
+ * number alone.
11954
+ */
11955
+ readonly showStanding: import("@angular/core").InputSignal<string | boolean | undefined>;
11956
+ /**
11957
+ * `default` — primary ring beside identity-coloured bars. `compact` — one
11958
+ * row of chips, for a table cell or a list row.
11959
+ */
11960
+ readonly variant: import("@angular/core").InputSignal<ScoreSetVariant>;
11961
+ /** The `key` of the item chosen by click, Enter or Space. */
11962
+ readonly scoreSelect: import("@angular/core").OutputEmitterRef<string>;
11963
+ private readonly items;
11964
+ protected readonly id: string;
11965
+ private readonly translateService;
11966
+ protected readonly labelText: import("@angular/core").Signal<string>;
11967
+ readonly bandShown: import("@angular/core").Signal<boolean>;
11968
+ readonly standingShown: import("@angular/core").Signal<boolean>;
11969
+ readonly stale: import("@angular/core").Signal<boolean>;
11970
+ protected readonly dateText: import("@angular/core").Signal<string>;
11971
+ readonly primaryItem: import("@angular/core").Signal<ScoreSetItemComponent | null>;
11972
+ private readonly rows;
11973
+ /** How many rows the primary spans beside, so it centres against them. */
11974
+ protected readonly rowCount: import("@angular/core").Signal<number>;
11975
+ readonly rowIndex: (item: unknown) => number;
11976
+ /**
11977
+ * "based on 4 of 5" when a row has no Score — the primary is a composite of
11978
+ * the rows, so a missing row changes what it means. Empty when all are there.
11979
+ */
11980
+ readonly basis: import("@angular/core").Signal<string>;
11981
+ readonly choose: (key: string) => void;
11982
+ readonly standingText: (value: number | null) => string;
11983
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScoreSetComponent, never>;
11984
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScoreSetComponent, "m-score-set", never, {
11985
+ "label": {
11986
+ "alias": "label";
11987
+ "required": false;
11988
+ "isSignal": true;
11989
+ };
11990
+ "of": {
11991
+ "alias": "of";
11992
+ "required": false;
11993
+ "isSignal": true;
11994
+ };
11995
+ "scoreDate": {
11996
+ "alias": "scoreDate";
11997
+ "required": false;
11998
+ "isSignal": true;
11999
+ };
12000
+ "staleAfterDays": {
12001
+ "alias": "staleAfterDays";
12002
+ "required": false;
12003
+ "isSignal": true;
12004
+ };
12005
+ "showBand": {
12006
+ "alias": "showBand";
12007
+ "required": false;
12008
+ "isSignal": true;
12009
+ };
12010
+ "showStanding": {
12011
+ "alias": "showStanding";
12012
+ "required": false;
12013
+ "isSignal": true;
12014
+ };
12015
+ "variant": {
12016
+ "alias": "variant";
12017
+ "required": false;
12018
+ "isSignal": true;
12019
+ };
12020
+ }, {
12021
+ "scoreSelect": "scoreSelect";
12022
+ }, ["items"], ["m-score-set-item"], true, never>;
12023
+ }
11798
12024
  export declare class ImgComponent {
11799
12025
  #private;
11800
12026
  readonly src: import("@angular/core").InputSignal<string | null | undefined>;
@@ -12160,7 +12386,7 @@ export type DocAiPhase = 'idle' | 'asking' | 'question' | 'outline' | 'writing'
12160
12386
  */
12161
12387
  export declare class DocEditorComponent implements ControlValueAccessor {
12162
12388
  protected readonly groups: readonly import("@magmonium/one").DocToolbarGroup[];
12163
- protected readonly icons: Record<"table" | "list" | "code" | "link" | "bold" | "italic" | "strike" | "heading" | "quote", string>;
12389
+ protected readonly icons: Record<"list" | "code" | "link" | "table" | "strike" | "bold" | "heading" | "italic" | "quote", string>;
12164
12390
  protected readonly docActionKey: typeof docActionKey;
12165
12391
  private readonly translate;
12166
12392
  protected readonly value: import("@angular/core").WritableSignal<string>;
@@ -13055,7 +13281,7 @@ export declare class InstrumentScoreComponent {
13055
13281
  readonly variant: import("@angular/core").InputSignal<"compact" | "detailed">;
13056
13282
  readonly showDescription: import("@angular/core").InputSignal<boolean>;
13057
13283
  readonly label: import("@angular/core").InputSignal<string>;
13058
- readonly status: import("@angular/core").Signal<"no-data" | "exceptional" | "strong" | "average" | "weak">;
13284
+ readonly status: import("@angular/core").Signal<"exceptional" | "strong" | "average" | "weak" | "no-data">;
13059
13285
  readonly hex: import("@angular/core").Signal<"#94a3b8" | "#10b981" | "#3b82f6" | "#f59e0b" | "#ef4444">;
13060
13286
  readonly description: import("@angular/core").Signal<"insufficient-data-to-provide-analysis" | "this-company-shows-exceptional-fundamentals-and-momentum" | "solid-performance-with-good-growth-potential" | "fair-valuation-but-requires-careful-monitoring" | "higher-risk-profile-with-weakening-metrics">;
13061
13287
  static ɵfac: i0.ɵɵFactoryDeclaration<InstrumentScoreComponent, never>;
@@ -14174,7 +14400,7 @@ export declare class ConfirmComponent {
14174
14400
  cancelLabel: import("@angular/core").InputSignal<string>;
14175
14401
  protected readonly confirmText: import("@angular/core").Signal<string>;
14176
14402
  protected readonly cancelText: import("@angular/core").Signal<string>;
14177
- protected readonly accent: import("@angular/core").Signal<"error" | "warning" | "success" | "mm">;
14403
+ protected readonly accent: import("@angular/core").Signal<"error" | "mm" | "success" | "warning">;
14178
14404
  protected readonly iconName: import("@angular/core").Signal<"exclamation-triangle" | "info" | "trash" | "check-circle">;
14179
14405
  protected accept(): void;
14180
14406
  protected decline(): void;
@@ -17958,4 +18184,4 @@ export declare const toggleUid: (audience: Audience, uid: string) => Audience;
17958
18184
  export declare const toggleGroup: (audience: Audience, groupId: string) => Audience;
17959
18185
  /** How many Users and Groups an Audience names. */
17960
18186
  export declare const pickCount: (audience: Audience) => number;
17961
- export type { Accordion, AccordionGroup, AccordionVariant, AppCardData, AppCardInputs, AppCardVariant, AppLogoTone, AppLogoVariant, AppManifest, AppTileData, AssetOption, Audience, AudienceLevel, AudienceMember, AudiencePicker, AuthResult, Badge, BadgeCount, BadgePosition, BadgeVariant, Button, ButtonGroup, CellChangeEvent, CellClickEvent, ColBreakpoint, ColSpan, ColorPallet, ColumnDef, Comment, CommentItem, Config, ContextMenu, ContextMenuEvent, Cursor, CustomIcon, DragListReorder, Draggable, DraggableState, FileUploadConfig, FileUploadEvent, FilterGroupContext, FilterGroupMember, FilterOption, FilterPanel, FilterPanelIo, FilterRangeMode, FilterSelectionMap, FilterValue, FilterVariant, FilteredTreeGrid, FlatTreeGridRow, FlexAlign, FlexAlignSelf, FlexConfig, FlexDirection, FlexItemConfig, FlexJustify, FlexVariant, GridAlignX, GridAlignY, GroupActionEvent, GroupDropEvent, GroupKind, GroupMenuEvent, Header, HeaderLevel, HeatSwatchRadius, Icon, KeyValueVariant, LabelSegment, ListConfig, ListContext, ListItem, ListOrientation, ListVariant, MenuItem, MoneySystem, NavCountConfig, NavInstanceConfig, NavMenuConfig, NavRowsConfig, NavVisibilityConfig, NavVisibleAnswer, NavWidgetConfig, NavWidgetEntry, NavWidgetMap, OverlayWidgetLoader, OverlayWidgetMap, PageChangeEvent, Pagination, PaginationWindow, ResolvedUserTab, RowDropEvent, SearchChangeEvent, SectionAccordion, SectionAccordionGroup, SectionAccordionGroupContext, SectionAccordionRef, SectionButtonGroupConfig, SectionChartConfig, SectionChartPoints, SectionChartScale, SectionChartWindow, SectionFilterGroupConfig, SectionHero, SectionHeroVariant, SectionTableAlign, SectionTableColumn, SectionTableConfig, SectionTableDataType, SectionTableSort, SectionTableVariant, SectionToggleItem, SectionToggleItemContext, SelectionAction, SelectionActionEvent, SelectionChangeEvent, SelectorConfig, SharingClient, SharingGroup, SocketMessage, Sort, SortChange, SortChangeEvent, SortOption, SortOrder, SourceAudience, SpacingInward, SqueezeMode, StatAlign, StatCornerEdge, StatCornerPosition, StatCornerSide, StatSurface, StatVariant, TabGroup, TableConfig, TableFilterCondition, TableFilterDef, TableGroup, TextOrNumberInput, Timeline, TimelineItem, TreeGridCellClickEvent, TreeGridLoadChildrenEvent, TreeGridRow, TreeGridRowSelectEvent, TreeGridToggleEvent, User };
18187
+ export type { Accordion, AccordionGroup, AccordionVariant, AppCardData, AppCardInputs, AppCardVariant, AppLogoTone, AppLogoVariant, AppManifest, AppTileData, AssetOption, Audience, AudienceLevel, AudienceMember, AudiencePicker, AuthResult, Badge, BadgeCount, BadgePosition, BadgeVariant, Button, ButtonGroup, CellChangeEvent, CellClickEvent, ColBreakpoint, ColSpan, ColorPallet, ColumnDef, Comment, CommentItem, Config, ContextMenu, ContextMenuEvent, Cursor, CustomIcon, DragListReorder, Draggable, DraggableState, FileUploadConfig, FileUploadEvent, FilterGroupContext, FilterGroupMember, FilterOption, FilterPanel, FilterPanelIo, FilterRangeMode, FilterSelectionMap, FilterValue, FilterVariant, FilteredTreeGrid, FlatTreeGridRow, FlexAlign, FlexAlignSelf, FlexConfig, FlexDirection, FlexItemConfig, FlexJustify, FlexVariant, GridAlignX, GridAlignY, GroupActionEvent, GroupDropEvent, GroupKind, GroupMenuEvent, Header, HeaderLevel, HeatSwatchRadius, Icon, KeyValueVariant, LabelSegment, ListConfig, ListContext, ListItem, ListOrientation, ListVariant, MenuItem, MoneySystem, NavCountConfig, NavInstanceConfig, NavMenuConfig, NavRowsConfig, NavVisibilityConfig, NavVisibleAnswer, NavWidgetConfig, NavWidgetEntry, NavWidgetMap, OverlayWidgetLoader, OverlayWidgetMap, PageChangeEvent, Pagination, PaginationWindow, ResolvedUserTab, RowDropEvent, ScoreBand, ScoreSetVariant, SearchChangeEvent, SectionAccordion, SectionAccordionGroup, SectionAccordionGroupContext, SectionAccordionRef, SectionButtonGroupConfig, SectionChartConfig, SectionChartPoints, SectionChartScale, SectionChartWindow, SectionFilterGroupConfig, SectionHero, SectionHeroVariant, SectionTableAlign, SectionTableColumn, SectionTableConfig, SectionTableDataType, SectionTableSort, SectionTableVariant, SectionToggleItem, SectionToggleItemContext, SelectionAction, SelectionActionEvent, SelectionChangeEvent, SelectorConfig, SharingClient, SharingGroup, SocketMessage, Sort, SortChange, SortChangeEvent, SortOption, SortOrder, SourceAudience, SpacingInward, SqueezeMode, StatAlign, StatCornerEdge, StatCornerPosition, StatCornerSide, StatSurface, StatVariant, TabGroup, TableConfig, TableFilterCondition, TableFilterDef, TableGroup, TextOrNumberInput, Timeline, TimelineItem, TreeGridCellClickEvent, TreeGridLoadChildrenEvent, TreeGridRow, TreeGridRowSelectEvent, TreeGridToggleEvent, User };