@besaitech/ng-design-system 0.0.47 → 0.0.48

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/index.d.ts CHANGED
@@ -2321,7 +2321,7 @@ declare class SdsTopbar {
2321
2321
  /** Add slow-drifting brand-tinted blobs behind the bar (opt-in; pairs with `glass`/`surface`). */
2322
2322
  readonly decorations: _angular_core.InputSignalWithTransform<boolean, unknown>;
2323
2323
  protected readonly shellClasses: _angular_core.Signal<"bg-linear-to-r from-brand-800 via-brand-700 to-brand-600 text-white" | "border-b border-border bg-linear-to-r from-surface/85 via-surface/80 to-brand-100/70 text-ink backdrop-blur-xl" | "border-b border-border bg-surface text-ink">;
2324
- protected readonly menuButtonClasses: _angular_core.Signal<"text-white/85 hover:bg-white/10 hover:text-white focus-visible:ring-white/40" | "text-ink-soft hover:bg-muted hover:text-ink focus-visible:ring-brand-500/40">;
2324
+ protected readonly menuButtonClasses: _angular_core.Signal<"text-ink-soft hover:bg-muted hover:text-ink focus-visible:ring-brand-500/40" | "text-white/85 hover:bg-white/10 hover:text-white focus-visible:ring-white/40">;
2325
2325
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdsTopbar, never>;
2326
2326
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsTopbar, "sds-topbar", never, { "appName": { "alias": "appName"; "required": false; "isSignal": true; }; "contentWidth": { "alias": "contentWidth"; "required": false; "isSignal": true; }; "menuButton": { "alias": "menuButton"; "required": false; "isSignal": true; }; "menuLabel": { "alias": "menuLabel"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "decorations": { "alias": "decorations"; "required": false; "isSignal": true; }; }, {}, never, ["[sdsLogo]", "[sdsLead]", "[sdsCenter]", "[sdsActions]"], true, never>;
2327
2327
  }
@@ -2585,29 +2585,45 @@ declare class SdsUserMenu {
2585
2585
 
2586
2586
  type SdsMenuItemTone = 'default' | 'danger';
2587
2587
  /**
2588
- * A single row inside a menu surface (the {@link SdsUserMenu} dropdown, or any custom popover). Renders
2589
- * an anchor when [link] is set — with the Router — or a button otherwise, and emits {@link select} on
2590
- * activation. The parent menu closes itself when an item is activated, so an item never has to reach
2591
- * back into the menu.
2588
+ * A single row inside a menu surface (the {@link SdsUserMenu} dropdown, or any custom popover). Renders,
2589
+ * in order of precedence: a plain anchor when [href] is set (an EXTERNAL or cross-origin URL), a
2590
+ * Router anchor when [link] is set (an in-app route), or a button otherwise. It always emits
2591
+ * {@link select} on activation. The parent menu closes itself when an item is activated, so an item
2592
+ * never has to reach back into the menu.
2592
2593
  *
2593
2594
  * `tone="danger"` paints a destructive action (sign out, delete). Trailing content (a shortcut hint, a
2594
2595
  * count) projects into the default slot after the label.
2595
2596
  *
2596
2597
  * @example
2597
- * <sds-menu-item icon="user" label="Profil" link="/profile" />
2598
+ * <sds-menu-item icon="user" label="Profil" link="/profile" /> <!-- in-app route -->
2599
+ * <sds-menu-item icon="external-link" label="Site public" href="https://…" target="_blank" />
2598
2600
  * <sds-menu-item icon="log-out" label="Se déconnecter" tone="danger" (select)="signOut()" />
2599
2601
  */
2600
2602
  declare class SdsMenuItem {
2601
2603
  readonly icon: _angular_core.InputSignal<"chart-column" | "clipboard-list" | "credit-card" | "external-link" | "languages" | "megaphone" | "monitor" | "store" | "user-round" | "home" | "user-plus" | "user-check" | "hand" | "users" | "bike" | "building-2" | "package" | "package-plus" | "package-open" | "rotate-ccw" | "bar-chart-3" | "search" | "log-out" | "panel-left-close" | "panel-left-open" | "panel-left" | "calendar" | "chevron-right" | "chevron-left" | "chevron-down" | "chevron-up" | "plus" | "minus" | "chevrons-left" | "chevrons-right" | "x" | "check" | "alert-circle" | "info" | "copy" | "type" | "tag" | "square" | "circle-user" | "layout-grid" | "panels-top-left" | "panel-top" | "rows-3" | "book-open" | "palette" | "bell" | "phone" | "settings" | "align-left" | "toggle-left" | "arrow-up" | "arrow-down" | "chevrons-up-down" | "filter" | "table" | "eye" | "eye-off" | "user" | "check-circle" | "arrows-clockwise" | "menu" | "file-text" | "hash" | "map-pin" | "inbox" | "arrow-right" | "refresh-cw" | "loader-circle" | "bug" | "scroll-text" | "moon" | "sun" | "search-x" | "command" | "sparkles" | null>;
2602
2604
  readonly label: _angular_core.InputSignal<string>;
2603
- /** Router link target; when null (default) the item renders as a button. */
2605
+ /** Router link target for an in-app route; when null (default) the item is not a Router link. */
2604
2606
  readonly link: _angular_core.InputSignal<string | unknown[] | null>;
2607
+ /**
2608
+ * External / cross-origin URL. When set, the item renders a plain `<a [href]>` (NOT a Router link),
2609
+ * so it works for another app's origin. Takes precedence over {@link link}.
2610
+ */
2611
+ readonly href: _angular_core.InputSignal<string | null>;
2612
+ /** Anchor target for {@link href}, e.g. `_blank` to open the destination in a new tab. */
2613
+ readonly target: _angular_core.InputSignal<string | null>;
2614
+ /**
2615
+ * `rel` for {@link href}. Defaults to `noopener noreferrer` when {@link target} is `_blank` (the safe
2616
+ * default for a new-tab external link); pass a value to override, or `''` to clear it.
2617
+ */
2618
+ readonly rel: _angular_core.InputSignal<string | null>;
2605
2619
  readonly tone: _angular_core.InputSignal<SdsMenuItemTone>;
2606
2620
  readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
2607
2621
  readonly select: _angular_core.OutputEmitterRef<void>;
2622
+ /** `noopener noreferrer` is forced for a `_blank` external link unless the consumer set `rel` explicitly. */
2623
+ protected readonly resolvedRel: _angular_core.Signal<string | null>;
2608
2624
  protected readonly rowClass: _angular_core.Signal<string>;
2609
2625
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SdsMenuItem, never>;
2610
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsMenuItem, "sds-menu-item", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "select": "select"; }, never, ["*"], true, never>;
2626
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SdsMenuItem, "sds-menu-item", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "link": { "alias": "link"; "required": false; "isSignal": true; }; "href": { "alias": "href"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "rel": { "alias": "rel"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "select": "select"; }, never, ["*"], true, never>;
2611
2627
  }
2612
2628
 
2613
2629
  /** One searchable entry. `group` buckets it under a heading; `keywords` widen what the filter matches. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@besaitech/ng-design-system",
3
- "version": "0.0.47",
3
+ "version": "0.0.48",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/",
6
6
  "access": "public"