@egen-civitas/esm-extensions 2.3.0 → 2.4.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @egen-civitas/esm-extensions
2
2
 
3
+ ## 2.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 3d304d5: Slot de navigation de la TopBar sans numéro de niveau : nouvelle constante `TOPBAR_NAV_SLOT` (`topbar-nav-slot`) et `TOPBAR_NAV_SLOTS` (tous les noms à lire, officiel d'abord). `TOPBAR_LEVEL2_NAV_SLOT` (`topbar-level2-nav`) est conservée, marquée `@deprecated`, et reste honorée : `SectionNavPanel` lit les deux slots (sans doublon). Les apps migrent leur `routes.json` vers le nouveau nom quand elles veulent ; aucune rupture.
8
+
3
9
  ## 2.3.0
4
10
 
5
11
  ### Minor Changes
@@ -1,14 +1,28 @@
1
1
  /** @module @category Extension */
2
2
  /**
3
- * Nom du slot sur lequel chaque app déclare ses entrées de navigation
4
- * (niveau 2 de la TopBar). Déclaré dans le `routes.json` de l'app :
5
- * `{ "slot": "topbar-level2-nav", "component": "navEntry", "meta": NavEntryMeta }`.
3
+ * Nom du slot sur lequel chaque app déclare ses entrées de navigation de la TopBar. Déclaré dans le
4
+ * `routes.json` de l'app : `{ "slot": "topbar-nav-slot", "component": "navEntry", "meta": NavEntryMeta }`.
5
+ *
6
+ * Le nom ne désigne aucun niveau : la TopBar est une pile de N niveaux et la navigation peut être placée dans
7
+ * n'importe lequel (c'est la config de la TopBar qui décide).
8
+ */
9
+ export declare const TOPBAR_NAV_SLOT = "topbar-nav-slot";
10
+ /**
11
+ * Ancien nom du slot de navigation (`topbar-level2-nav`), de l'époque où la TopBar n'avait que deux niveaux.
12
+ * Toujours honoré pour les apps déjà déployées.
13
+ *
14
+ * @deprecated Déclarer les entrées sur {@link TOPBAR_NAV_SLOT}.
6
15
  */
7
16
  export declare const TOPBAR_LEVEL2_NAV_SLOT = "topbar-level2-nav";
8
17
  /**
9
- * Métadonnées d'une entrée de navigation du niveau 2 de la TopBar.
18
+ * Tous les noms de slot de navigation, le nom officiel d'abord. Un lecteur (TopBar, panneau de section…) doit
19
+ * les lire TOUS et fusionner les entrées, tant que des apps déclarent encore l'ancien nom.
20
+ */
21
+ export declare const TOPBAR_NAV_SLOTS: readonly string[];
22
+ /**
23
+ * Métadonnées d'une entrée de navigation de la TopBar.
10
24
  * Partagé par les apps (qui le déclarent dans `meta`) et par la TopBar
11
- * (qui le lit via `useExtensionSlotMeta<NavEntryMeta>(TOPBAR_LEVEL2_NAV_SLOT)`).
25
+ * (qui le lit sur tous les slots de {@link TOPBAR_NAV_SLOTS}).
12
26
  */
13
27
  export interface NavEntryMeta {
14
28
  /** Entrée de niveau 2 (ex. `informations`) ; regroupe les colonnes du méga-menu. */
@@ -1 +1 @@
1
- {"version":3,"file":"nav-entry.d.ts","sourceRoot":"","sources":["../src/nav-entry.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAElC;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAelE;AAED,wGAAwG;AACxG,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAItF"}
1
+ {"version":3,"file":"nav-entry.d.ts","sourceRoot":"","sources":["../src/nav-entry.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAA8C,CAAC;AAE7F;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2GAA2G;IAC3G,KAAK,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,YAAY,CAelE;AAED,wGAAwG;AACxG,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAItF"}
package/dist/nav-entry.js CHANGED
@@ -1,8 +1,23 @@
1
1
  /** @module @category Extension */ /**
2
- * Nom du slot sur lequel chaque app déclare ses entrées de navigation
3
- * (niveau 2 de la TopBar). Déclaré dans le `routes.json` de l'app :
4
- * `{ "slot": "topbar-level2-nav", "component": "navEntry", "meta": NavEntryMeta }`.
2
+ * Nom du slot sur lequel chaque app déclare ses entrées de navigation de la TopBar. Déclaré dans le
3
+ * `routes.json` de l'app : `{ "slot": "topbar-nav-slot", "component": "navEntry", "meta": NavEntryMeta }`.
4
+ *
5
+ * Le nom ne désigne aucun niveau : la TopBar est une pile de N niveaux et la navigation peut être placée dans
6
+ * n'importe lequel (c'est la config de la TopBar qui décide).
7
+ */ export const TOPBAR_NAV_SLOT = 'topbar-nav-slot';
8
+ /**
9
+ * Ancien nom du slot de navigation (`topbar-level2-nav`), de l'époque où la TopBar n'avait que deux niveaux.
10
+ * Toujours honoré pour les apps déjà déployées.
11
+ *
12
+ * @deprecated Déclarer les entrées sur {@link TOPBAR_NAV_SLOT}.
5
13
  */ export const TOPBAR_LEVEL2_NAV_SLOT = 'topbar-level2-nav';
14
+ /**
15
+ * Tous les noms de slot de navigation, le nom officiel d'abord. Un lecteur (TopBar, panneau de section…) doit
16
+ * les lire TOUS et fusionner les entrées, tant que des apps déclarent encore l'ancien nom.
17
+ */ export const TOPBAR_NAV_SLOTS = [
18
+ TOPBAR_NAV_SLOT,
19
+ TOPBAR_LEVEL2_NAV_SLOT
20
+ ];
6
21
  /** Valeur de `NavEntryMeta.workspaces` qui désigne « tous les espaces ». */ export const NAV_ALL_WORKSPACES = '*';
7
22
  /** Valide une `meta` d'extension : vrai si c'est une `NavEntryMeta` exploitable. */ export function isNavEntryMeta(meta) {
8
23
  if (!meta || typeof meta !== 'object') return false;
package/dist/public.d.ts CHANGED
@@ -3,7 +3,7 @@ export { type CancelLoading, renderExtension } from './render.js';
3
3
  export { type ExtensionMeta, type ExtensionRegistration, type ExtensionStore, type AssignedExtension, type ConnectedExtension, type ExtensionSlotState, getExtensionStore, } from './store.js';
4
4
  export { type WorkspaceRegistration } from './workspaces.js';
5
5
  export { type ExtensionData, type ComponentConfig } from './types.js';
6
- export { TOPBAR_LEVEL2_NAV_SLOT, NAV_ALL_WORKSPACES, type NavEntryMeta, isNavEntryMeta, isNavEntryInWorkspace, } from './nav-entry.js';
6
+ export { TOPBAR_NAV_SLOT, TOPBAR_NAV_SLOTS, TOPBAR_LEVEL2_NAV_SLOT, NAV_ALL_WORKSPACES, type NavEntryMeta, isNavEntryMeta, isNavEntryInWorkspace, } from './nav-entry.js';
7
7
  export { SHELL_RAIL_LEFT_SLOT, SHELL_RAIL_BOTTOM_SLOT, SHELL_RAIL_RIGHT_SLOT, TOOL_WINDOW_SLOTS, type ToolWindowAnchor, type ToolWindowMeta, isToolWindowMeta, isToolWindowSlot, isSafeToolWindowIconUrl, getToolWindowMetaProblems, getToolWindowCompartment, DEFAULT_COMPARTMENT_HEIGHTS, type ToolWindowCompartment, type ResolvedToolWindowCompartment, } from './tool-window.js';
8
8
  export { registerToolWindow, type ToolWindowRegistration } from './tool-window-registration.js';
9
9
  export { STAGGERED_MENU_SLOT, STAGGERED_MENU_AREAS, DEFAULT_STAGGERED_MENU_AREA, type StaggeredMenuArea, type StaggeredMenuEntryMeta, type StaggeredMenuAssignedExtension, type ResolvedStaggeredMenuEntry, type ResolveStaggeredMenuEntriesOptions, isStaggeredMenuArea, isStaggeredMenuEntryMeta, getStaggeredMenuEntryProblems, resolveStaggeredMenuEntries, } from './staggered-menu-slot.js';
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,SAAS,EACT,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,YAAY,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,GACnC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EACvC,mBAAmB,EACnB,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,KAAK,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AACnH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../src/public.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,SAAS,EACT,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,YAAY,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,GACnC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,2BAA2B,EAC3B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,8BAA8B,EACnC,KAAK,0BAA0B,EAC/B,KAAK,kCAAkC,EACvC,mBAAmB,EACnB,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,0BAA0B,EAAE,KAAK,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AACnH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,mBAAmB,CAAC"}
package/dist/public.js CHANGED
@@ -1,7 +1,7 @@
1
1
  export { getExtensionNameFromId, registerExtension, attach, detach, detachAll, getAssignedExtensions, registerExtensionSlot } from "./extensions.js";
2
2
  export { renderExtension } from "./render.js";
3
3
  export { getExtensionStore } from "./store.js";
4
- export { TOPBAR_LEVEL2_NAV_SLOT, NAV_ALL_WORKSPACES, isNavEntryMeta, isNavEntryInWorkspace } from "./nav-entry.js";
4
+ export { TOPBAR_NAV_SLOT, TOPBAR_NAV_SLOTS, TOPBAR_LEVEL2_NAV_SLOT, NAV_ALL_WORKSPACES, isNavEntryMeta, isNavEntryInWorkspace } from "./nav-entry.js";
5
5
  export { SHELL_RAIL_LEFT_SLOT, SHELL_RAIL_BOTTOM_SLOT, SHELL_RAIL_RIGHT_SLOT, TOOL_WINDOW_SLOTS, isToolWindowMeta, isToolWindowSlot, isSafeToolWindowIconUrl, getToolWindowMetaProblems, getToolWindowCompartment, DEFAULT_COMPARTMENT_HEIGHTS } from "./tool-window.js";
6
6
  export { registerToolWindow } from "./tool-window-registration.js";
7
7
  export { STAGGERED_MENU_SLOT, STAGGERED_MENU_AREAS, DEFAULT_STAGGERED_MENU_AREA, isStaggeredMenuArea, isStaggeredMenuEntryMeta, getStaggeredMenuEntryProblems, resolveStaggeredMenuEntries } from "./staggered-menu-slot.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@egen-civitas/esm-extensions",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "license": "MPL-2.0",
5
5
  "description": "Coordinates extensions and extension points in the Egen Frontend",
6
6
  "type": "module",