@ajuarezso/sui-design-system 0.6.0 → 0.7.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ajuarezso/sui-design-system",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "SUI Design System — librería de componentes Angular (SUI 2.0).",
5
5
  "license": "UNLICENSED",
6
6
  "publishConfig": {
@@ -6817,7 +6817,7 @@ type SuiModalStatusAlignment = 'horizontal' | 'vertical';
6817
6817
  * @input closeOnEscape — boolean — close on Escape key (default: true)
6818
6818
  * @input showClose — boolean — show X button (default: true)
6819
6819
  * @input iconVariant — SuiModalIconVariant | null — circular icon in header
6820
- * @input statusAlignment — 'horizontal' | 'vertical' — layout del icono+texto.
6820
+ * @input statusAlignment — 'horizontal' | 'vertical' | null — anatomía Status Modal (480:1372); null = header normal.
6821
6821
  * 'vertical' = patrón Status Modal de Figma (default: 'horizontal')
6822
6822
  * @input backdropBlur — boolean — blur(10px) del fondo. default true (look
6823
6823
  * glass del proyecto); opt-out con [backdropBlur]="false"
@@ -6845,11 +6845,11 @@ declare class SuiModal implements AfterViewInit, OnDestroy {
6845
6845
  contenedor circular bg `neutral-lighter` + color `sub-600`. Si NO se
6846
6846
  pasa y hay `iconVariant`, fallback al variant semántico. */
6847
6847
  readonly headerIcon: _angular_core.InputSignal<string | null>;
6848
- /** Layout del header con icono. `vertical` = patrón Status Modal de Figma
6849
- (node 480:1372): icono centrado arriba, texto centrado en columna,
6850
- tipografía escalada. Requiere `iconVariant` o `headerIcon` para tener
6851
- efecto visible. */
6852
- readonly statusAlignment: _angular_core.InputSignal<SuiModalStatusAlignment>;
6848
+ /** Anatomía Status Modal de Figma (set 480:1372) — null (default) = header
6849
+ normal (Modal Header 466:4778). `horizontal`: tile cuadrado + texto en
6850
+ fila dentro del body (480:1366). `vertical`: icono centrado arriba +
6851
+ texto centrado en columna. Requiere `iconVariant` o `headerIcon`. */
6852
+ readonly statusAlignment: _angular_core.InputSignal<SuiModalStatusAlignment | null>;
6853
6853
  /** Aplica `backdrop-filter: blur(10px)` al overlay. Por defecto `true` —
6854
6854
  extra-feature "glass" del proyecto encima del overlay-gray plano del DS
6855
6855
  (rgba(51,51,51,0.24)). Pasar `[backdropBlur]="false"` lo quita y deja el
@@ -6918,14 +6918,12 @@ declare class SuiModal implements AfterViewInit, OnDestroy {
6918
6918
  /** data-variant del círculo: si hay variant semántico lo usa; si solo hay
6919
6919
  * headerIcon custom, retorna 'neutral'. */
6920
6920
  protected readonly resolvedIconVariant: _angular_core.Signal<string>;
6921
- /** True cuando el modal está en modo Status vertical Y hay un icono que
6922
- * mostrar. En este modo el icono+texto se renderizan centrados en el body,
6923
- * no en el header horizontal. */
6921
+ /** Modo Status Modal activo (statusAlignment seteado + icono presente):
6922
+ * el icono+texto se renderizan en el body con la anatomía 480:1372 y el
6923
+ * header queda solo con el close flotante. */
6924
+ readonly isStatus: _angular_core.Signal<boolean>;
6924
6925
  readonly isStatusVertical: _angular_core.Signal<boolean>;
6925
- /** True cuando el header con icono debe renderizar el icono "flat" (24px sin
6926
- * círculo): patrón Figma "Modal Header / Small" (size sin description). Solo
6927
- * aplica en modo horizontal con icono y SIN description. */
6928
- readonly isCompactHeader: _angular_core.Signal<boolean>;
6926
+ readonly isStatusHorizontal: _angular_core.Signal<boolean>;
6929
6927
  private _previousFocus;
6930
6928
  private _escapeHandler?;
6931
6929
  ngAfterViewInit(): void;
@@ -6952,23 +6950,28 @@ type SuiModalHeaderVariant = 'info' | 'success' | 'warning' | 'error';
6952
6950
  * Figma file: 8p1k72aKKvzJV4XcvPS4VO
6953
6951
  * Component set: 466:4778 ("Modal Header [1.1]") — 6 Types × 2 Sizes
6954
6952
  * Types: Basic · Left Icon · Error · Warning · Success · Information
6955
- * Sizes: Medium (80, title 14/20 Medium + description 12/16) · Small (56, solo title)
6956
- *
6957
- * Componente STANDALONE para componer modales/paneles custom — el mismo header
6958
- * que sui-modal renderiza internamente, ahora como pieza independiente (igual
6959
- * que drawer-header/drawer-footer para drawers).
6960
- *
6961
- * EXACT (Figma 466:4777 medium / 472:298 small):
6962
- * Container bg white-0 · border-bottom stroke-soft-200 · flex gap-16
6963
- * (small: gap-12) · padding 16px 16px 16px 20px
6964
- * Title Inter Medium 14/20 ls -0.084px, text-strong-950
6965
- * Description Inter Regular 12/16, text-sub-600 (solo medium)
6966
- * Status icon círculo padding-10 radius-full, state lighter bg + base color
6967
- * (mismos tokens que sui-modal)
6968
- * Close compact button ghost (icon close-line 20), top-right
6969
- *
6970
- * Tipos: `iconVariant` (semántico) o `icon` (custom, tipo Left Icon).
6971
- * `icon` custom tiene prioridad; con ambos null → Basic (sin icono).
6953
+ * Sizes: Medium (min-height 80, title + description) ·
6954
+ * Small (min-height 56, título; icono FLAT 24 sin círculo)
6955
+ *
6956
+ * Es la ÚNICA fuente de verdad de la anatomía del header de modal: sui-modal
6957
+ * lo renderiza internamente y también se usa standalone para componer paneles
6958
+ * custom (par de sui-modal-footer).
6959
+ *
6960
+ * EXACT (Figma 466:4777 medium / 472:298 small — homologado con sui-modal):
6961
+ * Container flex align-center · padding 16px 56px 16px 20px (pr 56 reserva
6962
+ * el close absolute) · border-bottom stroke-soft-200 · bg white-0
6963
+ * · min-height 80 (small: 56) · gap 16 (small: 12; con icono: 14
6964
+ * en ambos sizes — cascade fix nodo "with-icon")
6965
+ * Title Label/Small (14/500/20/−0.006em), strong-950
6966
+ * Description Paragraph/X-Small (12/400/16), sub-600, margen-top 4
6967
+ * Status icon medium: círculo padding-10 radius-full state lighter/base,
6968
+ * icono 20 · small: flat 24 sin círculo (Figma "Small")
6969
+ * Close sui-compact-button ghost large, absolute top 16 right 16
6970
+ *
6971
+ * Tipos: `iconVariant` (semántico) o `icon` (custom, type Left Icon, círculo
6972
+ * neutral — prioridad). Ambos null → Basic.
6973
+ * `titleId`/`descriptionId` opcionales: ids para aria-labelledby/describedby
6974
+ * del dialog contenedor (los usa sui-modal).
6972
6975
  *
6973
6976
  * Usage:
6974
6977
  * <sui-modal-header title="Editar producto" description="Cambios en vivo."
@@ -6976,25 +6979,29 @@ type SuiModalHeaderVariant = 'info' | 'success' | 'warning' | 'error';
6976
6979
  * <sui-modal-header size="small" title="Filtros" (closed)="cerrar()" />
6977
6980
  */
6978
6981
  declare class SuiModalHeader {
6979
- /** Título del header (14/20 Medium). */
6982
+ /** Título del header (Label/Small). */
6980
6983
  readonly title: _angular_core.InputSignal<string>;
6981
- /** Descripción bajo el título (solo size medium). */
6984
+ /** Descripción bajo el título (Paragraph/X-Small). */
6982
6985
  readonly description: _angular_core.InputSignal<string | null>;
6983
- /** medium (80): title + description · small (56): solo title. */
6986
+ /** medium (80): título + descripción · small (56): título; icono flat 24. */
6984
6987
  readonly size: _angular_core.InputSignal<"small" | "medium">;
6985
- /** Icono semántico de status (círculo state lighter/base). */
6988
+ /** Icono semántico de status (círculo state lighter/base en medium). */
6986
6989
  readonly iconVariant: _angular_core.InputSignal<SuiModalHeaderVariant | null>;
6987
- /** Icono custom (tipo "Left Icon" de Figma). Prioridad sobre iconVariant. */
6990
+ /** Icono custom (type "Left Icon" de Figma). Prioridad sobre iconVariant. */
6988
6991
  readonly icon: _angular_core.InputSignal<string | null>;
6989
6992
  /** Muestra el botón de cerrar (default true). */
6990
6993
  readonly showClose: _angular_core.InputSignal<boolean>;
6994
+ /** id del h2 del título — para aria-labelledby del dialog contenedor. */
6995
+ readonly titleId: _angular_core.InputSignal<string | null>;
6996
+ /** id del p de la descripción — para aria-describedby del dialog contenedor. */
6997
+ readonly descriptionId: _angular_core.InputSignal<string | null>;
6991
6998
  /** Click en el botón de cerrar. */
6992
6999
  readonly closed: _angular_core.OutputEmitterRef<void>;
6993
7000
  protected readonly iconName: _angular_core.Signal<string | null>;
6994
7001
  /** Variant efectivo para el data-attr del círculo (custom icon = neutral). */
6995
7002
  protected readonly resolvedVariant: _angular_core.Signal<string | null>;
6996
7003
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiModalHeader, never>;
6997
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiModalHeader, "sui-modal-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconVariant": { "alias": "iconVariant"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, never, true, never>;
7004
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiModalHeader, "sui-modal-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "iconVariant": { "alias": "iconVariant"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; "titleId": { "alias": "titleId"; "required": false; "isSignal": true; }; "descriptionId": { "alias": "descriptionId"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, never, true, never>;
6998
7005
  }
6999
7006
 
7000
7007
  /**