@magmonium/one 0.4.64 → 0.4.66

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.64",
3
+ "version": "0.4.66",
4
4
  "description": "Magmonium One — Angular design-system primitives for mm Apps",
5
5
  "author": "magmonium",
6
6
  "license": "MIT",
@@ -4848,7 +4848,7 @@ export declare class SectionFilterGroupComponent {
4848
4848
  readonly paddingX: import("@angular/core").InputSignal<boolean | undefined>;
4849
4849
  readonly paddingY: import("@angular/core").InputSignal<boolean | undefined>;
4850
4850
  readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
4851
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
4851
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right" | undefined>;
4852
4852
  readonly config: import("@angular/core").InputSignal<SectionFilterGroupConfig | undefined>;
4853
4853
  /**
4854
4854
  * The whole group's selection, keyed by each Filter's `name` — one key per
@@ -4866,7 +4866,7 @@ export declare class SectionFilterGroupComponent {
4866
4866
  protected readonly resolvedPadding: import("@angular/core").Signal<boolean>;
4867
4867
  protected readonly resolvedPaddingX: import("@angular/core").Signal<boolean>;
4868
4868
  protected readonly resolvedPaddingY: import("@angular/core").Signal<boolean>;
4869
- protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right">;
4869
+ protected readonly resolvedAlign: import("@angular/core").Signal<"center" | "left" | "right">;
4870
4870
  protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
4871
4871
  protected readonly noBorder: import("@angular/core").Signal<boolean>;
4872
4872
  /**
@@ -5045,7 +5045,7 @@ export declare class SectionStepperComponent implements OnDestroy {
5045
5045
  export declare class SectionBadgesComponent {
5046
5046
  readonly wrap: import("@angular/core").InputSignal<boolean>;
5047
5047
  readonly border: import("@angular/core").InputSignal<boolean>;
5048
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
5048
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right">;
5049
5049
  private readonly sectionContext;
5050
5050
  protected readonly hasBorder: import("@angular/core").Signal<boolean>;
5051
5051
  static ɵfac: i0.ɵɵFactoryDeclaration<SectionBadgesComponent, never>;
@@ -5193,7 +5193,7 @@ export declare class SectionPaginationComponent {
5193
5193
  * Entries that are not positive numbers drop rather than throw.
5194
5194
  */
5195
5195
  readonly perPageOptions: import("@angular/core").InputSignal<string | undefined>;
5196
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
5196
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right">;
5197
5197
  readonly showPerPage: import("@angular/core").InputSignal<boolean>;
5198
5198
  /** Hides the band outright once everything fits one page. */
5199
5199
  readonly hideOnSinglePage: import("@angular/core").InputSignal<boolean>;
@@ -5605,6 +5605,7 @@ interface RowConfig extends Config {
5605
5605
  paddingY?: boolean;
5606
5606
  maxWidth?: string;
5607
5607
  center?: boolean;
5608
+ fullHeight?: boolean;
5608
5609
  }
5609
5610
  export declare class RowComponent extends ConfigComponent<RowConfig> {
5610
5611
  subFolder: "rows";
@@ -5613,11 +5614,13 @@ export declare class RowComponent extends ConfigComponent<RowConfig> {
5613
5614
  readonly paddingY: import("@angular/core").InputSignal<boolean | undefined>;
5614
5615
  readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
5615
5616
  readonly center: import("@angular/core").InputSignal<boolean | undefined>;
5617
+ readonly fullHeight: import("@angular/core").InputSignal<boolean | undefined>;
5616
5618
  protected readonly resolvedPadding: import("@angular/core").Signal<boolean>;
5617
5619
  protected readonly resolvedPaddingX: import("@angular/core").Signal<boolean>;
5618
5620
  protected readonly resolvedPaddingY: import("@angular/core").Signal<boolean>;
5619
5621
  protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
5620
5622
  protected readonly resolvedCenter: import("@angular/core").Signal<boolean>;
5623
+ protected readonly resolvedFullHeight: import("@angular/core").Signal<boolean>;
5621
5624
  protected readonly classes: import("@angular/core").Signal<string>;
5622
5625
  private readonly sectionContext;
5623
5626
  protected readonly noBorder: import("@angular/core").Signal<boolean>;
@@ -5648,6 +5651,11 @@ export declare class RowComponent extends ConfigComponent<RowConfig> {
5648
5651
  "required": false;
5649
5652
  "isSignal": true;
5650
5653
  };
5654
+ "fullHeight": {
5655
+ "alias": "fullHeight";
5656
+ "required": false;
5657
+ "isSignal": true;
5658
+ };
5651
5659
  }, {}, never, ["*"], true, never>;
5652
5660
  }
5653
5661
  type HeaderLevel = 1 | 2 | 3 | 4 | 5 | 6;
@@ -5693,8 +5701,8 @@ export declare class SectionHeaderComponent {
5693
5701
  readonly visibilityRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
5694
5702
  readonly disableRule: import("@angular/core").InputSignal<((key: string, data?: unknown) => boolean) | undefined>;
5695
5703
  readonly extraData: import("@angular/core").InputSignal<unknown>;
5696
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
5697
- readonly alignment: import("@angular/core").Signal<"left" | "center" | "right">;
5704
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right" | undefined>;
5705
+ readonly alignment: import("@angular/core").Signal<"center" | "left" | "right">;
5698
5706
  readonly badge: import("@angular/core").InputSignal<BadgeCount | undefined>;
5699
5707
  readonly showBack: import("@angular/core").InputSignal<boolean>;
5700
5708
  readonly actionButton: import("@angular/core").InputSignal<string | undefined>;
@@ -5712,7 +5720,7 @@ export declare class SectionHeaderComponent {
5712
5720
  protected readonly sidepanel: import("@angular/core").Signal<boolean>;
5713
5721
  protected readonly noBorder: import("@angular/core").Signal<boolean>;
5714
5722
  protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
5715
- protected readonly boxAlign: import("@angular/core").Signal<"left" | "center" | "right">;
5723
+ protected readonly boxAlign: import("@angular/core").Signal<"center" | "left" | "right">;
5716
5724
  protected readonly iconBox: import("@angular/core").Signal<string>;
5717
5725
  protected readonly isSticky: import("@angular/core").Signal<boolean>;
5718
5726
  protected readonly hasMenu: import("@angular/core").Signal<boolean>;
@@ -5867,7 +5875,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
5867
5875
  protected readonly resolvedFullWidth: import("@angular/core").Signal<boolean>;
5868
5876
  protected readonly resolvedVertical: import("@angular/core").Signal<boolean>;
5869
5877
  protected readonly resolvedVariant: import("@angular/core").Signal<"spaced" | "joined">;
5870
- protected readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right" | "bottom" | "top">;
5878
+ protected readonly resolvedAlign: import("@angular/core").Signal<"center" | "left" | "right" | "bottom" | "top">;
5871
5879
  static ɵfac: i0.ɵɵFactoryDeclaration<SectionButtonGroupComponent, never>;
5872
5880
  static ɵcmp: i0.ɵɵComponentDeclaration<SectionButtonGroupComponent, "m-section-button-group", never, {
5873
5881
  "vertical": {
@@ -5899,7 +5907,7 @@ export declare class SectionButtonGroupComponent extends ConfigComponent<Section
5899
5907
  }
5900
5908
  export declare class SectionFooterComponent {
5901
5909
  readonly sticky: import("@angular/core").InputSignal<boolean>;
5902
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right">;
5910
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right">;
5903
5911
  readonly maxWidth: import("@angular/core").InputSignal<string | undefined>;
5904
5912
  private readonly scrollSticky;
5905
5913
  protected readonly isSticky: import("@angular/core").Signal<boolean>;
@@ -5907,7 +5915,7 @@ export declare class SectionFooterComponent {
5907
5915
  protected readonly sidepanel: import("@angular/core").Signal<boolean>;
5908
5916
  protected readonly noBorder: import("@angular/core").Signal<boolean>;
5909
5917
  protected readonly resolvedMaxWidth: import("@angular/core").Signal<string | undefined>;
5910
- protected readonly boxAlign: import("@angular/core").Signal<"left" | "center" | "right">;
5918
+ protected readonly boxAlign: import("@angular/core").Signal<"center" | "left" | "right">;
5911
5919
  static ɵfac: i0.ɵɵFactoryDeclaration<SectionFooterComponent, never>;
5912
5920
  static ɵcmp: i0.ɵɵComponentDeclaration<SectionFooterComponent, "m-section-footer", never, {
5913
5921
  "sticky": {
@@ -7943,6 +7951,7 @@ export declare class TextOutputComponent extends ConfigComponent<TextOutputConfi
7943
7951
  readonly label: import("@angular/core").InputSignal<string | undefined>;
7944
7952
  readonly noTranslate: import("@angular/core").InputSignal<string | boolean | undefined>;
7945
7953
  readonly params: import("@angular/core").InputSignal<Record<string, string> | undefined>;
7954
+ readonly truncate: import("@angular/core").InputSignal<boolean | undefined>;
7946
7955
  readonly resolvedAlign: import("@angular/core").Signal<TextOutputAlign>;
7947
7956
  protected readonly resolvedVariant: import("@angular/core").Signal<TextOutputVariant | undefined>;
7948
7957
  protected readonly resolvedFontWeight: import("@angular/core").Signal<TextOutputFontWeight | undefined>;
@@ -8004,6 +8013,11 @@ export declare class TextOutputComponent extends ConfigComponent<TextOutputConfi
8004
8013
  "required": false;
8005
8014
  "isSignal": true;
8006
8015
  };
8016
+ "truncate": {
8017
+ "alias": "truncate";
8018
+ "required": false;
8019
+ "isSignal": true;
8020
+ };
8007
8021
  }, {
8008
8022
  "config": "configChange";
8009
8023
  "clicked": "clicked";
@@ -9434,7 +9448,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
9434
9448
  readonly heightMode: import("@angular/core").InputSignal<"fixed" | "full" | undefined>;
9435
9449
  readonly maxHeight: import("@angular/core").InputSignal<string | number | undefined>;
9436
9450
  readonly height: import("@angular/core").InputSignal<string | number | undefined>;
9437
- readonly align: import("@angular/core").InputSignal<"left" | "center" | "right" | undefined>;
9451
+ readonly align: import("@angular/core").InputSignal<"center" | "left" | "right" | undefined>;
9438
9452
  readonly padding: import("@angular/core").InputSignal<string | number | undefined>;
9439
9453
  readonly paddingX: import("@angular/core").InputSignal<string | number | undefined>;
9440
9454
  readonly paddingY: import("@angular/core").InputSignal<string | number | undefined>;
@@ -9486,7 +9500,7 @@ export declare class SectionFormComponent<T extends object = Record<string, unkn
9486
9500
  protected readonly handleSubmit: (event: Event) => void;
9487
9501
  readonly resolvedSize: import("@angular/core").Signal<Size>;
9488
9502
  protected readonly sizeLength: import("@angular/core").Signal<string | null>;
9489
- readonly resolvedAlign: import("@angular/core").Signal<"left" | "center" | "right">;
9503
+ readonly resolvedAlign: import("@angular/core").Signal<"center" | "left" | "right">;
9490
9504
  readonly resolvedVariant: import("@angular/core").Signal<string | undefined>;
9491
9505
  readonly resolvedMaxWidth: import("@angular/core").Signal<string | number | undefined>;
9492
9506
  private readonly resolvedPadding;
@@ -12048,7 +12062,7 @@ export type DocAiPhase = 'idle' | 'asking' | 'question' | 'outline' | 'writing'
12048
12062
  */
12049
12063
  export declare class DocEditorComponent implements ControlValueAccessor {
12050
12064
  protected readonly groups: readonly import("@magmonium/one").DocToolbarGroup[];
12051
- protected readonly icons: Record<"bold" | "italic" | "strike" | "heading" | "list" | "quote" | "link" | "code" | "table", string>;
12065
+ protected readonly icons: Record<"code" | "link" | "table" | "strike" | "list" | "bold" | "heading" | "italic" | "quote", string>;
12052
12066
  protected readonly docActionKey: typeof docActionKey;
12053
12067
  private readonly translate;
12054
12068
  protected readonly value: import("@angular/core").WritableSignal<string>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"magmonium-one-text-output-nJBGhbwG.mjs","names":[],"sources":["../../../../libs/one/src/lib/shared/ui/text-output/ui/text-output.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n output,\n} from '@angular/core';\nimport { TranslateService } from '../../../services/translate';\nimport { ConfigComponent } from '../../../lib/components/config-component';\nimport { Config } from '../../../type/config/config-type';\nimport { LAYOUT_ASSET_FOLDER } from '../../../enum';\nimport { toAttrBool } from '../../../functions/config/attribute-value';\nimport { resolvePallet } from '../../../lib/theme/lib/color-utl';\n\nexport type TextOutputAlign = 'left' | 'right' | 'center';\n\n// Variants are roles, not styles: each one says what the text is doing on the\n// page, and the Section it sits in decides how big that role renders. Every\n// size below is therefore an `em` multiple of the inherited Section font-size\n// — a `lead` in a compact Section stays proportionally a lead — which is the\n// one rule the plain (undefined) variant keeps by inheriting outright.\n//\n// - `lead` opening paragraph that introduces the block under it\n// - `big` one-line statement — a number, a verdict, a headline that is\n// not a SectionHeader\n// - `bold` emphasis at body size, for the line that must be read first\n// - `footer` annotation under the thing it describes — a field's validation\n// message, a caption, a disclaimer; 0.75 of body, body colour\n// - `footnote` aside the reader may skip — source, legal line, small print;\n// 0.6 of body, body colour\n// - `link` text that goes somewhere on click — an affordance rather than\n// a size, so it is the one role that stays inline, takes focus,\n// and emits `clicked`\n// - `link-small` the same affordance for a link that trails the content it\n// belongs to rather than carrying a line of its own — a \"see\n// all\", an \"edit\" beside a field; body size like `link`\nexport type TextOutputVariant =\n | 'lead'\n | 'big'\n | 'bold'\n | 'footer'\n | 'footnote'\n | 'link'\n | 'link-small';\n\n// Weight tokens of the type scale. Applied after the variant, so it overrides\n// the weight a role implies (`lead` light, `big` semibold, `bold` bold).\nexport type TextOutputFontWeight =\n | 'light'\n | 'normal'\n | 'medium'\n | 'semibold'\n | 'bold';\n\nexport interface TextOutputConfig extends Config {\n label?: string;\n noTranslate?: boolean;\n align?: TextOutputAlign;\n variant?: TextOutputVariant;\n color?: string;\n fontWeight?: TextOutputFontWeight;\n}\n\n@Component({\n selector: 'm-text-output',\n imports: [],\n template: `\n <div\n class=\"m-text-output\"\n [style.color]=\"resolvedColorPallet().color\"\n [innerHTML]=\"html()\"\n ></div>\n `,\n styleUrl: './text-output.sass',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'm-text-output-host',\n '[class.is-design-mode]': 'isDesignMode',\n '[class.align-left]': 'resolvedAlign() === \"left\"',\n '[class.align-right]': 'resolvedAlign() === \"right\"',\n '[class.align-center]': 'resolvedAlign() === \"center\"',\n '[class.variant-lead]': 'resolvedVariant() === \"lead\"',\n '[class.variant-big]': 'resolvedVariant() === \"big\"',\n '[class.variant-bold]': 'resolvedVariant() === \"bold\"',\n '[class.variant-footer]': 'resolvedVariant() === \"footer\"',\n '[class.variant-footnote]': 'resolvedVariant() === \"footnote\"',\n '[class.variant-link]': 'resolvedVariant() === \"link\"',\n '[class.variant-link-small]': 'resolvedVariant() === \"link-small\"',\n '[class.weight-light]': 'resolvedFontWeight() === \"light\"',\n '[class.weight-normal]': 'resolvedFontWeight() === \"normal\"',\n '[class.weight-medium]': 'resolvedFontWeight() === \"medium\"',\n '[class.weight-semibold]': 'resolvedFontWeight() === \"semibold\"',\n '[class.weight-bold]': 'resolvedFontWeight() === \"bold\"',\n '[class.has-color]': '!!(color() ?? config()?.color)',\n // Only a link is reachable and announced as one. Every other variant is a\n // size, and a focus stop on plain text is a tab stop that does nothing.\n '[attr.role]': 'isLink() ? \"link\" : null',\n '[attr.tabindex]': 'isLink() ? 0 : null',\n '(click)': 'onClick()',\n '(keydown.enter)': 'onClick()',\n '[style.--m-text-output-color]': 'resolvedColorPallet().color',\n '[style.--m-text-output-color-contrast]': 'resolvedColorPallet().contrastColor',\n '[style.--m-text-output-color-opposite]': 'resolvedColorPallet().oppositeColor',\n },\n})\nexport class TextOutputComponent extends ConfigComponent<TextOutputConfig> {\n override subFolder = LAYOUT_ASSET_FOLDER.text_output;\n override config = model<Partial<TextOutputConfig>>();\n private readonly translateService = inject(TranslateService);\n\n readonly align = input<TextOutputAlign | undefined>(undefined);\n readonly variant = input<TextOutputVariant | undefined>(undefined);\n // A theme colour key (`error`, `warning`, `success`, …) or a raw CSS colour,\n // resolved the same way an Icon's or a Logo's is so a token follows the\n // active theme instead of freezing one theme's hex into a template.\n readonly color = input<string | undefined>(undefined);\n readonly fontWeight = input<TextOutputFontWeight | undefined>(undefined);\n // `label` is the text itself, so a one-off TextOutput needs no asset behind\n // it (ADR 0010). MiniMark is a single string whatever it renders to, which\n // is what lets it ride on the tag at all.\n readonly label = input<string | undefined>(undefined);\n readonly noTranslate = input<boolean | string | undefined>(undefined);\n // Values for the message's `<name>` / `<$name>` placeholders. An input and\n // deliberately not a TextOutputConfig key: an asset is resolved by name and\n // shared across every Control that names it, and these differ per render\n // (ADR 0020). The query-string form (`min_length?len=6`) still works and\n // still loses to this on a shared placeholder, that being the precedence\n // TranslateService already had. Bind a named member — an object literal in a\n // template is refused by `no-inline-config` (ADR 0010).\n readonly params = input<Record<string, string> | undefined>(undefined);\n\n readonly resolvedAlign = computed<TextOutputAlign>(\n () => this.align() ?? this.config()?.align ?? 'left'\n );\n\n protected readonly resolvedVariant = computed<TextOutputVariant | undefined>(\n () => this.variant() ?? this.config()?.variant\n );\n\n protected readonly resolvedFontWeight = computed<\n TextOutputFontWeight | undefined\n >(() => this.fontWeight() ?? this.config()?.fontWeight);\n\n // Both link roles are the same affordance, so both take the focus stop, the\n // `role=\"link\"` and the `clicked` output; only their size differs.\n protected readonly isLink = computed(() => {\n const variant = this.resolvedVariant();\n return variant === 'link' || variant === 'link-small';\n });\n\n /**\n * Fired by a `link` variant and by nothing else. A text that is not a link\n * draws no affordance and takes no focus, so a click on it is a click on\n * prose — emitting there would be a control only a mouse could find.\n *\n * Where the link goes to a route instead, the caller attaches `routerLink`\n * and binds nothing here: one click means one thing.\n */\n readonly clicked = output<void>();\n\n protected onClick(): void {\n if (this.isLink()) this.clicked.emit();\n }\n\n protected readonly resolvedColorPallet = computed(() =>\n resolvePallet(\n this.color() ?? this.config()?.color ?? this.defaultColor,\n this.themeStore.color()\n )\n );\n\n protected override resolveComponentOverrides(): Partial<TextOutputConfig> {\n const overrides: Partial<TextOutputConfig> = {};\n const align = this.align();\n if (align !== undefined) overrides.align = align;\n const label = this.label();\n if (label !== undefined) overrides.label = label;\n const noTranslate = toAttrBool(this.noTranslate());\n if (noTranslate !== undefined) overrides.noTranslate = noTranslate;\n const variant = this.variant();\n if (variant !== undefined) overrides.variant = variant;\n const color = this.color();\n if (color !== undefined) overrides.color = color;\n const fontWeight = this.fontWeight();\n if (fontWeight !== undefined) overrides.fontWeight = fontWeight;\n return overrides;\n }\n\n protected readonly resolvedLabel = computed(() => this.config()?.label);\n protected readonly shouldTranslate = computed(\n () => !this.config()?.noTranslate\n );\n protected readonly html = computed(() => {\n const label = this.resolvedLabel();\n return this.shouldTranslate()\n ? this.translateService.translateToHtml(label, this.params())\n : this.translateService.toSafeHtml(label);\n });\n}\n"],"mappings":"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"}