@magmonium/one 0.4.49 → 0.4.51
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/fesm2022/{magmonium-one-attribute-value-DnctyCKp.mjs → magmonium-one-attribute-value-CSl5Xeq1.mjs} +3 -3
- package/fesm2022/{magmonium-one-attribute-value-DnctyCKp.mjs.map → magmonium-one-attribute-value-CSl5Xeq1.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-checkbox-D3Z1FTXU.mjs → magmonium-one-base-checkbox-BqCPBI1d.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-checkbox-D3Z1FTXU.mjs.map → magmonium-one-base-checkbox-BqCPBI1d.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-dropdown-DIaimBpG.mjs → magmonium-one-base-dropdown-0qlJVp_y.mjs} +12 -12
- package/fesm2022/{magmonium-one-base-dropdown-DIaimBpG.mjs.map → magmonium-one-base-dropdown-0qlJVp_y.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-input-CZyIcKrn.mjs → magmonium-one-base-input-CsVND89n.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-input-CZyIcKrn.mjs.map → magmonium-one-base-input-CsVND89n.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-base-text-6T8KrJbz.mjs → magmonium-one-base-text-CWf7J75v.mjs} +2 -2
- package/fesm2022/{magmonium-one-base-text-6T8KrJbz.mjs.map → magmonium-one-base-text-CWf7J75v.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-button-BKGxIBhw.mjs → magmonium-one-button-CJ1Gaaw-.mjs} +7 -7
- package/fesm2022/{magmonium-one-button-BKGxIBhw.mjs.map → magmonium-one-button-CJ1Gaaw-.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-checkbox-D1W18OGo.mjs → magmonium-one-checkbox-CS83TVYG.mjs} +5 -5
- package/fesm2022/{magmonium-one-checkbox-D1W18OGo.mjs.map → magmonium-one-checkbox-CS83TVYG.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-color-utl-DklqRa3m.mjs → magmonium-one-color-utl-td5Lij8L.mjs} +2 -2
- package/fesm2022/{magmonium-one-color-utl-DklqRa3m.mjs.map → magmonium-one-color-utl-td5Lij8L.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-directives-R099YTUd.mjs → magmonium-one-directives-O1JyFBc3.mjs} +4 -4
- package/fesm2022/{magmonium-one-directives-R099YTUd.mjs.map → magmonium-one-directives-O1JyFBc3.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-group-Blvejahi.mjs → magmonium-one-group-BBaepb2P.mjs} +7 -7
- package/fesm2022/{magmonium-one-group-Blvejahi.mjs.map → magmonium-one-group-BBaepb2P.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-header-qoXWebFN.mjs → magmonium-one-header-7MmiF2rG.mjs} +17 -17
- package/fesm2022/magmonium-one-header-7MmiF2rG.mjs.map +1 -0
- package/fesm2022/{magmonium-one-icon-Ce44a1mo.mjs → magmonium-one-icon-DR7LgBc3.mjs} +4 -4
- package/fesm2022/{magmonium-one-icon-Ce44a1mo.mjs.map → magmonium-one-icon-DR7LgBc3.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-image-editor-DKiscgQU.mjs → magmonium-one-image-editor-CkPeheGY.mjs} +4 -4
- package/fesm2022/{magmonium-one-image-editor-DKiscgQU.mjs.map → magmonium-one-image-editor-CkPeheGY.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-label-lYMBMB7p.mjs → magmonium-one-label-B2Rtuiyg.mjs} +2 -2
- package/fesm2022/{magmonium-one-label-lYMBMB7p.mjs.map → magmonium-one-label-B2Rtuiyg.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-m-ref-DVe-WAYR.mjs → magmonium-one-m-ref-X9KgVe86.mjs} +2 -2
- package/fesm2022/{magmonium-one-m-ref-DVe-WAYR.mjs.map → magmonium-one-m-ref-X9KgVe86.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-menu-DcqfcU1p.mjs → magmonium-one-menu-B8H0Grmb.mjs} +8 -8
- package/fesm2022/{magmonium-one-menu-DcqfcU1p.mjs.map → magmonium-one-menu-B8H0Grmb.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-multi-range-m86SzSZO.mjs → magmonium-one-multi-range-OzTdXSHR.mjs} +3 -3
- package/fesm2022/{magmonium-one-multi-range-m86SzSZO.mjs.map → magmonium-one-multi-range-OzTdXSHR.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-options-asset-CIKSNq4B.mjs → magmonium-one-options-asset-BlrhLckD.mjs} +2 -2
- package/fesm2022/{magmonium-one-options-asset-CIKSNq4B.mjs.map → magmonium-one-options-asset-BlrhLckD.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-otp-BrR0mijm.mjs → magmonium-one-otp-CkQohg0H.mjs} +5 -5
- package/fesm2022/{magmonium-one-otp-BrR0mijm.mjs.map → magmonium-one-otp-CkQohg0H.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-password-CKIAFzs9.mjs → magmonium-one-password-CLhWaUXK.mjs} +6 -6
- package/fesm2022/{magmonium-one-password-CKIAFzs9.mjs.map → magmonium-one-password-CLhWaUXK.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-radio-6oN9j_F6.mjs → magmonium-one-radio-dZL0E4k_.mjs} +3 -3
- package/fesm2022/{magmonium-one-radio-6oN9j_F6.mjs.map → magmonium-one-radio-dZL0E4k_.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-range-BmimLpG6.mjs → magmonium-one-range-DLu5PhUN.mjs} +4 -4
- package/fesm2022/{magmonium-one-range-BmimLpG6.mjs.map → magmonium-one-range-DLu5PhUN.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-selector-CLSwVQCJ.mjs → magmonium-one-selector-GGFfBf2O.mjs} +4 -4
- package/fesm2022/{magmonium-one-selector-CLSwVQCJ.mjs.map → magmonium-one-selector-GGFfBf2O.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-size-converter-DFIowQHO.mjs → magmonium-one-size-converter-BalJd7VH.mjs} +6 -2
- package/fesm2022/magmonium-one-size-converter-BalJd7VH.mjs.map +1 -0
- package/fesm2022/{magmonium-one-text-evdqwPEz.mjs → magmonium-one-text-BPThK6-y.mjs} +6 -6
- package/fesm2022/{magmonium-one-text-evdqwPEz.mjs.map → magmonium-one-text-BPThK6-y.mjs.map} +1 -1
- package/fesm2022/{magmonium-one-text-output-BnS5Skz-.mjs → magmonium-one-text-output-Cg2dT_U_.mjs} +4 -4
- package/fesm2022/{magmonium-one-text-output-BnS5Skz-.mjs.map → magmonium-one-text-output-Cg2dT_U_.mjs.map} +1 -1
- package/fesm2022/magmonium-one-theme-CYT4pn5X.mjs +1 -0
- package/fesm2022/{magmonium-one-toggle-BIoiSggh.mjs → magmonium-one-toggle-DRG14zhR.mjs} +3 -3
- package/fesm2022/{magmonium-one-toggle-BIoiSggh.mjs.map → magmonium-one-toggle-DRG14zhR.mjs.map} +1 -1
- package/fesm2022/magmonium-one.mjs +220 -89
- package/fesm2022/magmonium-one.mjs.map +1 -1
- package/package.json +1 -1
- package/types/magmonium-one.d.ts +102 -41
- package/fesm2022/magmonium-one-header-qoXWebFN.mjs.map +0 -1
- package/fesm2022/magmonium-one-size-converter-DFIowQHO.mjs.map +0 -1
- package/fesm2022/magmonium-one-theme-DPBeYB-G.mjs +0 -1
package/package.json
CHANGED
package/types/magmonium-one.d.ts
CHANGED
|
@@ -1349,6 +1349,13 @@ export declare function getUniqueId(): string;
|
|
|
1349
1349
|
* Used for wallet backgrounds and other items where visual consistency is needed.
|
|
1350
1350
|
*/
|
|
1351
1351
|
export declare function stringToColor(str: string): string;
|
|
1352
|
+
export declare const escapeHtml: (text: string) => string;
|
|
1353
|
+
/**
|
|
1354
|
+
* Render MiniMark's inline rules only — bold, italic, strike, links — for text
|
|
1355
|
+
* that already sits inside a block of its own, such as a heading. No `<p>`, no
|
|
1356
|
+
* block syntax: a `#` or `-` stays literal, and line breaks fold into spaces.
|
|
1357
|
+
*/
|
|
1358
|
+
export declare function miniMarkInlineToHtml(source?: string): string;
|
|
1352
1359
|
/**
|
|
1353
1360
|
* Render MiniMark source text to an HTML string.
|
|
1354
1361
|
*/
|
|
@@ -4389,6 +4396,16 @@ export declare class SectionSearchComponent extends BaseTextInputComponent<Searc
|
|
|
4389
4396
|
type BadgeVariant = 'saas' | 'status' | 'minimal' | 'default' | 'primary' | 'danger' | 'chip';
|
|
4390
4397
|
type BadgePosition = 'static' | 'absolute' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
4391
4398
|
type BadgeAnimation = 'pulse' | 'shimmer' | 'none';
|
|
4399
|
+
/**
|
|
4400
|
+
* A count worn as a Badge — the figure, and how to draw it. Narrower than
|
|
4401
|
+
* [BadgeVariant] on purpose: `status` and `minimal` are shapes rather than
|
|
4402
|
+
* pills and have no room for a number, and the remaining three are exactly what
|
|
4403
|
+
* a Button's own `badge` spells.
|
|
4404
|
+
*/
|
|
4405
|
+
type BadgeCount = {
|
|
4406
|
+
count: number;
|
|
4407
|
+
variant?: 'default' | 'primary' | 'danger';
|
|
4408
|
+
};
|
|
4392
4409
|
type Badge = Config & {
|
|
4393
4410
|
variant?: BadgeVariant;
|
|
4394
4411
|
icon?: string;
|
|
@@ -5636,6 +5653,29 @@ type Header = Config & {
|
|
|
5636
5653
|
icon?: string;
|
|
5637
5654
|
level?: HeaderLevel;
|
|
5638
5655
|
};
|
|
5656
|
+
export declare class BadgeComponent extends ConfigComponent<Badge> {
|
|
5657
|
+
readonly subFolder = "badges";
|
|
5658
|
+
config: import("@angular/core").ModelSignal<Partial<Badge> | undefined>;
|
|
5659
|
+
protected readonly classes: import("@angular/core").Signal<string>;
|
|
5660
|
+
protected readonly iconConfig: import("@angular/core").Signal<{
|
|
5661
|
+
name: string;
|
|
5662
|
+
color: string;
|
|
5663
|
+
} | undefined>;
|
|
5664
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BadgeComponent, never>;
|
|
5665
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "m-badge", never, {
|
|
5666
|
+
"config": {
|
|
5667
|
+
"alias": "config";
|
|
5668
|
+
"required": false;
|
|
5669
|
+
"isSignal": true;
|
|
5670
|
+
};
|
|
5671
|
+
}, {
|
|
5672
|
+
"config": "configChange";
|
|
5673
|
+
}, never, ["*"], true, never>;
|
|
5674
|
+
}
|
|
5675
|
+
declare const getBadgeClasses: (config: Badge | undefined) => string;
|
|
5676
|
+
export declare const formatBadgeCount: (count: number | undefined, maxCount?: number) => string;
|
|
5677
|
+
export declare const shouldShowBadge: (count: number | undefined) => boolean;
|
|
5678
|
+
declare const formatCount: (count: number | undefined, maxCount?: number) => string;
|
|
5639
5679
|
export declare class SectionHeaderComponent {
|
|
5640
5680
|
readonly sticky: import("@angular/core").InputSignal<boolean>;
|
|
5641
5681
|
readonly level: import("@angular/core").InputSignal<HeaderLevel>;
|
|
@@ -5652,6 +5692,7 @@ export declare class SectionHeaderComponent {
|
|
|
5652
5692
|
readonly extraData: import("@angular/core").InputSignal<unknown>;
|
|
5653
5693
|
readonly align: import("@angular/core").InputSignal<"center" | "left" | "right" | undefined>;
|
|
5654
5694
|
readonly alignment: import("@angular/core").Signal<"center" | "left" | "right">;
|
|
5695
|
+
readonly badge: import("@angular/core").InputSignal<BadgeCount | undefined>;
|
|
5655
5696
|
readonly showBack: import("@angular/core").InputSignal<boolean>;
|
|
5656
5697
|
readonly actionButton: import("@angular/core").InputSignal<string | undefined>;
|
|
5657
5698
|
readonly actionLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
@@ -5673,6 +5714,8 @@ export declare class SectionHeaderComponent {
|
|
|
5673
5714
|
protected readonly isSticky: import("@angular/core").Signal<boolean>;
|
|
5674
5715
|
protected readonly hasMenu: import("@angular/core").Signal<boolean>;
|
|
5675
5716
|
protected readonly actionConfig: import("@angular/core").Signal<Button | undefined>;
|
|
5717
|
+
protected readonly badgeConfig: import("@angular/core").Signal<Badge | undefined>;
|
|
5718
|
+
protected readonly badgeText: import("@angular/core").Signal<string>;
|
|
5676
5719
|
protected readonly accordion: import("@angular/core").Signal<import("@magmonium/one").SectionAccordionDirective | null>;
|
|
5677
5720
|
protected readonly toggleIconName: import("@angular/core").Signal<string | undefined>;
|
|
5678
5721
|
protected readonly toggleRotates: import("@angular/core").Signal<boolean>;
|
|
@@ -5750,6 +5793,11 @@ export declare class SectionHeaderComponent {
|
|
|
5750
5793
|
"required": false;
|
|
5751
5794
|
"isSignal": true;
|
|
5752
5795
|
};
|
|
5796
|
+
"badge": {
|
|
5797
|
+
"alias": "badge";
|
|
5798
|
+
"required": false;
|
|
5799
|
+
"isSignal": true;
|
|
5800
|
+
};
|
|
5753
5801
|
"showBack": {
|
|
5754
5802
|
"alias": "showBack";
|
|
5755
5803
|
"required": false;
|
|
@@ -9624,29 +9672,6 @@ export declare class ComponentStepperComponent {
|
|
|
9624
9672
|
"stepChange": "stepChange";
|
|
9625
9673
|
}, never, never, true, never>;
|
|
9626
9674
|
}
|
|
9627
|
-
export declare class BadgeComponent extends ConfigComponent<Badge> {
|
|
9628
|
-
readonly subFolder = "badges";
|
|
9629
|
-
config: import("@angular/core").ModelSignal<Partial<Badge> | undefined>;
|
|
9630
|
-
protected readonly classes: import("@angular/core").Signal<string>;
|
|
9631
|
-
protected readonly iconConfig: import("@angular/core").Signal<{
|
|
9632
|
-
name: string;
|
|
9633
|
-
color: string;
|
|
9634
|
-
} | undefined>;
|
|
9635
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BadgeComponent, never>;
|
|
9636
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BadgeComponent, "m-badge", never, {
|
|
9637
|
-
"config": {
|
|
9638
|
-
"alias": "config";
|
|
9639
|
-
"required": false;
|
|
9640
|
-
"isSignal": true;
|
|
9641
|
-
};
|
|
9642
|
-
}, {
|
|
9643
|
-
"config": "configChange";
|
|
9644
|
-
}, never, ["*"], true, never>;
|
|
9645
|
-
}
|
|
9646
|
-
declare const getBadgeClasses: (config: Badge | undefined) => string;
|
|
9647
|
-
export declare const formatBadgeCount: (count: number | undefined, maxCount?: number) => string;
|
|
9648
|
-
export declare const shouldShowBadge: (count: number | undefined) => boolean;
|
|
9649
|
-
declare const formatCount: (count: number | undefined, maxCount?: number) => string;
|
|
9650
9675
|
type CardVariant = 'flat' | 'outlined' | 'glass' | 'beautiful' | 'professional' | 'subtle' | 'no-border' | 'dashboard' | 'roundedBorder' | 'highlighted' | 'line';
|
|
9651
9676
|
type CardSpacing = 'compact' | 'spacious';
|
|
9652
9677
|
type CardPadding = 'none' | 'all' | 'x' | 'y' | 'left' | 'right' | 'up' | 'down';
|
|
@@ -9817,7 +9842,7 @@ export declare class HeaderComponent {
|
|
|
9817
9842
|
private readonly sizeContext;
|
|
9818
9843
|
protected readonly actionSize: import("@angular/core").Signal<string>;
|
|
9819
9844
|
protected readonly actionConfig: import("@angular/core").Signal<Button | undefined>;
|
|
9820
|
-
protected readonly
|
|
9845
|
+
protected readonly html: import("@angular/core").Signal<string>;
|
|
9821
9846
|
static ɵfac: i0.ɵɵFactoryDeclaration<HeaderComponent, never>;
|
|
9822
9847
|
static ɵcmp: i0.ɵɵComponentDeclaration<HeaderComponent, "m-header", never, {
|
|
9823
9848
|
"level": {
|
|
@@ -13284,6 +13309,18 @@ export declare class ConfirmComponent {
|
|
|
13284
13309
|
}, {}, never, never, true, never>;
|
|
13285
13310
|
}
|
|
13286
13311
|
export declare function provideModalComponents(): EnvironmentProviders;
|
|
13312
|
+
/**
|
|
13313
|
+
* A count drawn beside an entry's label, as a Badge — the figure a Nav puts on
|
|
13314
|
+
* itself where something behind it wants counting (GLOSSARY.md NavCountSource).
|
|
13315
|
+
*
|
|
13316
|
+
* The same two keys a Button's `badge` spells, and `variant` is the caller's for
|
|
13317
|
+
* the same reason: what a count *means* — a tally, a warning — is a fact about
|
|
13318
|
+
* the count and not about the badge that draws it.
|
|
13319
|
+
*/
|
|
13320
|
+
export type NavBadge = {
|
|
13321
|
+
count: number;
|
|
13322
|
+
variant?: 'default' | 'primary' | 'danger';
|
|
13323
|
+
};
|
|
13287
13324
|
export type BreadcrumbTrail = {
|
|
13288
13325
|
label: string;
|
|
13289
13326
|
icon?: string;
|
|
@@ -13321,6 +13358,12 @@ export type BreadcrumbTrail = {
|
|
|
13321
13358
|
color: string | null;
|
|
13322
13359
|
name: string;
|
|
13323
13360
|
};
|
|
13361
|
+
/**
|
|
13362
|
+
* The count the Nav this entry names wears, where one is registered for it —
|
|
13363
|
+
* stamped on the header, the trail and the menu rows alike, so one
|
|
13364
|
+
* registration words a Nav the same wherever it is drawn.
|
|
13365
|
+
*/
|
|
13366
|
+
badge?: NavBadge;
|
|
13324
13367
|
};
|
|
13325
13368
|
export type BreadCrumb = {
|
|
13326
13369
|
trail?: BreadcrumbTrail[];
|
|
@@ -13572,7 +13615,26 @@ interface NavVisibilityConfig {
|
|
|
13572
13615
|
*/
|
|
13573
13616
|
navVisibleLoad?: (params: Record<string, string>) => void | Promise<void>;
|
|
13574
13617
|
}
|
|
13575
|
-
|
|
13618
|
+
/**
|
|
13619
|
+
* What a Nav registers to answer *how much is behind it*, drawn as a Badge
|
|
13620
|
+
* beside its label (GLOSSARY.md NavCountSource, ADR 0043). Registered under
|
|
13621
|
+
* that Nav's own NavId beside whatever else it registers — the configs are not
|
|
13622
|
+
* exclusive, which is why every guard here tests for its own key rather than
|
|
13623
|
+
* for the absence of another's.
|
|
13624
|
+
*/
|
|
13625
|
+
interface NavCountConfig {
|
|
13626
|
+
/**
|
|
13627
|
+
* The badge to draw beside the Nav's label, or `undefined` for none — a Nav
|
|
13628
|
+
* with nothing behind it wears no badge rather than one saying nothing.
|
|
13629
|
+
*
|
|
13630
|
+
* A signal rather than a function of the panel's parameters, unlike
|
|
13631
|
+
* `navInstance`: a count is a fact about the Nav itself, and it is worn in
|
|
13632
|
+
* panels this Nav is not the owner of — root's own row for it — where the
|
|
13633
|
+
* parameters the panel is drawn for are somebody else's.
|
|
13634
|
+
*/
|
|
13635
|
+
navCount: Signal<NavBadge | undefined>;
|
|
13636
|
+
}
|
|
13637
|
+
type NavWidgetEntry = Type<unknown> | NavWidgetConfig | NavMenuConfig | NavRowsConfig | NavInstanceConfig | NavCountConfig | NavVisibilityConfig;
|
|
13576
13638
|
/**
|
|
13577
13639
|
* Where an app registers its search answer (ADR 0042): the element the host's
|
|
13578
13640
|
* search panel mounts in place of its groups, with `query` bound, while the
|
|
@@ -13605,6 +13667,7 @@ type NavWidgetMap = Partial<Record<NavIdKey, NavWidgetEntry>> & {
|
|
|
13605
13667
|
export declare function isNavMenuConfig(entry: NavWidgetEntry): entry is NavMenuConfig;
|
|
13606
13668
|
export declare function isNavRowsConfig(entry: NavWidgetEntry): entry is NavRowsConfig;
|
|
13607
13669
|
export declare function isNavInstanceConfig(entry: NavWidgetEntry): entry is NavInstanceConfig;
|
|
13670
|
+
export declare function isNavCountConfig(entry: NavWidgetEntry): entry is NavCountConfig;
|
|
13608
13671
|
export declare function isNavVisibilityConfig(entry: NavWidgetEntry): entry is NavVisibilityConfig;
|
|
13609
13672
|
/**
|
|
13610
13673
|
* Multi-provided, and resolved **last-wins**: the library provides its own
|
|
@@ -13655,7 +13718,6 @@ export declare class FrameComponent {
|
|
|
13655
13718
|
appNavId: string;
|
|
13656
13719
|
slot: "main" | "side";
|
|
13657
13720
|
}>;
|
|
13658
|
-
keepPanelOnPathChange: import("@angular/core").Signal<boolean>;
|
|
13659
13721
|
panelPushed: import("@angular/core").Signal<boolean>;
|
|
13660
13722
|
navScrolledDown: import("@angular/core").Signal<boolean>;
|
|
13661
13723
|
remoteWidgets: import("@angular/core").Signal<Record<string, NavWidgetRegistryEntry>>;
|
|
@@ -13685,6 +13747,7 @@ export declare class FrameComponent {
|
|
|
13685
13747
|
hasMurl: import("@angular/core").Signal<boolean>;
|
|
13686
13748
|
isNavOpened: import("@angular/core").Signal<boolean>;
|
|
13687
13749
|
isMNavOpened: import("@angular/core").Signal<boolean>;
|
|
13750
|
+
isSideMenuOpen: import("@angular/core").Signal<boolean>;
|
|
13688
13751
|
resolvedWidget: import("@angular/core").Signal<(import("@magmonium/one").NavWidgetConfig & {
|
|
13689
13752
|
ceSelector?: string;
|
|
13690
13753
|
}) | null>;
|
|
@@ -13787,7 +13850,6 @@ export declare class FrameComponent {
|
|
|
13787
13850
|
appNavId: string;
|
|
13788
13851
|
slot: "main" | "side";
|
|
13789
13852
|
} | undefined;
|
|
13790
|
-
keepPanelOnPathChange: boolean;
|
|
13791
13853
|
panelPushed: boolean;
|
|
13792
13854
|
navScrolledDown: boolean;
|
|
13793
13855
|
remoteWidgets: Record<string, NavWidgetRegistryEntry>;
|
|
@@ -13974,7 +14036,10 @@ interface NavState {
|
|
|
13974
14036
|
mounts: Record<string, RemoteMount>;
|
|
13975
14037
|
/** Auxiliary segment names in the URL — which side apps are on screen (ADR 0038). */
|
|
13976
14038
|
outlets: string[];
|
|
13977
|
-
/**
|
|
14039
|
+
/**
|
|
14040
|
+
* Panel held open without a Murl: by the menu icon, or by a navigation made
|
|
14041
|
+
* while it was up. Only the menu toggle clears it — see ADR 0013.
|
|
14042
|
+
*/
|
|
13978
14043
|
navOpenedByUser: boolean;
|
|
13979
14044
|
/**
|
|
13980
14045
|
* The Nav a Browse moved the panel onto — up, down or sideways — while the
|
|
@@ -13997,12 +14062,6 @@ interface NavState {
|
|
|
13997
14062
|
appNavId: string;
|
|
13998
14063
|
slot: AppSlot;
|
|
13999
14064
|
} | undefined;
|
|
14000
|
-
/**
|
|
14001
|
-
* Next path settle should keep `navOpenedByUser`. Used by the AppLogo when
|
|
14002
|
-
* the panel is already open — navigate home but leave the menu showing
|
|
14003
|
-
* root's children.
|
|
14004
|
-
*/
|
|
14005
|
-
keepPanelOnPathChange: boolean;
|
|
14006
14065
|
/** Whether this store pushed the history entry the open panel sits on. */
|
|
14007
14066
|
panelPushed: boolean;
|
|
14008
14067
|
navScrolledDown: boolean;
|
|
@@ -14078,7 +14137,6 @@ export declare const NavStore: import("@angular/core").Type<{
|
|
|
14078
14137
|
appNavId: string;
|
|
14079
14138
|
slot: AppSlot;
|
|
14080
14139
|
}>;
|
|
14081
|
-
keepPanelOnPathChange: Signal<boolean>;
|
|
14082
14140
|
panelPushed: Signal<boolean>;
|
|
14083
14141
|
navScrolledDown: Signal<boolean>;
|
|
14084
14142
|
remoteWidgets: Signal<Record<string, NavWidgetRegistryEntry>>;
|
|
@@ -14108,6 +14166,7 @@ export declare const NavStore: import("@angular/core").Type<{
|
|
|
14108
14166
|
hasMurl: Signal<boolean>;
|
|
14109
14167
|
isNavOpened: Signal<boolean>;
|
|
14110
14168
|
isMNavOpened: Signal<boolean>;
|
|
14169
|
+
isSideMenuOpen: Signal<boolean>;
|
|
14111
14170
|
resolvedWidget: Signal<(NavWidgetConfig & {
|
|
14112
14171
|
ceSelector?: string;
|
|
14113
14172
|
}) | null>;
|
|
@@ -14210,7 +14269,6 @@ export declare const NavStore: import("@angular/core").Type<{
|
|
|
14210
14269
|
appNavId: string;
|
|
14211
14270
|
slot: AppSlot;
|
|
14212
14271
|
} | undefined;
|
|
14213
|
-
keepPanelOnPathChange: boolean;
|
|
14214
14272
|
panelPushed: boolean;
|
|
14215
14273
|
navScrolledDown: boolean;
|
|
14216
14274
|
remoteWidgets: Record<string, NavWidgetRegistryEntry>;
|
|
@@ -14570,7 +14628,6 @@ export declare class NavDetailsComponent {
|
|
|
14570
14628
|
appNavId: string;
|
|
14571
14629
|
slot: "main" | "side";
|
|
14572
14630
|
}>;
|
|
14573
|
-
keepPanelOnPathChange: import("@angular/core").Signal<boolean>;
|
|
14574
14631
|
panelPushed: import("@angular/core").Signal<boolean>;
|
|
14575
14632
|
navScrolledDown: import("@angular/core").Signal<boolean>;
|
|
14576
14633
|
remoteWidgets: import("@angular/core").Signal<Record<string, NavWidgetRegistryEntry>>;
|
|
@@ -14600,6 +14657,7 @@ export declare class NavDetailsComponent {
|
|
|
14600
14657
|
hasMurl: import("@angular/core").Signal<boolean>;
|
|
14601
14658
|
isNavOpened: import("@angular/core").Signal<boolean>;
|
|
14602
14659
|
isMNavOpened: import("@angular/core").Signal<boolean>;
|
|
14660
|
+
isSideMenuOpen: import("@angular/core").Signal<boolean>;
|
|
14603
14661
|
resolvedWidget: import("@angular/core").Signal<(import("@magmonium/one").NavWidgetConfig & {
|
|
14604
14662
|
ceSelector?: string;
|
|
14605
14663
|
}) | null>;
|
|
@@ -14702,7 +14760,6 @@ export declare class NavDetailsComponent {
|
|
|
14702
14760
|
appNavId: string;
|
|
14703
14761
|
slot: "main" | "side";
|
|
14704
14762
|
} | undefined;
|
|
14705
|
-
keepPanelOnPathChange: boolean;
|
|
14706
14763
|
panelPushed: boolean;
|
|
14707
14764
|
navScrolledDown: boolean;
|
|
14708
14765
|
remoteWidgets: Record<string, NavWidgetRegistryEntry>;
|
|
@@ -14783,6 +14840,11 @@ export declare class NavMenuComponent {
|
|
|
14783
14840
|
navList: import("@angular/core").Signal<BreadcrumbTrail[] | undefined>;
|
|
14784
14841
|
/** Looks inside the row's Nav without following it (GLOSSARY.md Browse). */
|
|
14785
14842
|
browse: (item: BreadcrumbTrail) => void;
|
|
14843
|
+
/**
|
|
14844
|
+
* The `99+` ceiling is the badge's own, the same one a Button reads: a row and
|
|
14845
|
+
* an icon cannot disagree about where a count stops being a number.
|
|
14846
|
+
*/
|
|
14847
|
+
protected readonly formatBadgeCount: (count: number, max?: number) => string;
|
|
14786
14848
|
rows: import("@angular/core").Signal<ListItem[]>;
|
|
14787
14849
|
static ɵfac: i0.ɵɵFactoryDeclaration<NavMenuComponent, never>;
|
|
14788
14850
|
static ɵcmp: i0.ɵɵComponentDeclaration<NavMenuComponent, "m-nav-menu", never, {
|
|
@@ -14831,7 +14893,6 @@ export declare class NavHeaderComponent {
|
|
|
14831
14893
|
appNavId: string;
|
|
14832
14894
|
slot: "main" | "side";
|
|
14833
14895
|
}>;
|
|
14834
|
-
keepPanelOnPathChange: import("@angular/core").Signal<boolean>;
|
|
14835
14896
|
panelPushed: import("@angular/core").Signal<boolean>;
|
|
14836
14897
|
navScrolledDown: import("@angular/core").Signal<boolean>;
|
|
14837
14898
|
remoteWidgets: import("@angular/core").Signal<Record<string, NavWidgetRegistryEntry>>;
|
|
@@ -14861,6 +14922,7 @@ export declare class NavHeaderComponent {
|
|
|
14861
14922
|
hasMurl: import("@angular/core").Signal<boolean>;
|
|
14862
14923
|
isNavOpened: import("@angular/core").Signal<boolean>;
|
|
14863
14924
|
isMNavOpened: import("@angular/core").Signal<boolean>;
|
|
14925
|
+
isSideMenuOpen: import("@angular/core").Signal<boolean>;
|
|
14864
14926
|
resolvedWidget: import("@angular/core").Signal<(import("@magmonium/one").NavWidgetConfig & {
|
|
14865
14927
|
ceSelector?: string;
|
|
14866
14928
|
}) | null>;
|
|
@@ -14963,7 +15025,6 @@ export declare class NavHeaderComponent {
|
|
|
14963
15025
|
appNavId: string;
|
|
14964
15026
|
slot: "main" | "side";
|
|
14965
15027
|
} | undefined;
|
|
14966
|
-
keepPanelOnPathChange: boolean;
|
|
14967
15028
|
panelPushed: boolean;
|
|
14968
15029
|
navScrolledDown: boolean;
|
|
14969
15030
|
remoteWidgets: Record<string, NavWidgetRegistryEntry>;
|
|
@@ -16979,4 +17040,4 @@ export declare const toggleUid: (audience: Audience, uid: string) => Audience;
|
|
|
16979
17040
|
export declare const toggleGroup: (audience: Audience, groupId: string) => Audience;
|
|
16980
17041
|
/** How many Users and Groups an Audience names. */
|
|
16981
17042
|
export declare const pickCount: (audience: Audience) => number;
|
|
16982
|
-
export type { Accordion, AccordionGroup, AccordionVariant, AppCardData, AppCardInputs, AppCardVariant, AppLogoTone, AppLogoVariant, AppManifest, AppTileData, AssetOption, Audience, AudienceLevel, AudienceMember, AudiencePicker, AuthResult, Badge, 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, Icon, KeyValueVariant, LabelSegment, ListConfig, ListContext, ListItem, ListOrientation, ListVariant, MenuItem, MoneySystem, NavInstanceConfig, NavMenuConfig, NavRowsConfig, NavVisibilityConfig, NavVisibleAnswer, NavWidgetConfig, NavWidgetEntry, NavWidgetMap, OverlayWidgetLoader, OverlayWidgetMap, PageChangeEvent, Pagination, PaginationWindow, ResolvedUserTab, RowDropEvent, SearchChangeEvent, SectionAccordion, SectionAccordionGroup, SectionAccordionGroupContext, SectionAccordionRef, SectionButtonGroupConfig, SectionFilterGroupConfig, SectionHero, SectionHeroVariant, SectionTableAlign, SectionTableColumn, SectionTableConfig, SectionTableDataType, SectionTableSort, SectionTableSortDirection, 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 };
|
|
17043
|
+
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, 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, SectionFilterGroupConfig, SectionHero, SectionHeroVariant, SectionTableAlign, SectionTableColumn, SectionTableConfig, SectionTableDataType, SectionTableSort, SectionTableSortDirection, 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 };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"magmonium-one-header-qoXWebFN.mjs","names":[],"sources":["../../../../libs/one/src/lib/shared/ui/header/ui/header.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { TranslateService } from '../../../services/translate';\nimport { HeaderLevel } from '../type/header';\nimport { ButtonComponent } from '../../button/ui/button';\nimport { IconComponent } from '../../icon';\nimport { Button } from '../../button/type/button';\nimport { SIZE_CONTEXT } from '../../../config/size-context.token';\nimport { resolveSize } from '../../../functions/size/size-converter';\n\n@Component({\n selector: 'm-header',\n imports: [ButtonComponent, IconComponent],\n template: `\n @switch (level()) {\n @case (1) {\n <h1 class=\"header__heading\">\n @if (icon(); as iconName) {\n <m-icon class=\"header__icon\" [name]=\"iconName\" />\n }\n <span>{{ text() }}</span>\n <ng-content />\n @if (actionConfig(); as action) {\n <m-button class=\"header__action\" [config]=\"action\" [style.--m-button-size]=\"actionSize()\" (clicked)=\"actionClick.emit()\" />\n }\n </h1>\n }\n @case (2) {\n <h2 class=\"header__heading\">\n @if (icon(); as iconName) {\n <m-icon class=\"header__icon\" [name]=\"iconName\" />\n }\n <span>{{ text() }}</span>\n <ng-content />\n @if (actionConfig(); as action) {\n <m-button class=\"header__action\" [config]=\"action\" [style.--m-button-size]=\"actionSize()\" (clicked)=\"actionClick.emit()\" />\n }\n </h2>\n }\n @case (3) {\n <h3 class=\"header__heading\">\n @if (icon(); as iconName) {\n <m-icon class=\"header__icon\" [name]=\"iconName\" />\n }\n <span>{{ text() }}</span>\n <ng-content />\n @if (actionConfig(); as action) {\n <m-button class=\"header__action\" [config]=\"action\" [style.--m-button-size]=\"actionSize()\" (clicked)=\"actionClick.emit()\" />\n }\n </h3>\n }\n @case (4) {\n <h4 class=\"header__heading\">\n @if (icon(); as iconName) {\n <m-icon class=\"header__icon\" [name]=\"iconName\" />\n }\n <span>{{ text() }}</span>\n <ng-content />\n @if (actionConfig(); as action) {\n <m-button class=\"header__action\" [config]=\"action\" [style.--m-button-size]=\"actionSize()\" (clicked)=\"actionClick.emit()\" />\n }\n </h4>\n }\n @case (5) {\n <h5 class=\"header__heading\">\n @if (icon(); as iconName) {\n <m-icon class=\"header__icon\" [name]=\"iconName\" />\n }\n <span>{{ text() }}</span>\n <ng-content />\n @if (actionConfig(); as action) {\n <m-button class=\"header__action\" [config]=\"action\" [style.--m-button-size]=\"actionSize()\" (clicked)=\"actionClick.emit()\" />\n }\n </h5>\n }\n @case (6) {\n <h6 class=\"header__heading\">\n @if (icon(); as iconName) {\n <m-icon class=\"header__icon\" [name]=\"iconName\" />\n }\n <span>{{ text() }}</span>\n <ng-content />\n @if (actionConfig(); as action) {\n <m-button class=\"header__action\" [config]=\"action\" [style.--m-button-size]=\"actionSize()\" (clicked)=\"actionClick.emit()\" />\n }\n </h6>\n }\n }\n `,\n styleUrl: './header.sass',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderComponent {\n readonly level = input<HeaderLevel>(3);\n readonly label = input<string | undefined>();\n // Drawn inside the heading rather than beside it. A glyph placed as the\n // heading's sibling has no line box of its own to centre against — it ends\n // up centred on whatever column it sits next to, which is how a Canvas\n // header's icon came to line up with the label slot's drop rect instead of\n // with the label. Inside, the two share one line box at every level.\n readonly icon = input<string | undefined>();\n readonly actionButton = input<string | undefined>();\n // The action Button's accessible name. It renders icon-only, so the label is\n // the only thing a screen reader has to go on — without it the button reads\n // as nothing at all.\n readonly actionLabel = input<string | undefined>();\n // The label is authored text rather than a translation key. Needed for text\n // carrying angle brackets above all: `translate` reads `<...>` as link\n // markup, so a heading naming a MessageVariable — `<$app>` — resolves to\n // nothing at all rather than to itself.\n readonly noTranslate = input<boolean>(false);\n // A message's [MessageVariable] values, the same record `m-text-output`\n // takes: a heading naming `<$count>` is a sentence with a datum in it, and\n // splicing that datum into the key instead would be parsed as a query\n // string (m-one-ui ADR 0066).\n readonly params = input<Record<string, string> | undefined>(undefined);\n readonly actionClick = output<void>();\n\n private readonly translateService = inject(TranslateService);\n private readonly sizeContext = inject(SIZE_CONTEXT, { optional: true });\n\n // The action Button sits inside the heading, whose font-size is the level's\n // own — 2.25rem at h1 — so `em` inheritance would scale the Button to the\n // heading rather than to the Section it belongs to. It reads the Size in\n // force instead, the way Icon does, and lands at the same size as every\n // other Button on that Section (ADR 0008).\n protected readonly actionSize = computed(() =>\n resolveSize(this.sizeContext?.size())\n );\n\n protected readonly actionConfig = computed<Button | undefined>(() => {\n const icon = this.actionButton();\n if (!icon) return undefined;\n return {\n icon,\n label: this.actionLabel(),\n iconOnly: true,\n variant: 'ghost',\n };\n });\n\n // A computed rather than the impure TranslatePipe repeated six times: one\n // lookup per label change instead of one per change-detection tick, and it\n // still repaints when the language or an in-memory translation moves.\n protected readonly text = computed(() =>\n this.noTranslate()\n ? (this.label() ?? '')\n : this.translateService.translate(this.label(), this.params())\n );\n}\n"],"mappings":"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"}
|