@magmonium/one 0.4.31 → 0.4.32

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.
Files changed (180) hide show
  1. package/assets/button_groups/nav_user_actions.json +1 -0
  2. package/assets/button_groups/notification_filter.json +2 -13
  3. package/assets/buttons/nav_user_edit_profile.json +5 -0
  4. package/assets/i18n/af.json +10 -2
  5. package/assets/i18n/am.json +10 -1
  6. package/assets/i18n/ar.json +10 -2
  7. package/assets/i18n/as.json +11 -2
  8. package/assets/i18n/az.json +11 -2
  9. package/assets/i18n/ba.json +8 -0
  10. package/assets/i18n/be.json +11 -2
  11. package/assets/i18n/bg.json +11 -2
  12. package/assets/i18n/bn.json +11 -2
  13. package/assets/i18n/br.json +7 -0
  14. package/assets/i18n/bs.json +10 -2
  15. package/assets/i18n/ca.json +10 -2
  16. package/assets/i18n/ceb.json +9 -2
  17. package/assets/i18n/cnr.json +8 -0
  18. package/assets/i18n/co.json +7 -1
  19. package/assets/i18n/cs.json +9 -2
  20. package/assets/i18n/cy.json +11 -2
  21. package/assets/i18n/da.json +7 -1
  22. package/assets/i18n/de.json +8 -2
  23. package/assets/i18n/doi.json +9 -0
  24. package/assets/i18n/el.json +10 -2
  25. package/assets/i18n/en.json +19 -4
  26. package/assets/i18n/eo.json +9 -2
  27. package/assets/i18n/es.json +9 -2
  28. package/assets/i18n/et.json +8 -2
  29. package/assets/i18n/eu.json +9 -2
  30. package/assets/i18n/fa.json +10 -2
  31. package/assets/i18n/fi.json +9 -2
  32. package/assets/i18n/fr.json +9 -2
  33. package/assets/i18n/fy.json +6 -2
  34. package/assets/i18n/ga.json +10 -2
  35. package/assets/i18n/gd.json +9 -2
  36. package/assets/i18n/gl.json +8 -1
  37. package/assets/i18n/gu.json +11 -2
  38. package/assets/i18n/ha.json +7 -1
  39. package/assets/i18n/haw.json +8 -2
  40. package/assets/i18n/he.json +8 -0
  41. package/assets/i18n/hi.json +10 -2
  42. package/assets/i18n/hmn.json +6 -2
  43. package/assets/i18n/hr.json +10 -2
  44. package/assets/i18n/hu.json +10 -2
  45. package/assets/i18n/hy.json +11 -2
  46. package/assets/i18n/id.json +10 -2
  47. package/assets/i18n/ig.json +8 -1
  48. package/assets/i18n/ilo.json +6 -0
  49. package/assets/i18n/is.json +10 -2
  50. package/assets/i18n/it.json +9 -2
  51. package/assets/i18n/iw.json +9 -1
  52. package/assets/i18n/ja.json +8 -1
  53. package/assets/i18n/jw.json +8 -2
  54. package/assets/i18n/ka.json +10 -2
  55. package/assets/i18n/kk.json +10 -2
  56. package/assets/i18n/km.json +10 -2
  57. package/assets/i18n/kn.json +11 -2
  58. package/assets/i18n/ko.json +8 -1
  59. package/assets/i18n/kok.json +9 -0
  60. package/assets/i18n/ku.json +10 -2
  61. package/assets/i18n/ky.json +9 -1
  62. package/assets/i18n/la.json +6 -1
  63. package/assets/i18n/lb.json +6 -2
  64. package/assets/i18n/lo.json +10 -2
  65. package/assets/i18n/lt.json +10 -2
  66. package/assets/i18n/lv.json +10 -2
  67. package/assets/i18n/mai.json +9 -0
  68. package/assets/i18n/mg.json +8 -2
  69. package/assets/i18n/mi.json +8 -2
  70. package/assets/i18n/mk.json +10 -2
  71. package/assets/i18n/ml.json +11 -2
  72. package/assets/i18n/mn.json +10 -2
  73. package/assets/i18n/mr.json +11 -2
  74. package/assets/i18n/ms.json +9 -2
  75. package/assets/i18n/mt.json +9 -2
  76. package/assets/i18n/my.json +10 -2
  77. package/assets/i18n/ne.json +10 -2
  78. package/assets/i18n/nl.json +6 -2
  79. package/assets/i18n/no.json +8 -2
  80. package/assets/i18n/ny.json +9 -2
  81. package/assets/i18n/or.json +10 -1
  82. package/assets/i18n/pa.json +11 -2
  83. package/assets/i18n/pl.json +8 -2
  84. package/assets/i18n/ps.json +8 -1
  85. package/assets/i18n/pt.json +9 -2
  86. package/assets/i18n/ro.json +9 -2
  87. package/assets/i18n/ru.json +9 -2
  88. package/assets/i18n/sa.json +9 -0
  89. package/assets/i18n/sat.json +9 -0
  90. package/assets/i18n/sd.json +11 -2
  91. package/assets/i18n/si.json +10 -2
  92. package/assets/i18n/sk.json +6 -1
  93. package/assets/i18n/sl.json +10 -2
  94. package/assets/i18n/sm.json +7 -1
  95. package/assets/i18n/sn.json +6 -2
  96. package/assets/i18n/so.json +8 -1
  97. package/assets/i18n/sq.json +10 -2
  98. package/assets/i18n/sr.json +10 -2
  99. package/assets/i18n/st.json +8 -2
  100. package/assets/i18n/su.json +8 -2
  101. package/assets/i18n/sv.json +8 -2
  102. package/assets/i18n/sw.json +10 -2
  103. package/assets/i18n/ta.json +11 -2
  104. package/assets/i18n/te.json +11 -2
  105. package/assets/i18n/tg.json +11 -2
  106. package/assets/i18n/th.json +10 -1
  107. package/assets/i18n/tl.json +8 -2
  108. package/assets/i18n/tr.json +10 -2
  109. package/assets/i18n/uk.json +11 -2
  110. package/assets/i18n/ur.json +11 -2
  111. package/assets/i18n/uz.json +10 -2
  112. package/assets/i18n/vi.json +10 -1
  113. package/assets/i18n/xh.json +11 -2
  114. package/assets/i18n/yi.json +10 -1
  115. package/assets/i18n/yo.json +9 -1
  116. package/assets/i18n/zh.json +9 -1
  117. package/assets/i18n/zu.json +11 -2
  118. package/assets/index.json +1 -1
  119. package/fesm2022/{magmonium-one-attribute-value-CLBOZcme.mjs → magmonium-one-attribute-value-DMI0yJpL.mjs} +3 -3
  120. package/fesm2022/{magmonium-one-attribute-value-CLBOZcme.mjs.map → magmonium-one-attribute-value-DMI0yJpL.mjs.map} +1 -1
  121. package/fesm2022/{magmonium-one-base-checkbox-D7NYJdU3.mjs → magmonium-one-base-checkbox-C9dvZ2IH.mjs} +2 -2
  122. package/fesm2022/{magmonium-one-base-checkbox-D7NYJdU3.mjs.map → magmonium-one-base-checkbox-C9dvZ2IH.mjs.map} +1 -1
  123. package/fesm2022/{magmonium-one-base-dropdown-CEDsqaPz.mjs → magmonium-one-base-dropdown-U-cWl3p9.mjs} +10 -10
  124. package/fesm2022/{magmonium-one-base-dropdown-CEDsqaPz.mjs.map → magmonium-one-base-dropdown-U-cWl3p9.mjs.map} +1 -1
  125. package/fesm2022/{magmonium-one-base-input-BOaD-WIi.mjs → magmonium-one-base-input-CLBOTOUs.mjs} +2 -2
  126. package/fesm2022/{magmonium-one-base-input-BOaD-WIi.mjs.map → magmonium-one-base-input-CLBOTOUs.mjs.map} +1 -1
  127. package/fesm2022/{magmonium-one-base-text-D6p6_vsb.mjs → magmonium-one-base-text-Zb0oLNRX.mjs} +2 -2
  128. package/fesm2022/{magmonium-one-base-text-D6p6_vsb.mjs.map → magmonium-one-base-text-Zb0oLNRX.mjs.map} +1 -1
  129. package/fesm2022/{magmonium-one-button-rVNnp6G8.mjs → magmonium-one-button-Bwzaxxn3.mjs} +7 -7
  130. package/fesm2022/{magmonium-one-button-rVNnp6G8.mjs.map → magmonium-one-button-Bwzaxxn3.mjs.map} +1 -1
  131. package/fesm2022/{magmonium-one-checkbox-rj4XHxb3.mjs → magmonium-one-checkbox-CPQ9m291.mjs} +5 -5
  132. package/fesm2022/{magmonium-one-checkbox-rj4XHxb3.mjs.map → magmonium-one-checkbox-CPQ9m291.mjs.map} +1 -1
  133. package/fesm2022/{magmonium-one-color-utl-CirPzUFk.mjs → magmonium-one-color-utl-CAbZLKB5.mjs} +2 -2
  134. package/fesm2022/{magmonium-one-color-utl-CirPzUFk.mjs.map → magmonium-one-color-utl-CAbZLKB5.mjs.map} +1 -1
  135. package/fesm2022/{magmonium-one-directives-DOBENX_K.mjs → magmonium-one-directives-BVKX77zM.mjs} +4 -4
  136. package/fesm2022/{magmonium-one-directives-DOBENX_K.mjs.map → magmonium-one-directives-BVKX77zM.mjs.map} +1 -1
  137. package/fesm2022/{magmonium-one-group-Cue4x6tD.mjs → magmonium-one-group-D4yYrVP3.mjs} +7 -7
  138. package/fesm2022/{magmonium-one-group-Cue4x6tD.mjs.map → magmonium-one-group-D4yYrVP3.mjs.map} +1 -1
  139. package/fesm2022/{magmonium-one-header-DPVnaEOV.mjs → magmonium-one-header-DmN8M1a3.mjs} +4 -4
  140. package/fesm2022/{magmonium-one-header-DPVnaEOV.mjs.map → magmonium-one-header-DmN8M1a3.mjs.map} +1 -1
  141. package/fesm2022/{magmonium-one-icon-Dso-9RMN.mjs → magmonium-one-icon-Ep14YeRY.mjs} +4 -4
  142. package/fesm2022/{magmonium-one-icon-Dso-9RMN.mjs.map → magmonium-one-icon-Ep14YeRY.mjs.map} +1 -1
  143. package/fesm2022/{magmonium-one-image-editor-C7AtzEf6.mjs → magmonium-one-image-editor-BX4eNd4u.mjs} +4 -4
  144. package/fesm2022/{magmonium-one-image-editor-C7AtzEf6.mjs.map → magmonium-one-image-editor-BX4eNd4u.mjs.map} +1 -1
  145. package/fesm2022/{magmonium-one-label-B30Q4Vut.mjs → magmonium-one-label-D2gjTbKX.mjs} +2 -2
  146. package/fesm2022/{magmonium-one-label-B30Q4Vut.mjs.map → magmonium-one-label-D2gjTbKX.mjs.map} +1 -1
  147. package/fesm2022/{magmonium-one-m-ref-Dt0DCm8X.mjs → magmonium-one-m-ref-Bq0gQbKE.mjs} +2 -2
  148. package/fesm2022/{magmonium-one-m-ref-Dt0DCm8X.mjs.map → magmonium-one-m-ref-Bq0gQbKE.mjs.map} +1 -1
  149. package/fesm2022/{magmonium-one-menu-BBOnOK4M.mjs → magmonium-one-menu-BM9f2knw.mjs} +6 -6
  150. package/fesm2022/{magmonium-one-menu-BBOnOK4M.mjs.map → magmonium-one-menu-BM9f2knw.mjs.map} +1 -1
  151. package/fesm2022/{magmonium-one-multi-range-DCOwngql.mjs → magmonium-one-multi-range-a3ZVTy7i.mjs} +3 -3
  152. package/fesm2022/{magmonium-one-multi-range-DCOwngql.mjs.map → magmonium-one-multi-range-a3ZVTy7i.mjs.map} +1 -1
  153. package/fesm2022/{magmonium-one-options-asset-D8Gg1yNl.mjs → magmonium-one-options-asset-CDEXIif6.mjs} +2 -2
  154. package/fesm2022/{magmonium-one-options-asset-D8Gg1yNl.mjs.map → magmonium-one-options-asset-CDEXIif6.mjs.map} +1 -1
  155. package/fesm2022/{magmonium-one-otp-DLF7Pq94.mjs → magmonium-one-otp-DO4oTeSK.mjs} +5 -5
  156. package/fesm2022/{magmonium-one-otp-DLF7Pq94.mjs.map → magmonium-one-otp-DO4oTeSK.mjs.map} +1 -1
  157. package/fesm2022/{magmonium-one-password-BSOU4RI0.mjs → magmonium-one-password-D3oTo41c.mjs} +6 -6
  158. package/fesm2022/{magmonium-one-password-BSOU4RI0.mjs.map → magmonium-one-password-D3oTo41c.mjs.map} +1 -1
  159. package/fesm2022/{magmonium-one-radio-CYnWLXPZ.mjs → magmonium-one-radio-CkaWESS3.mjs} +3 -3
  160. package/fesm2022/{magmonium-one-radio-CYnWLXPZ.mjs.map → magmonium-one-radio-CkaWESS3.mjs.map} +1 -1
  161. package/fesm2022/{magmonium-one-range-CmmZAr57.mjs → magmonium-one-range-D_WEKrli.mjs} +4 -4
  162. package/fesm2022/{magmonium-one-range-CmmZAr57.mjs.map → magmonium-one-range-D_WEKrli.mjs.map} +1 -1
  163. package/fesm2022/{magmonium-one-selector-DDnBYNLr.mjs → magmonium-one-selector-BowevmOd.mjs} +4 -4
  164. package/fesm2022/{magmonium-one-selector-DDnBYNLr.mjs.map → magmonium-one-selector-BowevmOd.mjs.map} +1 -1
  165. package/fesm2022/{magmonium-one-size-converter-B-UubQQ0.mjs → magmonium-one-size-converter-BfT0Aw0g.mjs} +6 -3
  166. package/fesm2022/magmonium-one-size-converter-BfT0Aw0g.mjs.map +1 -0
  167. package/fesm2022/{magmonium-one-text-FXb-RyBh.mjs → magmonium-one-text-B4xKn-EQ.mjs} +6 -6
  168. package/fesm2022/{magmonium-one-text-FXb-RyBh.mjs.map → magmonium-one-text-B4xKn-EQ.mjs.map} +1 -1
  169. package/fesm2022/{magmonium-one-text-output-D2XQWyL0.mjs → magmonium-one-text-output-CfVeqYM7.mjs} +4 -4
  170. package/fesm2022/{magmonium-one-text-output-D2XQWyL0.mjs.map → magmonium-one-text-output-CfVeqYM7.mjs.map} +1 -1
  171. package/fesm2022/magmonium-one-theme-Xgsx8bJs.mjs +1 -0
  172. package/fesm2022/{magmonium-one-toggle-C0eTrtkt.mjs → magmonium-one-toggle-D2XEbN-b.mjs} +3 -3
  173. package/fesm2022/{magmonium-one-toggle-C0eTrtkt.mjs.map → magmonium-one-toggle-D2XEbN-b.mjs.map} +1 -1
  174. package/fesm2022/magmonium-one.mjs +329 -310
  175. package/fesm2022/magmonium-one.mjs.map +1 -1
  176. package/package.json +1 -1
  177. package/types/magmonium-one.d.ts +129 -38
  178. package/assets/menu/user_header.json +0 -27
  179. package/fesm2022/magmonium-one-size-converter-B-UubQQ0.mjs.map +0 -1
  180. package/fesm2022/magmonium-one-theme-a7GlFbzE.mjs +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmonium/one",
3
- "version": "0.4.31",
3
+ "version": "0.4.32",
4
4
  "description": "Magmonium One — Angular design-system primitives for mm Apps",
5
5
  "author": "magmonium",
6
6
  "license": "MIT",
@@ -867,7 +867,7 @@ export interface NavStoreRef {
867
867
  isNavActive?: (navId: string) => boolean;
868
868
  /** A mounted Remote announcing itself, and leaving (ADR 0036). */
869
869
  registerMount?: (mount: RemoteMount) => void;
870
- unregisterMount?: (name: string) => void;
870
+ unregisterMount?: (name: string, navigate?: RemoteMount['navigate']) => void;
871
871
  /**
872
872
  * Where a mount's own Router stands, reported on each move; `undefined`
873
873
  * forgets it. Optional: a host built before it existed provides none.
@@ -1910,6 +1910,7 @@ export declare abstract class BaseRootWebComponent extends BaseWebComponent {
1910
1910
  query: import("@angular/core").InputSignal<string | undefined>;
1911
1911
  private readonly navWidgetMaps;
1912
1912
  private readonly appBaseHref;
1913
+ private readonly location;
1913
1914
  private readonly injector;
1914
1915
  private readonly wcComponents;
1915
1916
  private readonly defaultNavId;
@@ -12335,6 +12336,7 @@ export declare const ModalStore: import("@angular/core").Type<{
12335
12336
  }>>;
12336
12337
  export type ModalStore = InstanceType<typeof ModalStore>;
12337
12338
  export declare class PanelComponent implements AfterViewInit, OnDestroy {
12339
+ #private;
12338
12340
  readonly component: import("@angular/core").InputSignal<Type<unknown> | undefined>;
12339
12341
  readonly bindings: import("@angular/core").InputSignal<Binding[] | undefined>;
12340
12342
  readonly providers: import("@angular/core").InputSignal<StaticProvider[] | undefined>;
@@ -12380,6 +12382,7 @@ export declare class PanelComponent implements AfterViewInit, OnDestroy {
12380
12382
  panelParentClassName: string;
12381
12383
  activePanel: string | undefined;
12382
12384
  }>;
12385
+ protected readonly navOpen: import("@angular/core").Signal<boolean>;
12383
12386
  private readonly bodyContainer;
12384
12387
  private contentRef;
12385
12388
  ngAfterViewInit(): void;
@@ -12784,10 +12787,14 @@ export declare const ROOT_NAV = "root";
12784
12787
  * the panel's header (see `visibleNavId`).
12785
12788
  */
12786
12789
  export declare const DEFAULT_NAV_SEGMENT = "default";
12787
- /** NavId segment joiner. Flattens both `/` and `|` — see ADR 0014. */
12790
+ /** NavId segment joiner. Flattens both `/` and `~` — see ADR 0014. */
12788
12791
  export declare const NAV_ID_SEP = "_";
12789
- /** Address separator for a Murl. */
12790
- export declare const MURL_SEP = "|";
12792
+ /**
12793
+ * Address separator for a Murl. URL-unreserved, so no encoder in the chain
12794
+ * rewrites it and the address bar shows it as typed — `|` was, and every
12795
+ * browser displayed it as `%7C` (ADR 0013).
12796
+ */
12797
+ export declare const MURL_SEP = "~";
12791
12798
  /** Address separator for a Url. */
12792
12799
  export declare const URL_SEP = "/";
12793
12800
  /**
@@ -12997,6 +13004,11 @@ export declare class FrameComponent {
12997
13004
  navOpenedByUser: import("@angular/core").Signal<boolean>;
12998
13005
  menuNavId: import("@angular/core").Signal<string | undefined>;
12999
13006
  menuParams: import("@angular/core").Signal<Record<string, string | number> | undefined>;
13007
+ browsedApp: import("@ngrx/signals").DeepSignal<{
13008
+ name: string;
13009
+ appNavId: string;
13010
+ slot: "main" | "side";
13011
+ }> | import("@angular/core").Signal<undefined>;
13000
13012
  keepPanelOnPathChange: import("@angular/core").Signal<boolean>;
13001
13013
  panelPushed: import("@angular/core").Signal<boolean>;
13002
13014
  navScrolledDown: import("@angular/core").Signal<boolean>;
@@ -13074,7 +13086,7 @@ export declare class FrameComponent {
13074
13086
  }) => void;
13075
13087
  setAppLink: (appLink: string | undefined, appNavId?: string) => void;
13076
13088
  registerMount: (mount: import("@magmonium/one").RemoteMount) => void;
13077
- unregisterMount: (name: string) => void;
13089
+ unregisterMount: (name: string, navigate?: import("@magmonium/one").RemoteMount["navigate"]) => void;
13078
13090
  setMountRoute: (name: string, route: import("@magmonium/one").MountRoute | undefined) => void;
13079
13091
  mountOf: (navId: string) => import("@magmonium/one").RemoteMount | undefined;
13080
13092
  setWcConfig: (appLink: string, config: import("dist/libs/cli/src").WebComponentConfig) => void;
@@ -13086,6 +13098,7 @@ export declare class FrameComponent {
13086
13098
  registerWidgets: (appLink: string, entry: NavWidgetRegistryEntry) => void;
13087
13099
  back: () => void;
13088
13100
  browse: (navId: string, params?: Record<string, string | number>) => void;
13101
+ browseApp: (appNavId: string) => void;
13089
13102
  resolveUrl: (url: string) => string;
13090
13103
  setNavScrolledDown: (value: boolean) => void;
13091
13104
  routePathFor: (navId: string) => string;
@@ -13112,6 +13125,11 @@ export declare class FrameComponent {
13112
13125
  navOpenedByUser: boolean;
13113
13126
  menuNavId: string | undefined;
13114
13127
  menuParams: Record<string, string | number> | undefined;
13128
+ browsedApp: {
13129
+ name: string;
13130
+ appNavId: string;
13131
+ slot: "main" | "side";
13132
+ } | undefined;
13115
13133
  keepPanelOnPathChange: boolean;
13116
13134
  panelPushed: boolean;
13117
13135
  navScrolledDown: boolean;
@@ -13123,7 +13141,7 @@ export declare class FrameComponent {
13123
13141
  }>;
13124
13142
  protected readonly device: DeviceService;
13125
13143
  protected readonly isPreview: boolean;
13126
- protected readonly navPadding: import("@angular/core").Signal<"0px" | "calc(5em + 400px)" | "5em">;
13144
+ protected readonly navPadding: import("@angular/core").Signal<"0px" | "calc(64px + 360px)" | "64px">;
13127
13145
  static ɵfac: i0.ɵɵFactoryDeclaration<FrameComponent, never>;
13128
13146
  static ɵcmp: i0.ɵɵComponentDeclaration<FrameComponent, "m-frame", never, {}, {}, never, ["*"], true, never>;
13129
13147
  }
@@ -13311,6 +13329,16 @@ interface NavState {
13311
13329
  * `menuNavId` is set.
13312
13330
  */
13313
13331
  menuParams: Record<string, string | number> | undefined;
13332
+ /**
13333
+ * The app whose menu an App Rail AppLogo Browsed onto, and the slot it held
13334
+ * then. That Browse belongs to the app: it survives an Address change that
13335
+ * only moved the app to another slot (CONTEXT.md Browse).
13336
+ */
13337
+ browsedApp: {
13338
+ name: string;
13339
+ appNavId: string;
13340
+ slot: AppSlot;
13341
+ } | undefined;
13314
13342
  /**
13315
13343
  * Next path settle should keep `navOpenedByUser`. Used by the AppLogo when
13316
13344
  * the panel is already open — navigate home but leave the menu showing
@@ -13358,6 +13386,9 @@ declare const routeParamsOf: (root: ActivatedRouteSnapshot) => Record<string, st
13358
13386
  * Router built them in.
13359
13387
  */
13360
13388
  declare const visibilityKey: (navId: string, params: Record<string, string>) => string;
13389
+ /** The auxiliary segment names at the URL's root, the primary path aside. */
13390
+ /** Where an app on screen stands: the primary path, or its own auxiliary segment. */
13391
+ type AppSlot = 'main' | 'side';
13361
13392
  export declare const NavStore: import("@angular/core").Type<{
13362
13393
  path: Signal<string>;
13363
13394
  routeNavId: Signal<string | undefined>;
@@ -13379,6 +13410,11 @@ export declare const NavStore: import("@angular/core").Type<{
13379
13410
  navOpenedByUser: Signal<boolean>;
13380
13411
  menuNavId: Signal<string | undefined>;
13381
13412
  menuParams: Signal<Record<string, string | number> | undefined>;
13413
+ browsedApp: import("@ngrx/signals").DeepSignal<{
13414
+ name: string;
13415
+ appNavId: string;
13416
+ slot: AppSlot;
13417
+ }> | Signal<undefined>;
13382
13418
  keepPanelOnPathChange: Signal<boolean>;
13383
13419
  panelPushed: Signal<boolean>;
13384
13420
  navScrolledDown: Signal<boolean>;
@@ -13456,7 +13492,7 @@ export declare const NavStore: import("@angular/core").Type<{
13456
13492
  }) => void;
13457
13493
  setAppLink: (appLink: string | undefined, appNavId?: string) => void;
13458
13494
  registerMount: (mount: RemoteMount) => void;
13459
- unregisterMount: (name: string) => void;
13495
+ unregisterMount: (name: string, navigate?: RemoteMount["navigate"]) => void;
13460
13496
  setMountRoute: (name: string, route: MountRoute | undefined) => void;
13461
13497
  mountOf: (navId: string) => RemoteMount | undefined;
13462
13498
  setWcConfig: (appLink: string, config: WebComponentConfig$1) => void;
@@ -13468,6 +13504,7 @@ export declare const NavStore: import("@angular/core").Type<{
13468
13504
  registerWidgets: (appLink: string, entry: NavWidgetRegistryEntry) => void;
13469
13505
  back: () => void;
13470
13506
  browse: (navId: string, params?: Record<string, string | number>) => void;
13507
+ browseApp: (appNavId: string) => void;
13471
13508
  resolveUrl: (url: string) => string;
13472
13509
  setNavScrolledDown: (value: boolean) => void;
13473
13510
  routePathFor: (navId: string) => string;
@@ -13494,6 +13531,11 @@ export declare const NavStore: import("@angular/core").Type<{
13494
13531
  navOpenedByUser: boolean;
13495
13532
  menuNavId: string | undefined;
13496
13533
  menuParams: Record<string, string | number> | undefined;
13534
+ browsedApp: {
13535
+ name: string;
13536
+ appNavId: string;
13537
+ slot: AppSlot;
13538
+ } | undefined;
13497
13539
  keepPanelOnPathChange: boolean;
13498
13540
  panelPushed: boolean;
13499
13541
  navScrolledDown: boolean;
@@ -13565,6 +13607,13 @@ export declare const PLATFORM_ROOT_CHILDREN: string[];
13565
13607
  */
13566
13608
  export declare const PLATFORM_NAV_MAP: NavMap;
13567
13609
  export declare const isPlatformNavId: (navId: string) => boolean;
13610
+ /**
13611
+ * A Platform Nav whose panel the library fills — search, notification, user
13612
+ * and the user-settings leaves. Every Remote's widget map carries its own copy
13613
+ * of these (`provideMagWcConfig`), so a mounted Remote is never asked for one:
13614
+ * the host's chrome answers, whatever app is mounted.
13615
+ */
13616
+ export declare const isPlatformPanelNavId: (navId: string) => boolean;
13568
13617
  /**
13569
13618
  * The two Platform Navs an app has a stake in — the only ones the editor lets
13570
13619
  * a User hang children under, and so the only ones worth asking an app about.
@@ -13596,17 +13645,18 @@ export declare const unfetchedPlatformNav: (navId: string) => Nav | undefined;
13596
13645
  * re-runs no guard, while still being a real location. See ADR 0013.
13597
13646
  *
13598
13647
  * It never appears in the address bar: this serializer writes it back out as
13599
- * `|`, and reads it back in the same way.
13648
+ * `~`, and reads it back in the same way.
13600
13649
  */
13601
13650
  export declare const MURL_PARAM = "__m";
13602
13651
  /**
13603
- * Serializes the Murl part of an Address as `|` in the path while carrying it
13652
+ * Serializes the Murl part of an Address as `~` in the path while carrying it
13604
13653
  * internally as a query param.
13605
13654
  *
13606
- * `|` is not URL-unreserved — `encodeURI('/a|d')` yields `/a%7Cd` — so links
13607
- * arrive in both forms and parsing accepts both. Serialization always emits the
13608
- * literal `|`, and always keeps a leading `/`: a bare `|search` is a *relative*
13609
- * URL that would resolve against the current directory.
13655
+ * `~` is URL-unreserved, so the address bar shows it as written — the retired
13656
+ * `|` was displayed as `%7C`. Parsing still accepts `|` and `%7C`, so older
13657
+ * links keep working. Serialization always emits the literal `~`, and always
13658
+ * keeps a leading `/`: a bare `~search` is a *relative* URL that would resolve
13659
+ * against the current directory.
13610
13660
  */
13611
13661
  export declare class MurlUrlSerializer implements UrlSerializer {
13612
13662
  #private;
@@ -13659,8 +13709,8 @@ export declare const navIdToRoutePath: (navId: string, navMap: NavMap) => string
13659
13709
  *
13660
13710
  * A Murl opens *over* the page it was opened from, so the Anchor also holds
13661
13711
  * when we stand **below** the target's Url part: `root_search` is anchored at
13662
- * `root`, and clicking it from `/a/b/c` must address `/a/b/c|search` rather
13663
- * than collapsing the location to `/|search` — the panel is chrome over a
13712
+ * `root`, and clicking it from `/a/b/c` must address `/a/b/c~search` rather
13713
+ * than collapsing the location to `/~search` — the panel is chrome over a
13664
13714
  * place, not a place of its own (ADR 0013). Closing it then returns to the
13665
13715
  * page it covered instead of stranding the User on the landing route.
13666
13716
  *
@@ -13688,8 +13738,8 @@ declare const fillParams: (path: string, params?: Record<string, string | number
13688
13738
  declare const fillRoutePath: (navId: string, navMap: NavMap, params?: Record<string, string | number>) => string;
13689
13739
  /**
13690
13740
  * Splits a location into its route path and its Murl segments. Accepts the
13691
- * percent-encoded form too, because `|` is not URL-unreserved and any encoder
13692
- * in the chain will have turned it into `%7C` (ADR 0013).
13741
+ * percent-encoded `%7E` too, and the retired `|` / `%7C` separator, so links
13742
+ * shared before the switch to `~` still open their panel (ADR 0013).
13693
13743
  */
13694
13744
  export declare const parseAddress: (address: string) => {
13695
13745
  path: string;
@@ -13733,6 +13783,25 @@ export declare class NavComponent {
13733
13783
  alt: string;
13734
13784
  app: undefined;
13735
13785
  } | undefined>;
13786
+ /**
13787
+ * The App Rail below the AppLogo (CONTEXT.md App Rail): the Main Slot's App,
13788
+ * standing where the apps button would, then each Side App. Selecting one
13789
+ * opens the panel on that app's menu; the open panel rings whose menu it is.
13790
+ */
13791
+ protected appRail: import("@angular/core").Signal<{
13792
+ key: string;
13793
+ appNavId: string;
13794
+ pending: boolean;
13795
+ src: string | undefined;
13796
+ remote: string | undefined;
13797
+ alt: string;
13798
+ active: boolean;
13799
+ }[]>;
13800
+ /**
13801
+ * The host's AppLogo is rung while the panel shows no rail app's menu —
13802
+ * only when the App Rail has apps to tell it apart from; plain nav stays bare.
13803
+ */
13804
+ protected logoActive: import("@angular/core").Signal<boolean>;
13736
13805
  protected isScrolledDown: import("@angular/core").Signal<boolean>;
13737
13806
  protected currentUser: import("@angular/core").Signal<import("@magmonium/one").AuthUser | null>;
13738
13807
  protected isVertical: import("@angular/core").Signal<boolean>;
@@ -13751,7 +13820,11 @@ export declare class NavComponent {
13751
13820
  * AppLogo in the left corner. Menu open → go to root and keep the panel so
13752
13821
  * the menu shows the route tree; menu closed → navigate to the home page.
13753
13822
  */
13823
+ /** Replays the AppLogo tap pop; cleared on animationend so the next tap restarts it. */
13824
+ protected readonly logoPop: import("@angular/core").WritableSignal<boolean>;
13754
13825
  onLogoClick: () => void;
13826
+ /** An App Rail AppLogo: the panel opens on that app's menu, wherever it stands. */
13827
+ onAppLogoClick: (appNavId: string) => void;
13755
13828
  static ɵfac: i0.ɵɵFactoryDeclaration<NavComponent, never>;
13756
13829
  static ɵcmp: i0.ɵɵComponentDeclaration<NavComponent, "m-nav", never, {
13757
13830
  "isHost": {
@@ -13790,6 +13863,11 @@ export declare class NavDetailsComponent {
13790
13863
  navOpenedByUser: import("@angular/core").Signal<boolean>;
13791
13864
  menuNavId: import("@angular/core").Signal<string | undefined>;
13792
13865
  menuParams: import("@angular/core").Signal<Record<string, string | number> | undefined>;
13866
+ browsedApp: import("@ngrx/signals").DeepSignal<{
13867
+ name: string;
13868
+ appNavId: string;
13869
+ slot: "main" | "side";
13870
+ }> | import("@angular/core").Signal<undefined>;
13793
13871
  keepPanelOnPathChange: import("@angular/core").Signal<boolean>;
13794
13872
  panelPushed: import("@angular/core").Signal<boolean>;
13795
13873
  navScrolledDown: import("@angular/core").Signal<boolean>;
@@ -13867,7 +13945,7 @@ export declare class NavDetailsComponent {
13867
13945
  }) => void;
13868
13946
  setAppLink: (appLink: string | undefined, appNavId?: string) => void;
13869
13947
  registerMount: (mount: import("@magmonium/one").RemoteMount) => void;
13870
- unregisterMount: (name: string) => void;
13948
+ unregisterMount: (name: string, navigate?: import("@magmonium/one").RemoteMount["navigate"]) => void;
13871
13949
  setMountRoute: (name: string, route: import("@magmonium/one").MountRoute | undefined) => void;
13872
13950
  mountOf: (navId: string) => import("@magmonium/one").RemoteMount | undefined;
13873
13951
  setWcConfig: (appLink: string, config: import("dist/libs/cli/src").WebComponentConfig) => void;
@@ -13879,6 +13957,7 @@ export declare class NavDetailsComponent {
13879
13957
  registerWidgets: (appLink: string, entry: NavWidgetRegistryEntry) => void;
13880
13958
  back: () => void;
13881
13959
  browse: (navId: string, params?: Record<string, string | number>) => void;
13960
+ browseApp: (appNavId: string) => void;
13882
13961
  resolveUrl: (url: string) => string;
13883
13962
  setNavScrolledDown: (value: boolean) => void;
13884
13963
  routePathFor: (navId: string) => string;
@@ -13905,6 +13984,11 @@ export declare class NavDetailsComponent {
13905
13984
  navOpenedByUser: boolean;
13906
13985
  menuNavId: string | undefined;
13907
13986
  menuParams: Record<string, string | number> | undefined;
13987
+ browsedApp: {
13988
+ name: string;
13989
+ appNavId: string;
13990
+ slot: "main" | "side";
13991
+ } | undefined;
13908
13992
  keepPanelOnPathChange: boolean;
13909
13993
  panelPushed: boolean;
13910
13994
  navScrolledDown: boolean;
@@ -13994,6 +14078,7 @@ export declare class NavMenuComponent {
13994
14078
  }, {}, never, never, true, never>;
13995
14079
  }
13996
14080
  export declare class NavHeaderComponent {
14081
+ #private;
13997
14082
  _navStore: {
13998
14083
  path: import("@angular/core").Signal<string>;
13999
14084
  routeNavId: import("@angular/core").Signal<string | undefined>;
@@ -14015,6 +14100,11 @@ export declare class NavHeaderComponent {
14015
14100
  navOpenedByUser: import("@angular/core").Signal<boolean>;
14016
14101
  menuNavId: import("@angular/core").Signal<string | undefined>;
14017
14102
  menuParams: import("@angular/core").Signal<Record<string, string | number> | undefined>;
14103
+ browsedApp: import("@ngrx/signals").DeepSignal<{
14104
+ name: string;
14105
+ appNavId: string;
14106
+ slot: "main" | "side";
14107
+ }> | import("@angular/core").Signal<undefined>;
14018
14108
  keepPanelOnPathChange: import("@angular/core").Signal<boolean>;
14019
14109
  panelPushed: import("@angular/core").Signal<boolean>;
14020
14110
  navScrolledDown: import("@angular/core").Signal<boolean>;
@@ -14092,7 +14182,7 @@ export declare class NavHeaderComponent {
14092
14182
  }) => void;
14093
14183
  setAppLink: (appLink: string | undefined, appNavId?: string) => void;
14094
14184
  registerMount: (mount: import("@magmonium/one").RemoteMount) => void;
14095
- unregisterMount: (name: string) => void;
14185
+ unregisterMount: (name: string, navigate?: import("@magmonium/one").RemoteMount["navigate"]) => void;
14096
14186
  setMountRoute: (name: string, route: import("@magmonium/one").MountRoute | undefined) => void;
14097
14187
  mountOf: (navId: string) => import("@magmonium/one").RemoteMount | undefined;
14098
14188
  setWcConfig: (appLink: string, config: import("dist/libs/cli/src").WebComponentConfig) => void;
@@ -14104,6 +14194,7 @@ export declare class NavHeaderComponent {
14104
14194
  registerWidgets: (appLink: string, entry: NavWidgetRegistryEntry) => void;
14105
14195
  back: () => void;
14106
14196
  browse: (navId: string, params?: Record<string, string | number>) => void;
14197
+ browseApp: (appNavId: string) => void;
14107
14198
  resolveUrl: (url: string) => string;
14108
14199
  setNavScrolledDown: (value: boolean) => void;
14109
14200
  routePathFor: (navId: string) => string;
@@ -14130,6 +14221,11 @@ export declare class NavHeaderComponent {
14130
14221
  navOpenedByUser: boolean;
14131
14222
  menuNavId: string | undefined;
14132
14223
  menuParams: Record<string, string | number> | undefined;
14224
+ browsedApp: {
14225
+ name: string;
14226
+ appNavId: string;
14227
+ slot: "main" | "side";
14228
+ } | undefined;
14133
14229
  keepPanelOnPathChange: boolean;
14134
14230
  panelPushed: boolean;
14135
14231
  navScrolledDown: boolean;
@@ -14160,30 +14256,15 @@ export declare class NavHeaderComponent {
14160
14256
  _isSearch: import("@angular/core").Signal<boolean>;
14161
14257
  _hasParent: import("@angular/core").Signal<boolean>;
14162
14258
  _trail: import("@angular/core").Signal<import("@magmonium/one").BreadcrumbTrail[] | null>;
14259
+ _user: import("@angular/core").Signal<import("@magmonium/one").AuthUser | null>;
14163
14260
  _header: import("@angular/core").Signal<import("@magmonium/one").BreadcrumbTrail | null>;
14164
14261
  static ɵfac: i0.ɵɵFactoryDeclaration<NavHeaderComponent, never>;
14165
14262
  static ɵcmp: i0.ɵɵComponentDeclaration<NavHeaderComponent, "m-nav-header", never, {}, {}, never, never, true, never>;
14166
14263
  }
14167
- interface ResolvedUserTab {
14168
- tabId: string;
14169
- component?: Type<unknown>;
14170
- ceSelector?: string;
14171
- remote?: string;
14172
- }
14173
- export declare const USER_TAB_MAP: InjectionToken<Record<string, Type<unknown>>>;
14174
- export declare const WIN_USER_TAB_HOOK = "__mag_register_user_tabs__";
14175
- export declare const WIN_USER_TAB_KEY = "__mag_user_tabs__";
14176
14264
  export declare class UserNavComponent {
14177
14265
  #private;
14178
- protected readonly activeTabId: import("@angular/core").WritableSignal<string | undefined>;
14179
14266
  protected readonly currentUser: import("@angular/core").Signal<import("@magmonium/one").AuthUser | null>;
14180
- protected readonly onUserMenuAction: (item: MenuItem) => void;
14181
- protected readonly resolvedTabs: import("@angular/core").Signal<ResolvedUserTab[]>;
14182
- protected readonly showTabs: import("@angular/core").Signal<boolean>;
14183
- protected readonly activeTabEntry: import("@angular/core").Signal<ResolvedUserTab | undefined>;
14184
- private readonly tabButtonsResource;
14185
- protected tabGroupConfig: import("@angular/core").Signal<Partial<TabGroup>>;
14186
- protected readonly selectTab: (tab: Button) => void;
14267
+ protected readonly onUserAction: (button: Button | undefined) => void;
14187
14268
  static ɵfac: i0.ɵɵFactoryDeclaration<UserNavComponent, never>;
14188
14269
  static ɵcmp: i0.ɵɵComponentDeclaration<UserNavComponent, "m-user-nav", never, {}, {}, never, never, true, never>;
14189
14270
  }
@@ -14195,6 +14276,15 @@ export declare class UserNavComponent {
14195
14276
  * at `root_user` instead of going through here.
14196
14277
  */
14197
14278
  export declare function provideUserTabs(tabs: Record<string, Type<unknown>>): Provider[];
14279
+ interface ResolvedUserTab {
14280
+ tabId: string;
14281
+ component?: Type<unknown>;
14282
+ ceSelector?: string;
14283
+ remote?: string;
14284
+ }
14285
+ export declare const USER_TAB_MAP: InjectionToken<Record<string, Type<unknown>>>;
14286
+ export declare const WIN_USER_TAB_HOOK = "__mag_register_user_tabs__";
14287
+ export declare const WIN_USER_TAB_KEY = "__mag_user_tabs__";
14198
14288
  export interface TextNotification {
14199
14289
  text: string;
14200
14290
  }
@@ -14463,6 +14553,7 @@ export declare class NotificationWidgetComponent {
14463
14553
  protected activeTab: import("@angular/core").WritableSignal<string>;
14464
14554
  protected displayNotifications: import("@angular/core").Signal<Notification[]>;
14465
14555
  protected unreadCount: import("@angular/core").Signal<number>;
14556
+ protected onFilter(button: Button | undefined): void;
14466
14557
  static ɵfac: i0.ɵɵFactoryDeclaration<NotificationWidgetComponent, never>;
14467
14558
  static ɵcmp: i0.ɵɵComponentDeclaration<NotificationWidgetComponent, "m-notification-widget", never, {}, {}, never, never, true, never>;
14468
14559
  }
@@ -15498,7 +15589,7 @@ export declare class AuthActivityPageComponent {
15498
15589
  showTerms: import("@angular/core").Signal<boolean | undefined>;
15499
15590
  signUp: import("@angular/core").Signal<boolean | undefined>;
15500
15591
  tokens: import("@angular/core").Signal<undefined> | import("@ngrx/signals").DeepSignal<import("@magmonium/one").Tokens>;
15501
- user: import("@ngrx/signals").DeepSignal<import("@magmonium/one").AuthUser> | import("@angular/core").Signal<undefined>;
15592
+ user: import("@angular/core").Signal<undefined> | import("@ngrx/signals").DeepSignal<import("@magmonium/one").AuthUser>;
15502
15593
  wrongPassword: import("@angular/core").Signal<boolean | undefined>;
15503
15594
  deployToken: import("@angular/core").Signal<string | undefined>;
15504
15595
  hostUserTabs: Record<string, import("@angular/core").Type<unknown>>;
@@ -15678,7 +15769,7 @@ export declare const AuthStore: Type<{
15678
15769
  showTerms: import("@angular/core").Signal<boolean | undefined>;
15679
15770
  signUp: import("@angular/core").Signal<boolean | undefined>;
15680
15771
  tokens: import("@angular/core").Signal<undefined> | import("@ngrx/signals").DeepSignal<Tokens>;
15681
- user: import("@ngrx/signals").DeepSignal<import("@magmonium/one").AuthUser> | import("@angular/core").Signal<undefined>;
15772
+ user: import("@angular/core").Signal<undefined> | import("@ngrx/signals").DeepSignal<import("@magmonium/one").AuthUser>;
15682
15773
  wrongPassword: import("@angular/core").Signal<boolean | undefined>;
15683
15774
  deployToken: import("@angular/core").Signal<string | undefined>;
15684
15775
  hostUserTabs: Record<string, Type<unknown>>;
@@ -1,27 +0,0 @@
1
- {
2
- "options": [
3
- [
4
- {
5
- "id": "edit_profile",
6
- "label": "edit-profile",
7
- "icon": "user"
8
- },
9
- {
10
- "id": "settings",
11
- "label": "settings",
12
- "icon": "gear"
13
- }
14
- ],
15
- [
16
- {
17
- "id": "logout",
18
- "label": "logout",
19
- "icon": "lock"
20
- }
21
- ]
22
- ],
23
- "icon": {
24
- "name": "ellipsis-vertical"
25
- },
26
- "width": "220px"
27
- }