@xsmusices/ui 1.44.6 → 1.44.8

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
@@ -121,7 +121,7 @@ interface XSItemData {
121
121
 
122
122
  declare class XSItemActionComponent {
123
123
  item: _angular_core.InputSignal<XSItemData>;
124
- size: _angular_core.InputSignal<"profile" | "small" | "normal">;
124
+ size: _angular_core.InputSignal<"small" | "normal" | "profile">;
125
125
  isLink: _angular_core.InputSignal<boolean>;
126
126
  showBorder: _angular_core.InputSignal<boolean>;
127
127
  rounded: _angular_core.InputSignal<boolean>;
@@ -1154,6 +1154,14 @@ type ExternalTranslateService = {
1154
1154
  declare class XSFilterPanelComponent implements OnInit {
1155
1155
  scrollContainer: _angular_core.Signal<ElementRef<any> | undefined>;
1156
1156
  show: _angular_core.ModelSignal<boolean>;
1157
+ /**
1158
+ * Modo embebido (Fase 1 App): el panel se presenta como contenido dentro
1159
+ * de un XSModal y NO pinta su propio overlay, hoja, cabecera ni gestiona
1160
+ * Escape/foco (lo hace el modal anfitrión). La lógica de grupos, tipos de
1161
+ * filtro y eventos se conserva intacta. Por defecto false: comportamiento
1162
+ * histórico sin cambios.
1163
+ */
1164
+ embedded: _angular_core.InputSignal<boolean>;
1157
1165
  externalTranslateService: _angular_core.InputSignal<ExternalTranslateService | undefined>;
1158
1166
  _demoItems: _angular_core.WritableSignal<XSFilterGroup[]>;
1159
1167
  _data: _angular_core.WritableSignal<XSFilterGroup[]>;
@@ -1209,7 +1217,7 @@ declare class XSFilterPanelComponent implements OnInit {
1209
1217
  handleClose(): void;
1210
1218
  handleApply(): void;
1211
1219
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<XSFilterPanelComponent, never>;
1212
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<XSFilterPanelComponent, "xs-filter-panel", never, { "show": { "alias": "show"; "required": false; "isSignal": true; }; "externalTranslateService": { "alias": "externalTranslateService"; "required": false; "isSignal": true; }; "demoItems": { "alias": "demoItems"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "activeFiltersCount": { "alias": "activeFiltersCount"; "required": false; "isSignal": true; }; }, { "show": "showChange"; "panelClose": "panelClose"; "applied": "applied"; "filterChange": "filterChange"; "clear": "clear"; }, never, never, true, never>;
1220
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<XSFilterPanelComponent, "xs-filter-panel", never, { "show": { "alias": "show"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; "externalTranslateService": { "alias": "externalTranslateService"; "required": false; "isSignal": true; }; "demoItems": { "alias": "demoItems"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "activeFiltersCount": { "alias": "activeFiltersCount"; "required": false; "isSignal": true; }; }, { "show": "showChange"; "panelClose": "panelClose"; "applied": "applied"; "filterChange": "filterChange"; "clear": "clear"; }, never, never, true, never>;
1213
1221
  }
1214
1222
 
1215
1223
  declare class XSSectionTitleComponent {
@@ -2041,7 +2049,7 @@ declare class XSButtonGroupService {
2041
2049
  declare class XSIconComponent {
2042
2050
  private library;
2043
2051
  icon: _angular_core.InputSignal<string | string[] | [IconPrefix, IconName] | _fortawesome_fontawesome_common_types.IconLookup>;
2044
- size: _angular_core.InputSignal<"sm" | "lg" | "normal" | "xs" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl">;
2052
+ size: _angular_core.InputSignal<"sm" | "normal" | "xs" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl">;
2045
2053
  class: _angular_core.InputSignal<string>;
2046
2054
  resolvedIcon: _angular_core.Signal<IconProp | IconDefinition>;
2047
2055
  isValidIcon: _angular_core.Signal<boolean>;
@@ -2302,9 +2310,9 @@ declare class XSImageComponent {
2302
2310
  alt: _angular_core.InputSignal<string | undefined>;
2303
2311
  width: _angular_core.InputSignal<string | number | undefined>;
2304
2312
  height: _angular_core.InputSignal<string | number | undefined>;
2305
- size: _angular_core.InputSignal<"sm" | "md" | "lg" | "xs" | "xl" | "2xl" | "full" | undefined>;
2306
- rounded: _angular_core.InputSignal<"none" | "sm" | "md" | "lg" | "xl" | "2xl" | "full" | "3xl" | undefined>;
2307
- objectFit: _angular_core.InputSignal<"fill" | "none" | "cover" | "contain" | "scale-down" | undefined>;
2313
+ size: _angular_core.InputSignal<"md" | "sm" | "xs" | "lg" | "xl" | "2xl" | "full" | undefined>;
2314
+ rounded: _angular_core.InputSignal<"md" | "sm" | "lg" | "xl" | "2xl" | "full" | "none" | "3xl" | undefined>;
2315
+ objectFit: _angular_core.InputSignal<"cover" | "fill" | "none" | "contain" | "scale-down" | undefined>;
2308
2316
  clickable: _angular_core.InputSignal<boolean | undefined>;
2309
2317
  item: _angular_core.InputSignal<XSImageItem | null | undefined>;
2310
2318
  typeItem: _angular_core.InputSignal<string | undefined>;
@@ -3199,9 +3207,9 @@ declare class XSListComponent {
3199
3207
  label: _angular_core.InputSignal<string | undefined>;
3200
3208
  loadingAll: _angular_core.InputSignal<boolean>;
3201
3209
  initialLoading: _angular_core.InputSignal<boolean>;
3202
- columns: _angular_core.InputSignal<3 | 1 | 2>;
3210
+ columns: _angular_core.InputSignal<1 | 2 | 3>;
3203
3211
  isLink: _angular_core.InputSignal<boolean>;
3204
- size: _angular_core.InputSignal<"profile" | "small" | "normal">;
3212
+ size: _angular_core.InputSignal<"small" | "normal" | "profile">;
3205
3213
  hasScroll: _angular_core.InputSignal<boolean | "lg" | "xl" | "mobile">;
3206
3214
  class: _angular_core.InputSignal<string | undefined>;
3207
3215
  rounded: _angular_core.InputSignal<boolean>;
@@ -3554,8 +3562,16 @@ declare class XSBodyOverflowService {
3554
3562
  private platformId;
3555
3563
  private documentService;
3556
3564
  private count;
3565
+ private locked;
3557
3566
  constructor(platformId: Object, documentService: XSDocumentService);
3558
- lock(): void;
3567
+ /**
3568
+ * Bloquea el scroll. Sin selector bloquea body (histórico).
3569
+ * Con selector CSS bloquea ese elemento ADEMÁS de body, restaurando
3570
+ * el valor previo exacto al desbloquear. Si el selector no existe,
3571
+ * solo se bloquea body. Contador para aperturas repetidas.
3572
+ */
3573
+ lock(selector?: string): void;
3574
+ private lockEl;
3559
3575
  unlock(): void;
3560
3576
  reset(): void;
3561
3577
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<XSBodyOverflowService, never>;
@@ -3588,6 +3604,30 @@ interface XSModalOptions {
3588
3604
  */
3589
3605
  hasOverflow?: boolean;
3590
3606
  closeOnBackdropClick?: boolean;
3607
+ /**
3608
+ * Selector CSS del contenedor de scroll a bloquear (p. ej. '#main-content'
3609
+ * en la App, cuyo scroll vive en ese elemento y no en body).
3610
+ * Por defecto se bloquea body (comportamiento histórico, Admin).
3611
+ * No acopla la librería a ningún selector: es solo una cadena opcional.
3612
+ */
3613
+ scrollLockSelector?: string;
3614
+ /**
3615
+ * Muestra una X de cierre en la cabecera. Por defecto false para no
3616
+ * alterar los modales actuales de Admin.
3617
+ */
3618
+ showCloseButton?: boolean;
3619
+ /** Etiqueta accesible de la X de cierre. Por defecto MODAL.CLOSE. */
3620
+ closeLabel?: string;
3621
+ /**
3622
+ * Padding del contenedor del panel. 'default' mantiene p-4,
3623
+ * 'none' lo elimina para layouts propios. Por defecto 'default'.
3624
+ */
3625
+ contentPadding?: 'default' | 'none';
3626
+ /**
3627
+ * Ancho del side-panel. 'xl' reproduce el comportamiento histórico
3628
+ * (sm:max-w-xl lg:max-w-2xl). Por defecto 'xl'.
3629
+ */
3630
+ panelSize?: 'sm' | 'md' | 'lg' | 'xl';
3591
3631
  }
3592
3632
  interface XSModalClaim {
3593
3633
  type?: XSModalType;
@@ -4996,7 +5036,7 @@ declare class XSSendScraperComponent implements OnInit {
4996
5036
  protected stepLabels: _angular_core.Signal<string[]>;
4997
5037
  protected showSourceSelection: _angular_core.Signal<boolean>;
4998
5038
  protected canSearch: _angular_core.Signal<boolean>;
4999
- protected primaryVariant: _angular_core.Signal<"soundcloud" | "youtube">;
5039
+ protected primaryVariant: _angular_core.Signal<"youtube" | "soundcloud">;
5000
5040
  protected activeFormFields: _angular_core.Signal<FormlyFieldConfig<_ngx_formly_core.FormlyFieldProps & {
5001
5041
  [additionalProperties: string]: any;
5002
5042
  }>[]>;
@@ -5128,6 +5168,7 @@ declare class XSModalComponent {
5128
5168
  private injector;
5129
5169
  private dynamicContentPlaceholder;
5130
5170
  private destroyRef;
5171
+ private hostRef;
5131
5172
  private translateService;
5132
5173
  private langVersion;
5133
5174
  private readonly platformId;
@@ -5144,13 +5185,19 @@ declare class XSModalComponent {
5144
5185
  buttons: _angular_core.WritableSignal<XSButtonI[]>;
5145
5186
  hasOverflow: boolean;
5146
5187
  closeOnBackdropClick: _angular_core.WritableSignal<boolean>;
5188
+ showCloseButton: _angular_core.WritableSignal<boolean>;
5189
+ closeLabel: _angular_core.WritableSignal<string>;
5190
+ contentPadding: _angular_core.WritableSignal<"default" | "none">;
5191
+ panelSize: _angular_core.WritableSignal<"md" | "sm" | "lg" | "xl">;
5147
5192
  onAction: Subject<unknown>;
5148
5193
  constructor();
5149
5194
  private destroyInjectedComponent;
5150
- injectComponent(componentType: Type<unknown>, data: unknown, type: XSModalType, title?: string, subTitle?: string, buttons?: XSButtonI[], _hasOverflow?: boolean, _closeOnBackdropClick?: boolean): void;
5195
+ injectComponent(componentType: Type<unknown>, data: unknown, type: XSModalType, title?: string, subTitle?: string, buttons?: XSButtonI[], _hasOverflow?: boolean, _closeOnBackdropClick?: boolean, _showCloseButton?: boolean, _closeLabel?: string, _contentPadding?: 'default' | 'none', _panelSize?: 'sm' | 'md' | 'lg' | 'xl'): void;
5151
5196
  handleButtonAction(action: string): void;
5152
5197
  onTabKey(event: KeyboardEvent): void;
5153
5198
  private getFocusableElements;
5199
+ /** Lleva el foco al panel o a su primer elemento enfocable. */
5200
+ private focusInitial;
5154
5201
  close(result?: unknown): void;
5155
5202
  onBackdropMouseDown(event: Event): void;
5156
5203
  onAnimationEnd(): void;
@@ -5596,7 +5643,7 @@ declare class XSItemTypeComponent {
5596
5643
  itemType: _angular_core.InputSignal<XSGenericItemType>;
5597
5644
  isLink: _angular_core.InputSignal<boolean>;
5598
5645
  showChevron: _angular_core.InputSignal<boolean>;
5599
- size: _angular_core.InputSignal<"profile" | "small" | "normal">;
5646
+ size: _angular_core.InputSignal<"small" | "normal" | "profile">;
5600
5647
  rounded: _angular_core.InputSignal<boolean>;
5601
5648
  loading: _angular_core.InputSignal<boolean>;
5602
5649
  readonly onClick: _angular_core.OutputEmitterRef<XSItemData>;
@@ -5608,7 +5655,7 @@ declare abstract class XSItemTypeBaseComponent {
5608
5655
  item: _angular_core.InputSignal<XSItemData>;
5609
5656
  isLink: _angular_core.InputSignal<boolean>;
5610
5657
  showChevron: _angular_core.InputSignal<boolean>;
5611
- size: _angular_core.InputSignal<"profile" | "small" | "normal">;
5658
+ size: _angular_core.InputSignal<"small" | "normal" | "profile">;
5612
5659
  rounded: _angular_core.InputSignal<boolean>;
5613
5660
  loading: _angular_core.InputSignal<boolean>;
5614
5661
  readonly onClick: _angular_core.OutputEmitterRef<XSItemData>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xsmusices/ui",
3
- "version": "1.44.6",
3
+ "version": "1.44.8",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/"
6
6
  },