@xsmusices/ui 1.42.0 → 1.43.1

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.
@@ -44,6 +44,12 @@ const story = {
44
44
  type: 'boolean',
45
45
  default: true,
46
46
  },
47
+ {
48
+ key: 'contextual',
49
+ label: 'Modo contextual (XS-770: oculta título y bandera)',
50
+ type: 'boolean',
51
+ default: false,
52
+ },
47
53
  {
48
54
  key: 'showMenu',
49
55
  label: 'Mostrar botón menú lateral',
@@ -180,8 +186,8 @@ const story = {
180
186
  },
181
187
  },
182
188
  {
183
- name: 'App: Navbar contextual de perfil (móvil)',
184
- description: 'XS-770: navbar compacta de perfil en móvil. El slot leading lleva la miniatura (32px) y mobileTitle/mobileSubtitle el nombre y el país. En desktop se muestra el título normal.',
189
+ name: 'App: Navbar contextual de perfil',
190
+ description: 'XS-770: navbar contextual de perfil en móvil y desktop. El slot leading lleva la identidad (miniatura 36px en móvil, 40px en desktop + nombre + país) y sustituye al título tradicional; la bandera se oculta mientras hay contexto.',
185
191
  inputs: {
186
192
  title: 'XSMusic',
187
193
  mobileTitle: 'Nombre del artista',
@@ -190,9 +196,13 @@ const story = {
190
196
  showLanguage: true,
191
197
  currentLang: 'es',
192
198
  },
193
- template: `<xs-navbar title="XSMusic" mobileTitle="Nombre del artista" mobileSubtitle="España" [showBack]="true" [showLanguage]="true" currentLang="es">
194
- <div leading>
195
- <img src="https://api-v2.xsmusic.es/uploads/artist/small/artist.webp" alt="Nombre del artista" class="w-8 h-8 rounded-xl object-cover" />
199
+ template: `<xs-navbar title="XSMusic" mobileTitle="Nombre del artista" mobileSubtitle="España" [contextual]="true" [showBack]="true" [showLanguage]="true" currentLang="es">
200
+ <div leading class="flex min-w-0 flex-1 items-center gap-2">
201
+ <img src="https://api-v2.xsmusic.es/uploads/artist/small/artist.webp" alt="Nombre del artista" class="h-9 w-9 flex-none rounded-xl object-cover lg:h-10 lg:w-10" />
202
+ <span class="flex min-w-0 flex-1 flex-col justify-center gap-[2px]">
203
+ <span class="truncate text-sm font-semibold leading-tight text-white lg:text-base">Nombre del artista</span>
204
+ <span class="truncate text-[11px] font-normal leading-none tracking-normal text-zinc-400">España</span>
205
+ </span>
196
206
  </div>
197
207
  </xs-navbar>`,
198
208
  },
@@ -200,4 +210,4 @@ const story = {
200
210
  };
201
211
 
202
212
  export { story };
203
- //# sourceMappingURL=xsmusices-ui-xs-navbar.xsstory-DZrnLMId.mjs.map
213
+ //# sourceMappingURL=xsmusices-ui-xs-navbar.xsstory-BDW0nLAH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xsmusices-ui-xs-navbar.xsstory-BDW0nLAH.mjs","sources":["../../../projects/xs-ui/src/lib/components/base/navbar/xs-navbar.xsstory.ts"],"sourcesContent":["import { StoryMeta } from '../../../story.types';\nimport { XSNavbarComponent } from './xs-navbar.component';\n\nexport const story: StoryMeta = {\n id: 'navbar',\n name: 'Navbar',\n type: 'component',\n subtype: 'Base',\n status: 'active',\n usage: ['app', 'admin'],\n updated: '2026-05-17T12:00:00.000Z',\n created: '2026-04-25T12:00:00.000Z',\n description:\n 'Barra de navegación superior reutilizable. Usada tanto en App (top bar con título + acciones) como en Admin (top bar + sidebar toggle).',\n component: XSNavbarComponent,\n selector: 'xs-navbar',\n inputs: [\n { key: 'title', label: 'Título', type: 'text', default: '' },\n {\n key: 'subtitle',\n label: 'Subtítulo',\n type: 'text',\n default: '',\n },\n {\n key: 'showBorder',\n label: 'Mostrar borde inferior',\n type: 'boolean',\n default: false,\n },\n {\n key: 'transparent',\n label: 'Fondo transparente',\n type: 'boolean',\n default: false,\n },\n {\n key: 'sticky',\n label: 'Encabezado sticky',\n type: 'boolean',\n default: true,\n },\n {\n key: 'showBack',\n label: 'Mostrar botón retroceso',\n type: 'boolean',\n default: true,\n },\n {\n key: 'contextual',\n label: 'Modo contextual (XS-770: oculta título y bandera)',\n type: 'boolean',\n default: false,\n },\n {\n key: 'showMenu',\n label: 'Mostrar botón menú lateral',\n type: 'boolean',\n default: false,\n },\n {\n key: 'menuIcon',\n label: 'Icono del botón menú',\n type: 'text',\n default: 'bars',\n },\n {\n key: 'showLanguage',\n label: 'Mostrar selector de idioma',\n type: 'boolean',\n default: true,\n },\n {\n key: 'showNotifications',\n label: 'Mostrar campanita notificaciones',\n type: 'boolean',\n default: false,\n },\n {\n key: 'hideEnvBadge',\n label: 'Ocultar badge de entorno (dev/uat)',\n type: 'boolean',\n default: false,\n },\n {\n key: 'currentLang',\n label: 'Idioma actual',\n type: 'select',\n options: ['es', 'en'],\n default: 'es',\n },\n ],\n slots: [\n {\n name: 'actions',\n description:\n 'Contenido proyectado en el lado derecho (botones, avatar, notificaciones)',\n },\n {\n name: 'leading',\n description:\n 'Contenido contextual junto al botón de retroceso, solo visible en móvil (XS-770: miniatura de perfil en navbars contextuales)',\n },\n {\n name: 'bottom',\n description:\n 'Contenido proyectado debajo de la barra principal (tabs, buscador)',\n },\n ],\n examples: [\n {\n name: 'App: Pantalla de inicio',\n description:\n 'Navbar usada en la app principal. Título \"XSMusic\", subtítulo, botón de retroceso, selector de idioma y campanita de notificaciones.',\n inputs: {\n title: 'XSMusic',\n subtitle: 'Descubre',\n showBack: true,\n showLanguage: true,\n showNotifications: true,\n currentLang: 'es',\n },\n },\n {\n name: 'App: Pantalla con tabs',\n description:\n 'Navbar en la app con contenido adicional en el slot bottom (tabs de navegación).',\n inputs: {\n title: 'XSMusic',\n subtitle: 'Artistas',\n showBack: true,\n showLanguage: true,\n showNotifications: true,\n currentLang: 'en',\n },\n template: `<xs-navbar title=\"XSMusic\" subtitle=\"Artistas\" [showBack]=\"true\" [showLanguage]=\"true\" [showNotifications]=\"true\" currentLang=\"en\">\n <div bottom>\n <div class=\"flex gap-4 text-sm text-zinc-400\">\n <span class=\"text-white font-semibold\">Todos</span>\n <span>Populares</span>\n <span>Nuevos</span>\n </div>\n </div>\n</xs-navbar>`,\n },\n {\n name: 'Admin: Dashboard',\n description:\n 'Navbar usada en el panel de administración. Sin retroceso, con botón de menú lateral (hamburguesa) para abrir el sidebar. Las acciones (búsqueda, perfil) van en el slot actions.',\n inputs: {\n title: 'XSADMIN',\n showBack: false,\n showMenu: true,\n menuIcon: 'bars',\n showLanguage: false,\n showNotifications: false,\n },\n },\n {\n name: 'Admin: Menú colapsado',\n description:\n 'Navbar en admin con el sidebar colapsado. El icono del menú cambia a \"chevron-right\" para indicar que se puede expandir.',\n inputs: {\n title: 'XSADMIN',\n showBack: false,\n showMenu: true,\n menuIcon: 'chevron-right',\n showLanguage: false,\n showNotifications: false,\n },\n },\n {\n name: 'Admin: Detalle con retroceso',\n description:\n 'Navbar en admin cuando se navega a una página de detalle. El botón de menú se reemplaza por el de retroceso.',\n inputs: {\n title: 'XSADMIN',\n subtitle: 'Editar Usuario',\n showBack: true,\n showMenu: false,\n showLanguage: false,\n showNotifications: false,\n },\n },\n {\n name: 'Transparente sin sticky',\n description:\n 'Navbar con fondo transparente y sin sticky, ideal para landing pages o perfiles.',\n inputs: {\n title: 'XSMusic',\n subtitle: 'Perfil',\n showBack: true,\n transparent: true,\n sticky: false,\n showLanguage: true,\n currentLang: 'es',\n },\n },\n {\n name: 'App: Navbar contextual de perfil',\n description:\n 'XS-770: navbar contextual de perfil en móvil y desktop. El slot leading lleva la identidad (miniatura 36px en móvil, 40px en desktop + nombre + país) y sustituye al título tradicional; la bandera se oculta mientras hay contexto.',\n inputs: {\n title: 'XSMusic',\n mobileTitle: 'Nombre del artista',\n mobileSubtitle: 'España',\n showBack: true,\n showLanguage: true,\n currentLang: 'es',\n },\n template: `<xs-navbar title=\"XSMusic\" mobileTitle=\"Nombre del artista\" mobileSubtitle=\"España\" [contextual]=\"true\" [showBack]=\"true\" [showLanguage]=\"true\" currentLang=\"es\">\n <div leading class=\"flex min-w-0 flex-1 items-center gap-2\">\n <img src=\"https://api-v2.xsmusic.es/uploads/artist/small/artist.webp\" alt=\"Nombre del artista\" class=\"h-9 w-9 flex-none rounded-xl object-cover lg:h-10 lg:w-10\" />\n <span class=\"flex min-w-0 flex-1 flex-col justify-center gap-[2px]\">\n <span class=\"truncate text-sm font-semibold leading-tight text-white lg:text-base\">Nombre del artista</span>\n <span class=\"truncate text-[11px] font-normal leading-none tracking-normal text-zinc-400\">España</span>\n </span>\n </div>\n</xs-navbar>`,\n },\n ],\n};\n"],"names":[],"mappings":"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"}
@@ -2720,8 +2720,8 @@ var PIPES$h = {
2720
2720
  medio: "Medio",
2721
2721
  medios: "Medios",
2722
2722
  music: "Música",
2723
- organization: "Organización",
2724
- organizations: "Organizaciones",
2723
+ organization: "Marca",
2724
+ organizations: "Marcas",
2725
2725
  playlist: "Playlist",
2726
2726
  playlists: "Playlists",
2727
2727
  podcast: "Podcast",
@@ -2815,8 +2815,8 @@ var PIPES$g = {
2815
2815
  medio: "Media",
2816
2816
  medios: "Media",
2817
2817
  music: "Music",
2818
- organization: "Organization",
2819
- organizations: "Organizations",
2818
+ organization: "Brand",
2819
+ organizations: "Brands",
2820
2820
  playlist: "Playlist",
2821
2821
  playlists: "Playlists",
2822
2822
  podcast: "Podcast",
@@ -2936,8 +2936,8 @@ const typeToValidType = (value) => {
2936
2936
  medio: 'Medio',
2937
2937
  medios: 'Medios',
2938
2938
  music: 'Musica',
2939
- organization: 'Organizacion',
2940
- organizations: 'Organizaciones',
2939
+ organization: 'Marca',
2940
+ organizations: 'Marcas',
2941
2941
  playlist: 'Playlist',
2942
2942
  playlists: 'Playlists',
2943
2943
  podcast: 'Podcast',
@@ -13840,7 +13840,7 @@ class XSImportMediaCardComponent {
13840
13840
  typeLabel = input('Tipo', ...(ngDevMode ? [{ debugName: "typeLabel" }] : []));
13841
13841
  yearLabelText = input('Año', ...(ngDevMode ? [{ debugName: "yearLabelText" }] : []));
13842
13842
  artistLabel = input('Artista', ...(ngDevMode ? [{ debugName: "artistLabel" }] : []));
13843
- organizationLabel = input('Organización', ...(ngDevMode ? [{ debugName: "organizationLabel" }] : []));
13843
+ organizationLabel = input('Marca', ...(ngDevMode ? [{ debugName: "organizationLabel" }] : []));
13844
13844
  infoLabel = input('Info', ...(ngDevMode ? [{ debugName: "infoLabel" }] : []));
13845
13845
  importedLabel = input('Ya importado', ...(ngDevMode ? [{ debugName: "importedLabel" }] : []));
13846
13846
  albumLabel = input('Álbum', ...(ngDevMode ? [{ debugName: "albumLabel" }] : []));
@@ -14065,7 +14065,7 @@ var IMPORT_MEDIA$1 = {
14065
14065
  URL_DESCRIPTION: "Si el artista tiene YouTube/SoundCloud en su perfil, se rellena solo",
14066
14066
  ARTIST_LABEL: "Artista",
14067
14067
  ARTIST_PLACEHOLDER: "Buscar artista...",
14068
- ARTISTS_LABEL: "Artistas / Organizaciones",
14068
+ ARTISTS_LABEL: "Artistas / Marcas",
14069
14069
  ARTISTS_PLACEHOLDER: "Buscar artistas...",
14070
14070
  ARTIST: "Artista",
14071
14071
  TYPE_LABEL: "Tipo",
@@ -14121,7 +14121,7 @@ var IMPORT_MEDIA$1 = {
14121
14121
  SITE_PLACEHOLDER: "Buscar sitio...",
14122
14122
  ORGANIZATION_LABEL: "Marca",
14123
14123
  ORGANIZATION_PLACEHOLDER: "Buscar marca...",
14124
- ORGANIZATION: "Organización",
14124
+ ORGANIZATION: "Marca",
14125
14125
  PROFILE_TYPE_LABEL: "Tipo de perfil",
14126
14126
  STYLES_LABEL: "Estilos",
14127
14127
  STYLES_PLACEHOLDER: "Buscar estilos...",
@@ -14134,7 +14134,7 @@ var IMPORT_MEDIA$1 = {
14134
14134
  INLINE_RADIOSHOW: "Radio Show",
14135
14135
  INLINE_YEAR: "Año",
14136
14136
  INLINE_ARTIST: "Artista",
14137
- INLINE_ORGANIZATION: "Organización",
14137
+ INLINE_ORGANIZATION: "Marca",
14138
14138
  INLINE_STYLES: "Estilos",
14139
14139
  INLINE_SITE: "Sitio",
14140
14140
  INLINE_INFO: "Info",
@@ -14187,7 +14187,7 @@ var IMPORT_MEDIA = {
14187
14187
  URL_DESCRIPTION: "Auto-fills from artist social links",
14188
14188
  ARTIST_LABEL: "Artist",
14189
14189
  ARTIST_PLACEHOLDER: "Search artist...",
14190
- ARTISTS_LABEL: "Artists / Organizations",
14190
+ ARTISTS_LABEL: "Artists / Brands",
14191
14191
  ARTISTS_PLACEHOLDER: "Search artists...",
14192
14192
  ARTIST: "Artist",
14193
14193
  TYPE_LABEL: "Type",
@@ -14243,7 +14243,7 @@ var IMPORT_MEDIA = {
14243
14243
  SITE_PLACEHOLDER: "Search site...",
14244
14244
  ORGANIZATION_LABEL: "Brand",
14245
14245
  ORGANIZATION_PLACEHOLDER: "Search brand...",
14246
- ORGANIZATION: "Organization",
14246
+ ORGANIZATION: "Brand",
14247
14247
  PROFILE_TYPE_LABEL: "Profile type",
14248
14248
  STYLES_LABEL: "Styles",
14249
14249
  STYLES_PLACEHOLDER: "Search styles...",
@@ -14256,7 +14256,7 @@ var IMPORT_MEDIA = {
14256
14256
  INLINE_RADIOSHOW: "Radio Show",
14257
14257
  INLINE_YEAR: "Year",
14258
14258
  INLINE_ARTIST: "Artist",
14259
- INLINE_ORGANIZATION: "Organization",
14259
+ INLINE_ORGANIZATION: "Brand",
14260
14260
  INLINE_STYLES: "Styles",
14261
14261
  INLINE_SITE: "Site",
14262
14262
  INLINE_INFO: "Info",
@@ -14521,7 +14521,7 @@ var REPLY_PLACEHOLDER$1 = "Escribe tu respuesta...";
14521
14521
  var TYPE_USER$1 = "Usuario";
14522
14522
  var TYPE_ARTIST$1 = "Artista";
14523
14523
  var TYPE_SITE$1 = "Sitio";
14524
- var TYPE_ORGANIZATION$1 = "Organización";
14524
+ var TYPE_ORGANIZATION$1 = "Marca";
14525
14525
  var TYPE_PROMOTER$1 = "Promotor";
14526
14526
  var TYPE_LABEL$1 = "Sello";
14527
14527
  var TYPE_VENUE$1 = "Recinto";
@@ -14592,7 +14592,7 @@ var REPLY_PLACEHOLDER = "Write your reply...";
14592
14592
  var TYPE_USER = "User";
14593
14593
  var TYPE_ARTIST = "Artist";
14594
14594
  var TYPE_SITE = "Site";
14595
- var TYPE_ORGANIZATION = "Organization";
14595
+ var TYPE_ORGANIZATION = "Brand";
14596
14596
  var TYPE_PROMOTER = "Promoter";
14597
14597
  var TYPE_LABEL = "Label";
14598
14598
  var TYPE_VENUE = "Venue";
@@ -16022,6 +16022,7 @@ class XSNavbarComponent {
16022
16022
  showBack = input(true, ...(ngDevMode ? [{ debugName: "showBack" }] : []));
16023
16023
  showMenu = input(false, ...(ngDevMode ? [{ debugName: "showMenu" }] : []));
16024
16024
  menuIcon = input('bars', ...(ngDevMode ? [{ debugName: "menuIcon" }] : []));
16025
+ contextual = input(false, ...(ngDevMode ? [{ debugName: "contextual" }] : []));
16025
16026
  showLanguage = input(true, ...(ngDevMode ? [{ debugName: "showLanguage" }] : []));
16026
16027
  showNotifications = input(false, ...(ngDevMode ? [{ debugName: "showNotifications" }] : []));
16027
16028
  showChat = input(false, ...(ngDevMode ? [{ debugName: "showChat" }] : []));
@@ -16080,7 +16081,7 @@ class XSNavbarComponent {
16080
16081
  this.translateService.setLanguage(newLang);
16081
16082
  }
16082
16083
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: XSNavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16083
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.33", type: XSNavbarComponent, isStandalone: true, selector: "xs-navbar", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, mobileTitle: { classPropertyName: "mobileTitle", publicName: "mobileTitle", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, mobileSubtitle: { classPropertyName: "mobileSubtitle", publicName: "mobileSubtitle", isSignal: true, isRequired: false, transformFunction: null }, showBorder: { classPropertyName: "showBorder", publicName: "showBorder", isSignal: true, isRequired: false, transformFunction: null }, transparent: { classPropertyName: "transparent", publicName: "transparent", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, showBack: { classPropertyName: "showBack", publicName: "showBack", isSignal: true, isRequired: false, transformFunction: null }, showMenu: { classPropertyName: "showMenu", publicName: "showMenu", isSignal: true, isRequired: false, transformFunction: null }, menuIcon: { classPropertyName: "menuIcon", publicName: "menuIcon", isSignal: true, isRequired: false, transformFunction: null }, showLanguage: { classPropertyName: "showLanguage", publicName: "showLanguage", isSignal: true, isRequired: false, transformFunction: null }, showNotifications: { classPropertyName: "showNotifications", publicName: "showNotifications", isSignal: true, isRequired: false, transformFunction: null }, showChat: { classPropertyName: "showChat", publicName: "showChat", isSignal: true, isRequired: false, transformFunction: null }, showImpersonation: { classPropertyName: "showImpersonation", publicName: "showImpersonation", isSignal: true, isRequired: false, transformFunction: null }, unreadChatMessages: { classPropertyName: "unreadChatMessages", publicName: "unreadChatMessages", isSignal: true, isRequired: false, transformFunction: null }, unreadNotifications: { classPropertyName: "unreadNotifications", publicName: "unreadNotifications", isSignal: true, isRequired: false, transformFunction: null }, homeRoute: { classPropertyName: "homeRoute", publicName: "homeRoute", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, hideEnvBadge: { classPropertyName: "hideEnvBadge", publicName: "hideEnvBadge", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: "back", menuToggle: "menuToggle", titleClick: "titleClick", notificationsClick: "notificationsClick", chatClick: "chatClick", impersonationClick: "impersonationClick" }, host: { attributes: { "role": "banner" }, properties: { "class.sticky": "sticky()", "class.top-0": "sticky()", "class.z-50": "sticky()" } }, queries: [{ propertyName: "bottomContent", first: true, predicate: ["[bottom]"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@if (!hidden()) {\n<header\n [class.bg-black/80]=\"!transparent()\"\n [class.backdrop-blur-xl]=\"!transparent()\"\n class=\"ease-in-out transition-all duration-300\"\n [attr.aria-label]=\"ariaLabel() || title()\"\n>\n <div\n class=\"mx-auto px-4 pt-3 pb-2\"\n [class.border-b]=\"showBorder()\"\n [class.border-white/5]=\"showBorder()\"\n [style.max-width]=\"maxWidth()\"\n >\n <div class=\"flex items-center justify-between gap-4 w-full\">\n <div class=\"flex items-center min-w-0 flex-1\">\n @if (showLeftButton) {\n <xs-button\n (onClick)=\"showBack() ? back.emit() : menuToggle.emit()\"\n [icon]=\"{ name: showBack() ? 'arrow-left' : (menuIcon()) }\"\n layout=\"iconOnlyHeader\"\n variant=\"custom\"\n customClass=\"flex-none p-2 -ml-2 text-zinc-400 hover:text-white active:scale-90 rounded-xl hover:bg-zinc-900/50\"\n [title]=\"showBack() ? t('GO_BACK') : t('OPEN_MENU')\"\n />\n }\n\n <div class=\"navbar-leading lg:hidden flex-none\">\n <ng-content select=\"[leading]\"></ng-content>\n </div>\n\n <div class=\"navbar-title-wrap flex flex-col min-w-0 flex-1\">\n <a\n [routerLink]=\"homeRoute()\"\n (click)=\"titleClick.emit()\"\n class=\"navbar-default-title inline-block text-2xl sm:text-3xl font-black tracking-[0.01em] text-white uppercase leading-none truncate transition-[letter-spacing_0.5s_ease-out,color_0.2s_ease] hover:tracking-[0.05em] hover:text-zinc-300 will-change-[letter-spacing] no-underline\"\n [attr.aria-label]=\"t('GO_TO') + ' ' + (homeRoute() || t('HOME'))\"\n >\n @if (mobileTitle()) {\n <span class=\"lg:hidden\">{{ mobileTitle() }}</span>\n <span class=\"hidden lg:inline\">{{ title() }}</span>\n } @else {\n {{ title() }}\n }\n </a>\n\n @if (subtitle()) {\n <div\n class=\"navbar-default-subtitle flex items-center gap-2 mt-1 animate-in fade-in slide-in-from-left-2 duration-500 min-w-0\"\n >\n <div\n class=\"text-zinc-400 text-[10px] font-black tracking-[0.2em] uppercase leading-none truncate\"\n >\n @if (mobileSubtitle()) {\n <span class=\"lg:hidden\">{{ mobileSubtitle() }}</span>\n <span class=\"hidden lg:inline\">{{ subtitle() }}</span>\n } @else {\n {{ subtitle() }}\n }\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"flex items-center justify-end gap-3 min-w-0\">\n <ng-content select=\"[actions]\"></ng-content>\n\n @if (envName !== 'prod' && !hideEnvBadge() && !isCapacitorNative) {\n <span\n class=\"hidden sm:flex flex-none items-center justify-center w-9 h-9 rounded-xl border text-[9px] font-black tracking-[0.1em] select-none\"\n [class.bg-amber-500/10]=\"envName === 'dev'\"\n [class.border-amber-500/20]=\"envName === 'dev'\"\n [class.text-amber-500]=\"envName === 'dev'\"\n [class.bg-orange-500/10]=\"envName === 'uat'\"\n [class.border-orange-500/20]=\"envName === 'uat'\"\n [class.text-orange-500]=\"envName === 'uat'\"\n [title]=\"envName\"\n >{{ envName }}</span>\n }\n\n @if (showChat()) {\n <button\n (click)=\"chatClick.emit()\"\n class=\"relative flex-none flex items-center justify-center w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('CHAT')\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"w-4 h-4\">\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12z\"/>\n </svg>\n @if (unreadChatMessages() > 0) {\n <span\n class=\"absolute -top-1 -right-1 min-w-[16px] h-4 px-1 bg-green-500 rounded-full text-[8px] font-bold text-white flex items-center justify-center\"\n [attr.aria-label]=\"unreadChatMessages() + ' ' + t('UNREAD_MESSAGES')\"\n >\n {{ unreadChatMessages() > 9 ? '9+' : unreadChatMessages() }}\n </span>\n }\n </button>\n }\n\n @if (showNotifications()) {\n <xs-button\n (onClick)=\"notificationsClick.emit()\"\n icon=\"bell\"\n layout=\"iconOnly\"\n variant=\"custom\"\n customClass=\"w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95\"\n [title]=\"t('NOTIFICATIONS')\"\n [badgeCount]=\"unreadNotifications()\"\n />\n }\n\n @if (showImpersonation()) {\n <button\n (click)=\"impersonationClick.emit()\"\n class=\"flex-none flex items-center justify-center w-9 h-9 bg-amber-500/10 rounded-xl border border-amber-500/20 hover:bg-amber-500/20 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('BACK_TO_ADMIN')\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"w-4 h-4 text-amber-500\">\n <path d=\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z\"/>\n </svg>\n </button>\n }\n\n @if (showLanguage()) {\n <button\n (click)=\"onToggleLang()\"\n class=\"flex-none flex items-center justify-center w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('SWITCH_LANG_TO') + ' ' + (langSignal() === 'es' ? t('ENGLISH') : t('SPANISH'))\"\n >\n <img\n [src]=\"\n langSignal() === 'es'\n ? ('es' | countryFlag)\n : ('us' | countryFlag)\n \"\n class=\"w-4 h-3 object-cover rounded-[1px] shadow-sm\"\n [alt]=\"langSignal() === 'es' ? t('SPANISH') : t('ENGLISH')\"\n />\n </button>\n }\n </div>\n </div>\n\n @if (hasBottom) {\n <div\n class=\"mt-6 animate-in fade-in slide-in-from-top-2 duration-700\"\n >\n <ng-content select=\"[bottom]\"></ng-content>\n </div>\n }\n </div>\n</header>\n}\n", styles: [":host{display:block;width:100%}:host(.sticky){position:sticky}header{-webkit-backdrop-filter:blur(20px)}button:focus-visible{outline:2px solid rgb(113 113 122);outline-offset:2px}@media(max-width:1023.98px){.navbar-leading:has(>*)+.navbar-title-wrap .navbar-default-title{font-size:1rem;line-height:1.25rem;letter-spacing:.01em}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: XSButtonComponent, selector: "xs-button", inputs: ["id", "label", "type", "icon", "action", "customClass", "variant", "layout", "badgeCount", "isFull", "disabled", "loading", "title", "ariaLabel", "borderRadius", "isGrouped", "groupPosition"], outputs: ["isGroupedChange", "groupPositionChange", "click", "onClick"] }, { kind: "pipe", type: CountryFlagPipe, name: "countryFlag" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16084
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.33", type: XSNavbarComponent, isStandalone: true, selector: "xs-navbar", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, mobileTitle: { classPropertyName: "mobileTitle", publicName: "mobileTitle", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, mobileSubtitle: { classPropertyName: "mobileSubtitle", publicName: "mobileSubtitle", isSignal: true, isRequired: false, transformFunction: null }, showBorder: { classPropertyName: "showBorder", publicName: "showBorder", isSignal: true, isRequired: false, transformFunction: null }, transparent: { classPropertyName: "transparent", publicName: "transparent", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, showBack: { classPropertyName: "showBack", publicName: "showBack", isSignal: true, isRequired: false, transformFunction: null }, showMenu: { classPropertyName: "showMenu", publicName: "showMenu", isSignal: true, isRequired: false, transformFunction: null }, menuIcon: { classPropertyName: "menuIcon", publicName: "menuIcon", isSignal: true, isRequired: false, transformFunction: null }, contextual: { classPropertyName: "contextual", publicName: "contextual", isSignal: true, isRequired: false, transformFunction: null }, showLanguage: { classPropertyName: "showLanguage", publicName: "showLanguage", isSignal: true, isRequired: false, transformFunction: null }, showNotifications: { classPropertyName: "showNotifications", publicName: "showNotifications", isSignal: true, isRequired: false, transformFunction: null }, showChat: { classPropertyName: "showChat", publicName: "showChat", isSignal: true, isRequired: false, transformFunction: null }, showImpersonation: { classPropertyName: "showImpersonation", publicName: "showImpersonation", isSignal: true, isRequired: false, transformFunction: null }, unreadChatMessages: { classPropertyName: "unreadChatMessages", publicName: "unreadChatMessages", isSignal: true, isRequired: false, transformFunction: null }, unreadNotifications: { classPropertyName: "unreadNotifications", publicName: "unreadNotifications", isSignal: true, isRequired: false, transformFunction: null }, homeRoute: { classPropertyName: "homeRoute", publicName: "homeRoute", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, hideEnvBadge: { classPropertyName: "hideEnvBadge", publicName: "hideEnvBadge", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: "back", menuToggle: "menuToggle", titleClick: "titleClick", notificationsClick: "notificationsClick", chatClick: "chatClick", impersonationClick: "impersonationClick" }, host: { attributes: { "role": "banner" }, properties: { "class.sticky": "sticky()", "class.top-0": "sticky()", "class.z-50": "sticky()", "class.navbar-contextual": "contextual()" } }, queries: [{ propertyName: "bottomContent", first: true, predicate: ["[bottom]"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@if (!hidden()) {\n<header\n [class.bg-black/80]=\"!transparent()\"\n [class.backdrop-blur-xl]=\"!transparent()\"\n class=\"ease-in-out transition-all duration-300\"\n [attr.aria-label]=\"ariaLabel() || title()\"\n>\n <div\n class=\"mx-auto px-4 pt-3 pb-2\"\n [class.border-b]=\"showBorder()\"\n [class.border-white/5]=\"showBorder()\"\n [style.max-width]=\"maxWidth()\"\n >\n <div class=\"flex items-center justify-between gap-4 w-full\">\n <div class=\"navbar-left flex items-center min-w-0 flex-1\">\n @if (showLeftButton) {\n <xs-button\n (onClick)=\"showBack() ? back.emit() : menuToggle.emit()\"\n [icon]=\"{ name: showBack() ? 'arrow-left' : (menuIcon()) }\"\n layout=\"iconOnlyHeader\"\n variant=\"custom\"\n customClass=\"flex-none p-2 -ml-2 text-zinc-400 hover:text-white active:scale-90 rounded-xl hover:bg-zinc-900/50\"\n [title]=\"showBack() ? t('GO_BACK') : t('OPEN_MENU')\"\n />\n }\n\n <div class=\"navbar-leading flex-none\">\n <ng-content select=\"[leading]\"></ng-content>\n </div>\n\n <div class=\"navbar-title-wrap flex flex-col min-w-0 flex-1\">\n <a\n [routerLink]=\"homeRoute()\"\n (click)=\"titleClick.emit()\"\n class=\"navbar-default-title inline-block text-2xl sm:text-3xl font-black tracking-[0.01em] text-white uppercase leading-none truncate transition-[letter-spacing_0.5s_ease-out,color_0.2s_ease] hover:tracking-[0.05em] hover:text-zinc-300 will-change-[letter-spacing] no-underline\"\n [attr.aria-label]=\"t('GO_TO') + ' ' + (homeRoute() || t('HOME'))\"\n >\n @if (mobileTitle()) {\n <span class=\"lg:hidden\">{{ mobileTitle() }}</span>\n <span class=\"hidden lg:inline\">{{ title() }}</span>\n } @else {\n {{ title() }}\n }\n </a>\n\n @if (subtitle()) {\n <div\n class=\"navbar-default-subtitle flex items-center gap-2 mt-1 animate-in fade-in slide-in-from-left-2 duration-500 min-w-0\"\n >\n <div\n class=\"text-zinc-400 text-[10px] font-black tracking-[0.2em] uppercase leading-none truncate\"\n >\n @if (mobileSubtitle()) {\n <span class=\"lg:hidden\">{{ mobileSubtitle() }}</span>\n <span class=\"hidden lg:inline\">{{ subtitle() }}</span>\n } @else {\n {{ subtitle() }}\n }\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"navbar-right flex items-center justify-end gap-3 min-w-0\">\n <ng-content select=\"[actions]\"></ng-content>\n\n @if (envName !== 'prod' && !hideEnvBadge() && !isCapacitorNative) {\n <span\n class=\"hidden sm:flex flex-none items-center justify-center w-9 h-9 rounded-xl border text-[9px] font-black tracking-[0.1em] select-none\"\n [class.bg-amber-500/10]=\"envName === 'dev'\"\n [class.border-amber-500/20]=\"envName === 'dev'\"\n [class.text-amber-500]=\"envName === 'dev'\"\n [class.bg-orange-500/10]=\"envName === 'uat'\"\n [class.border-orange-500/20]=\"envName === 'uat'\"\n [class.text-orange-500]=\"envName === 'uat'\"\n [title]=\"envName\"\n >{{ envName }}</span>\n }\n\n @if (showChat()) {\n <button\n (click)=\"chatClick.emit()\"\n class=\"relative flex-none flex items-center justify-center w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('CHAT')\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"w-4 h-4\">\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12z\"/>\n </svg>\n @if (unreadChatMessages() > 0) {\n <span\n class=\"absolute -top-1 -right-1 min-w-[16px] h-4 px-1 bg-green-500 rounded-full text-[8px] font-bold text-white flex items-center justify-center\"\n [attr.aria-label]=\"unreadChatMessages() + ' ' + t('UNREAD_MESSAGES')\"\n >\n {{ unreadChatMessages() > 9 ? '9+' : unreadChatMessages() }}\n </span>\n }\n </button>\n }\n\n @if (showNotifications()) {\n <xs-button\n (onClick)=\"notificationsClick.emit()\"\n icon=\"bell\"\n layout=\"iconOnly\"\n variant=\"custom\"\n customClass=\"w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95\"\n [title]=\"t('NOTIFICATIONS')\"\n [badgeCount]=\"unreadNotifications()\"\n />\n }\n\n @if (showImpersonation()) {\n <button\n (click)=\"impersonationClick.emit()\"\n class=\"flex-none flex items-center justify-center w-9 h-9 bg-amber-500/10 rounded-xl border border-amber-500/20 hover:bg-amber-500/20 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('BACK_TO_ADMIN')\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"w-4 h-4 text-amber-500\">\n <path d=\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z\"/>\n </svg>\n </button>\n }\n\n @if (showLanguage()) {\n <button\n (click)=\"onToggleLang()\"\n class=\"navbar-lang flex-none flex items-center justify-center w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('SWITCH_LANG_TO') + ' ' + (langSignal() === 'es' ? t('ENGLISH') : t('SPANISH'))\"\n >\n <img\n [src]=\"\n langSignal() === 'es'\n ? ('es' | countryFlag)\n : ('us' | countryFlag)\n \"\n class=\"w-4 h-3 object-cover rounded-[1px] shadow-sm\"\n [alt]=\"langSignal() === 'es' ? t('SPANISH') : t('ENGLISH')\"\n />\n </button>\n }\n </div>\n </div>\n\n @if (hasBottom) {\n <div\n class=\"mt-6 animate-in fade-in slide-in-from-top-2 duration-700\"\n >\n <ng-content select=\"[bottom]\"></ng-content>\n </div>\n }\n </div>\n</header>\n}\n", styles: [":host{display:block;width:100%}:host(.sticky){position:sticky}header{-webkit-backdrop-filter:blur(20px)}button:focus-visible{outline:2px solid rgb(113 113 122);outline-offset:2px}.navbar-leading:has(>*){margin-left:4px}:host(.navbar-contextual) .navbar-title-wrap{display:none}:host(.navbar-contextual) .navbar-lang{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: XSButtonComponent, selector: "xs-button", inputs: ["id", "label", "type", "icon", "action", "customClass", "variant", "layout", "badgeCount", "isFull", "disabled", "loading", "title", "ariaLabel", "borderRadius", "isGrouped", "groupPosition"], outputs: ["isGroupedChange", "groupPositionChange", "click", "onClick"] }, { kind: "pipe", type: CountryFlagPipe, name: "countryFlag" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16084
16085
  }
16085
16086
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: XSNavbarComponent, decorators: [{
16086
16087
  type: Component,
@@ -16094,8 +16095,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
16094
16095
  '[class.sticky]': 'sticky()',
16095
16096
  '[class.top-0]': 'sticky()',
16096
16097
  '[class.z-50]': 'sticky()',
16097
- }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!hidden()) {\n<header\n [class.bg-black/80]=\"!transparent()\"\n [class.backdrop-blur-xl]=\"!transparent()\"\n class=\"ease-in-out transition-all duration-300\"\n [attr.aria-label]=\"ariaLabel() || title()\"\n>\n <div\n class=\"mx-auto px-4 pt-3 pb-2\"\n [class.border-b]=\"showBorder()\"\n [class.border-white/5]=\"showBorder()\"\n [style.max-width]=\"maxWidth()\"\n >\n <div class=\"flex items-center justify-between gap-4 w-full\">\n <div class=\"flex items-center min-w-0 flex-1\">\n @if (showLeftButton) {\n <xs-button\n (onClick)=\"showBack() ? back.emit() : menuToggle.emit()\"\n [icon]=\"{ name: showBack() ? 'arrow-left' : (menuIcon()) }\"\n layout=\"iconOnlyHeader\"\n variant=\"custom\"\n customClass=\"flex-none p-2 -ml-2 text-zinc-400 hover:text-white active:scale-90 rounded-xl hover:bg-zinc-900/50\"\n [title]=\"showBack() ? t('GO_BACK') : t('OPEN_MENU')\"\n />\n }\n\n <div class=\"navbar-leading lg:hidden flex-none\">\n <ng-content select=\"[leading]\"></ng-content>\n </div>\n\n <div class=\"navbar-title-wrap flex flex-col min-w-0 flex-1\">\n <a\n [routerLink]=\"homeRoute()\"\n (click)=\"titleClick.emit()\"\n class=\"navbar-default-title inline-block text-2xl sm:text-3xl font-black tracking-[0.01em] text-white uppercase leading-none truncate transition-[letter-spacing_0.5s_ease-out,color_0.2s_ease] hover:tracking-[0.05em] hover:text-zinc-300 will-change-[letter-spacing] no-underline\"\n [attr.aria-label]=\"t('GO_TO') + ' ' + (homeRoute() || t('HOME'))\"\n >\n @if (mobileTitle()) {\n <span class=\"lg:hidden\">{{ mobileTitle() }}</span>\n <span class=\"hidden lg:inline\">{{ title() }}</span>\n } @else {\n {{ title() }}\n }\n </a>\n\n @if (subtitle()) {\n <div\n class=\"navbar-default-subtitle flex items-center gap-2 mt-1 animate-in fade-in slide-in-from-left-2 duration-500 min-w-0\"\n >\n <div\n class=\"text-zinc-400 text-[10px] font-black tracking-[0.2em] uppercase leading-none truncate\"\n >\n @if (mobileSubtitle()) {\n <span class=\"lg:hidden\">{{ mobileSubtitle() }}</span>\n <span class=\"hidden lg:inline\">{{ subtitle() }}</span>\n } @else {\n {{ subtitle() }}\n }\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"flex items-center justify-end gap-3 min-w-0\">\n <ng-content select=\"[actions]\"></ng-content>\n\n @if (envName !== 'prod' && !hideEnvBadge() && !isCapacitorNative) {\n <span\n class=\"hidden sm:flex flex-none items-center justify-center w-9 h-9 rounded-xl border text-[9px] font-black tracking-[0.1em] select-none\"\n [class.bg-amber-500/10]=\"envName === 'dev'\"\n [class.border-amber-500/20]=\"envName === 'dev'\"\n [class.text-amber-500]=\"envName === 'dev'\"\n [class.bg-orange-500/10]=\"envName === 'uat'\"\n [class.border-orange-500/20]=\"envName === 'uat'\"\n [class.text-orange-500]=\"envName === 'uat'\"\n [title]=\"envName\"\n >{{ envName }}</span>\n }\n\n @if (showChat()) {\n <button\n (click)=\"chatClick.emit()\"\n class=\"relative flex-none flex items-center justify-center w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('CHAT')\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"w-4 h-4\">\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12z\"/>\n </svg>\n @if (unreadChatMessages() > 0) {\n <span\n class=\"absolute -top-1 -right-1 min-w-[16px] h-4 px-1 bg-green-500 rounded-full text-[8px] font-bold text-white flex items-center justify-center\"\n [attr.aria-label]=\"unreadChatMessages() + ' ' + t('UNREAD_MESSAGES')\"\n >\n {{ unreadChatMessages() > 9 ? '9+' : unreadChatMessages() }}\n </span>\n }\n </button>\n }\n\n @if (showNotifications()) {\n <xs-button\n (onClick)=\"notificationsClick.emit()\"\n icon=\"bell\"\n layout=\"iconOnly\"\n variant=\"custom\"\n customClass=\"w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95\"\n [title]=\"t('NOTIFICATIONS')\"\n [badgeCount]=\"unreadNotifications()\"\n />\n }\n\n @if (showImpersonation()) {\n <button\n (click)=\"impersonationClick.emit()\"\n class=\"flex-none flex items-center justify-center w-9 h-9 bg-amber-500/10 rounded-xl border border-amber-500/20 hover:bg-amber-500/20 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('BACK_TO_ADMIN')\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"w-4 h-4 text-amber-500\">\n <path d=\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z\"/>\n </svg>\n </button>\n }\n\n @if (showLanguage()) {\n <button\n (click)=\"onToggleLang()\"\n class=\"flex-none flex items-center justify-center w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('SWITCH_LANG_TO') + ' ' + (langSignal() === 'es' ? t('ENGLISH') : t('SPANISH'))\"\n >\n <img\n [src]=\"\n langSignal() === 'es'\n ? ('es' | countryFlag)\n : ('us' | countryFlag)\n \"\n class=\"w-4 h-3 object-cover rounded-[1px] shadow-sm\"\n [alt]=\"langSignal() === 'es' ? t('SPANISH') : t('ENGLISH')\"\n />\n </button>\n }\n </div>\n </div>\n\n @if (hasBottom) {\n <div\n class=\"mt-6 animate-in fade-in slide-in-from-top-2 duration-700\"\n >\n <ng-content select=\"[bottom]\"></ng-content>\n </div>\n }\n </div>\n</header>\n}\n", styles: [":host{display:block;width:100%}:host(.sticky){position:sticky}header{-webkit-backdrop-filter:blur(20px)}button:focus-visible{outline:2px solid rgb(113 113 122);outline-offset:2px}@media(max-width:1023.98px){.navbar-leading:has(>*)+.navbar-title-wrap .navbar-default-title{font-size:1rem;line-height:1.25rem;letter-spacing:.01em}}\n"] }]
16098
- }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], mobileTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileTitle", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], mobileSubtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileSubtitle", required: false }] }], showBorder: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBorder", required: false }] }], transparent: [{ type: i0.Input, args: [{ isSignal: true, alias: "transparent", required: false }] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], showBack: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBack", required: false }] }], showMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMenu", required: false }] }], menuIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuIcon", required: false }] }], showLanguage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLanguage", required: false }] }], showNotifications: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNotifications", required: false }] }], showChat: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChat", required: false }] }], showImpersonation: [{ type: i0.Input, args: [{ isSignal: true, alias: "showImpersonation", required: false }] }], unreadChatMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "unreadChatMessages", required: false }] }], unreadNotifications: [{ type: i0.Input, args: [{ isSignal: true, alias: "unreadNotifications", required: false }] }], homeRoute: [{ type: i0.Input, args: [{ isSignal: true, alias: "homeRoute", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }], hideEnvBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideEnvBadge", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], back: [{ type: i0.Output, args: ["back"] }], menuToggle: [{ type: i0.Output, args: ["menuToggle"] }], titleClick: [{ type: i0.Output, args: ["titleClick"] }], notificationsClick: [{ type: i0.Output, args: ["notificationsClick"] }], chatClick: [{ type: i0.Output, args: ["chatClick"] }], impersonationClick: [{ type: i0.Output, args: ["impersonationClick"] }], bottomContent: [{ type: i0.ContentChild, args: ['[bottom]', { ...{
16098
+ '[class.navbar-contextual]': 'contextual()',
16099
+ }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!hidden()) {\n<header\n [class.bg-black/80]=\"!transparent()\"\n [class.backdrop-blur-xl]=\"!transparent()\"\n class=\"ease-in-out transition-all duration-300\"\n [attr.aria-label]=\"ariaLabel() || title()\"\n>\n <div\n class=\"mx-auto px-4 pt-3 pb-2\"\n [class.border-b]=\"showBorder()\"\n [class.border-white/5]=\"showBorder()\"\n [style.max-width]=\"maxWidth()\"\n >\n <div class=\"flex items-center justify-between gap-4 w-full\">\n <div class=\"navbar-left flex items-center min-w-0 flex-1\">\n @if (showLeftButton) {\n <xs-button\n (onClick)=\"showBack() ? back.emit() : menuToggle.emit()\"\n [icon]=\"{ name: showBack() ? 'arrow-left' : (menuIcon()) }\"\n layout=\"iconOnlyHeader\"\n variant=\"custom\"\n customClass=\"flex-none p-2 -ml-2 text-zinc-400 hover:text-white active:scale-90 rounded-xl hover:bg-zinc-900/50\"\n [title]=\"showBack() ? t('GO_BACK') : t('OPEN_MENU')\"\n />\n }\n\n <div class=\"navbar-leading flex-none\">\n <ng-content select=\"[leading]\"></ng-content>\n </div>\n\n <div class=\"navbar-title-wrap flex flex-col min-w-0 flex-1\">\n <a\n [routerLink]=\"homeRoute()\"\n (click)=\"titleClick.emit()\"\n class=\"navbar-default-title inline-block text-2xl sm:text-3xl font-black tracking-[0.01em] text-white uppercase leading-none truncate transition-[letter-spacing_0.5s_ease-out,color_0.2s_ease] hover:tracking-[0.05em] hover:text-zinc-300 will-change-[letter-spacing] no-underline\"\n [attr.aria-label]=\"t('GO_TO') + ' ' + (homeRoute() || t('HOME'))\"\n >\n @if (mobileTitle()) {\n <span class=\"lg:hidden\">{{ mobileTitle() }}</span>\n <span class=\"hidden lg:inline\">{{ title() }}</span>\n } @else {\n {{ title() }}\n }\n </a>\n\n @if (subtitle()) {\n <div\n class=\"navbar-default-subtitle flex items-center gap-2 mt-1 animate-in fade-in slide-in-from-left-2 duration-500 min-w-0\"\n >\n <div\n class=\"text-zinc-400 text-[10px] font-black tracking-[0.2em] uppercase leading-none truncate\"\n >\n @if (mobileSubtitle()) {\n <span class=\"lg:hidden\">{{ mobileSubtitle() }}</span>\n <span class=\"hidden lg:inline\">{{ subtitle() }}</span>\n } @else {\n {{ subtitle() }}\n }\n </div>\n </div>\n }\n </div>\n </div>\n\n <div class=\"navbar-right flex items-center justify-end gap-3 min-w-0\">\n <ng-content select=\"[actions]\"></ng-content>\n\n @if (envName !== 'prod' && !hideEnvBadge() && !isCapacitorNative) {\n <span\n class=\"hidden sm:flex flex-none items-center justify-center w-9 h-9 rounded-xl border text-[9px] font-black tracking-[0.1em] select-none\"\n [class.bg-amber-500/10]=\"envName === 'dev'\"\n [class.border-amber-500/20]=\"envName === 'dev'\"\n [class.text-amber-500]=\"envName === 'dev'\"\n [class.bg-orange-500/10]=\"envName === 'uat'\"\n [class.border-orange-500/20]=\"envName === 'uat'\"\n [class.text-orange-500]=\"envName === 'uat'\"\n [title]=\"envName\"\n >{{ envName }}</span>\n }\n\n @if (showChat()) {\n <button\n (click)=\"chatClick.emit()\"\n class=\"relative flex-none flex items-center justify-center w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('CHAT')\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"w-4 h-4\">\n <path d=\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12z\"/>\n </svg>\n @if (unreadChatMessages() > 0) {\n <span\n class=\"absolute -top-1 -right-1 min-w-[16px] h-4 px-1 bg-green-500 rounded-full text-[8px] font-bold text-white flex items-center justify-center\"\n [attr.aria-label]=\"unreadChatMessages() + ' ' + t('UNREAD_MESSAGES')\"\n >\n {{ unreadChatMessages() > 9 ? '9+' : unreadChatMessages() }}\n </span>\n }\n </button>\n }\n\n @if (showNotifications()) {\n <xs-button\n (onClick)=\"notificationsClick.emit()\"\n icon=\"bell\"\n layout=\"iconOnly\"\n variant=\"custom\"\n customClass=\"w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95\"\n [title]=\"t('NOTIFICATIONS')\"\n [badgeCount]=\"unreadNotifications()\"\n />\n }\n\n @if (showImpersonation()) {\n <button\n (click)=\"impersonationClick.emit()\"\n class=\"flex-none flex items-center justify-center w-9 h-9 bg-amber-500/10 rounded-xl border border-amber-500/20 hover:bg-amber-500/20 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('BACK_TO_ADMIN')\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" class=\"w-4 h-4 text-amber-500\">\n <path d=\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z\"/>\n </svg>\n </button>\n }\n\n @if (showLanguage()) {\n <button\n (click)=\"onToggleLang()\"\n class=\"navbar-lang flex-none flex items-center justify-center w-9 h-9 bg-zinc-900/40 rounded-xl border border-white/5 hover:bg-zinc-800 active:scale-95 transition-all\"\n type=\"button\"\n [attr.aria-label]=\"t('SWITCH_LANG_TO') + ' ' + (langSignal() === 'es' ? t('ENGLISH') : t('SPANISH'))\"\n >\n <img\n [src]=\"\n langSignal() === 'es'\n ? ('es' | countryFlag)\n : ('us' | countryFlag)\n \"\n class=\"w-4 h-3 object-cover rounded-[1px] shadow-sm\"\n [alt]=\"langSignal() === 'es' ? t('SPANISH') : t('ENGLISH')\"\n />\n </button>\n }\n </div>\n </div>\n\n @if (hasBottom) {\n <div\n class=\"mt-6 animate-in fade-in slide-in-from-top-2 duration-700\"\n >\n <ng-content select=\"[bottom]\"></ng-content>\n </div>\n }\n </div>\n</header>\n}\n", styles: [":host{display:block;width:100%}:host(.sticky){position:sticky}header{-webkit-backdrop-filter:blur(20px)}button:focus-visible{outline:2px solid rgb(113 113 122);outline-offset:2px}.navbar-leading:has(>*){margin-left:4px}:host(.navbar-contextual) .navbar-title-wrap{display:none}:host(.navbar-contextual) .navbar-lang{display:none}\n"] }]
16100
+ }], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], mobileTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileTitle", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], mobileSubtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileSubtitle", required: false }] }], showBorder: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBorder", required: false }] }], transparent: [{ type: i0.Input, args: [{ isSignal: true, alias: "transparent", required: false }] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], showBack: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBack", required: false }] }], showMenu: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMenu", required: false }] }], menuIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuIcon", required: false }] }], contextual: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextual", required: false }] }], showLanguage: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLanguage", required: false }] }], showNotifications: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNotifications", required: false }] }], showChat: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChat", required: false }] }], showImpersonation: [{ type: i0.Input, args: [{ isSignal: true, alias: "showImpersonation", required: false }] }], unreadChatMessages: [{ type: i0.Input, args: [{ isSignal: true, alias: "unreadChatMessages", required: false }] }], unreadNotifications: [{ type: i0.Input, args: [{ isSignal: true, alias: "unreadNotifications", required: false }] }], homeRoute: [{ type: i0.Input, args: [{ isSignal: true, alias: "homeRoute", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }], hideEnvBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideEnvBadge", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], back: [{ type: i0.Output, args: ["back"] }], menuToggle: [{ type: i0.Output, args: ["menuToggle"] }], titleClick: [{ type: i0.Output, args: ["titleClick"] }], notificationsClick: [{ type: i0.Output, args: ["notificationsClick"] }], chatClick: [{ type: i0.Output, args: ["chatClick"] }], impersonationClick: [{ type: i0.Output, args: ["impersonationClick"] }], bottomContent: [{ type: i0.ContentChild, args: ['[bottom]', { ...{
16099
16101
  read: ElementRef,
16100
16102
  }, isSignal: true }] }] } });
16101
16103
 
@@ -17170,7 +17172,7 @@ class XSItemTypeOrganizationComponent extends XSItemTypeBaseComponent {
17170
17172
  return this.item()?.['unit'];
17171
17173
  }
17172
17174
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: XSItemTypeOrganizationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
17173
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.33", type: XSItemTypeOrganizationComponent, isStandalone: true, selector: "xs-item-type-organization", host: { attributes: { "xs-item-type-organization-host": "" } }, usesInheritance: true, ngImport: i0, template: "\n @if (isLink()) {\n <a\n [class]=\"itemClasses\"\n (click)=\"handleClick($event)\"\n >\n <div class=\"flex items-center justify-between w-full\">\n <div class=\"flex items-center flex-1 min-w-0 gap-2\">\n <div\n class=\"flex-shrink-0 w-10 h-10 overflow-hidden rounded-xl\"\n [ngClass]=\"[\n size() === 'small' ? 'w-8 h-8' : 'w-10 h-10 mr-1',\n ]\"\n >\n @if (!getItemImageUrl()) {\n <xs-image\n [src]=\"item() | imageApi: 'organization' : 'small'\"\n size=\"full\"\n objectFit=\"cover\"\n ></xs-image>\n }\n @if (getItemImageUrl()) {\n <xs-image\n [src]=\"getItemImageUrl()\"\n size=\"full\"\n objectFit=\"cover\"\n ></xs-image>\n }\n @if (!getItemImageUrl()) {\n <div\n class=\"flex items-center justify-center w-full h-full rounded-xl bg-zinc-700\"\n >\n <xs-icon\n icon=\"building\"\n class=\"text-zinc-400\"\n ></xs-icon>\n </div>\n }\n </div>\n\n <div\n class=\"flex flex-col items-start justify-start w-full min-w-0\"\n >\n <h3\n class=\"w-full text-[16px] font-semibold text-white pr-2\"\n >\n <span class=\"block max-w-full pr-2 truncate\">\n {{ getItemTitle() }}\n </span>\n </h3>\n\n <div\n class=\"flex items-center min-w-0 gap-1 text-xs text-zinc-500\"\n >\n <span class=\"flex-1 truncate\"> Organizaci\u00F3n </span>\n @if (getItemOrgType()) {\n <span\n class=\"text-zinc-400\"\n >\n \u2022 {{ getItemOrgType() }}\n </span>\n }\n </div>\n </div>\n </div>\n\n @if (getItemValue() !== undefined && getItemUnit()) {\n <div\n class=\"flex items-center text-right mr-2\"\n >\n <span class=\"text-white font-semibold text-sm\">\n {{ getItemValue() }}\n </span>\n <span class=\"text-zinc-400 text-xs ml-1\">\n {{ getItemUnit() }}\n </span>\n </div>\n }\n\n @if (showChevron() || loading()) {\n <div\n class=\"flex items-center flex-shrink-0 h-full ml-2\"\n >\n @if (loading()) {\n <div\n class=\"w-4 h-4 border-2 border-white rounded-full border-t-transparent animate-spin\"\n aria-label=\"Cargando\"\n ></div>\n }\n @if (!loading()) {\n <xs-icon\n icon=\"chevron-right\"\n class=\"text-zinc-400\"\n [ngClass]=\"\n getItemValue() !== undefined && getItemUnit()\n ? 'ml-1'\n : 'ml-2'\n \"\n ></xs-icon>\n }\n </div>\n }\n </div>\n </a>\n }\n ", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: XSImageComponent, selector: "xs-image", inputs: ["config", "viewTransitionName", "src", "alt", "width", "height", "size", "rounded", "objectFit", "clickable", "item", "typeItem", "imageType", "fallbackSrc", "loading", "priority", "customClass", "generateAvatar"], outputs: ["onClick", "onLoad", "onError"] }, { kind: "component", type: XSIconComponent, selector: "xs-icon", inputs: ["icon", "size", "class"] }, { kind: "pipe", type: ImageApiPipe, name: "imageApi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17175
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.33", type: XSItemTypeOrganizationComponent, isStandalone: true, selector: "xs-item-type-organization", host: { attributes: { "xs-item-type-organization-host": "" } }, usesInheritance: true, ngImport: i0, template: "\n @if (isLink()) {\n <a\n [class]=\"itemClasses\"\n (click)=\"handleClick($event)\"\n >\n <div class=\"flex items-center justify-between w-full\">\n <div class=\"flex items-center flex-1 min-w-0 gap-2\">\n <div\n class=\"flex-shrink-0 w-10 h-10 overflow-hidden rounded-xl\"\n [ngClass]=\"[\n size() === 'small' ? 'w-8 h-8' : 'w-10 h-10 mr-1',\n ]\"\n >\n @if (!getItemImageUrl()) {\n <xs-image\n [src]=\"item() | imageApi: 'organization' : 'small'\"\n size=\"full\"\n objectFit=\"cover\"\n ></xs-image>\n }\n @if (getItemImageUrl()) {\n <xs-image\n [src]=\"getItemImageUrl()\"\n size=\"full\"\n objectFit=\"cover\"\n ></xs-image>\n }\n @if (!getItemImageUrl()) {\n <div\n class=\"flex items-center justify-center w-full h-full rounded-xl bg-zinc-700\"\n >\n <xs-icon\n icon=\"building\"\n class=\"text-zinc-400\"\n ></xs-icon>\n </div>\n }\n </div>\n\n <div\n class=\"flex flex-col items-start justify-start w-full min-w-0\"\n >\n <h3\n class=\"w-full text-[16px] font-semibold text-white pr-2\"\n >\n <span class=\"block max-w-full pr-2 truncate\">\n {{ getItemTitle() }}\n </span>\n </h3>\n\n <div\n class=\"flex items-center min-w-0 gap-1 text-xs text-zinc-500\"\n >\n <span class=\"flex-1 truncate\"> Marca </span>\n @if (getItemOrgType()) {\n <span\n class=\"text-zinc-400\"\n >\n \u2022 {{ getItemOrgType() }}\n </span>\n }\n </div>\n </div>\n </div>\n\n @if (getItemValue() !== undefined && getItemUnit()) {\n <div\n class=\"flex items-center text-right mr-2\"\n >\n <span class=\"text-white font-semibold text-sm\">\n {{ getItemValue() }}\n </span>\n <span class=\"text-zinc-400 text-xs ml-1\">\n {{ getItemUnit() }}\n </span>\n </div>\n }\n\n @if (showChevron() || loading()) {\n <div\n class=\"flex items-center flex-shrink-0 h-full ml-2\"\n >\n @if (loading()) {\n <div\n class=\"w-4 h-4 border-2 border-white rounded-full border-t-transparent animate-spin\"\n aria-label=\"Cargando\"\n ></div>\n }\n @if (!loading()) {\n <xs-icon\n icon=\"chevron-right\"\n class=\"text-zinc-400\"\n [ngClass]=\"\n getItemValue() !== undefined && getItemUnit()\n ? 'ml-1'\n : 'ml-2'\n \"\n ></xs-icon>\n }\n </div>\n }\n </div>\n </a>\n }\n ", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FontAwesomeModule }, { kind: "component", type: XSImageComponent, selector: "xs-image", inputs: ["config", "viewTransitionName", "src", "alt", "width", "height", "size", "rounded", "objectFit", "clickable", "item", "typeItem", "imageType", "fallbackSrc", "loading", "priority", "customClass", "generateAvatar"], outputs: ["onClick", "onLoad", "onError"] }, { kind: "component", type: XSIconComponent, selector: "xs-icon", inputs: ["icon", "size", "class"] }, { kind: "pipe", type: ImageApiPipe, name: "imageApi" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17174
17176
  }
17175
17177
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: XSItemTypeOrganizationComponent, decorators: [{
17176
17178
  type: Component,
@@ -17180,7 +17182,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
17180
17182
  ImageApiPipe,
17181
17183
  XSImageComponent,
17182
17184
  XSIconComponent,
17183
- ], host: { 'xs-item-type-organization-host': '' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "\n @if (isLink()) {\n <a\n [class]=\"itemClasses\"\n (click)=\"handleClick($event)\"\n >\n <div class=\"flex items-center justify-between w-full\">\n <div class=\"flex items-center flex-1 min-w-0 gap-2\">\n <div\n class=\"flex-shrink-0 w-10 h-10 overflow-hidden rounded-xl\"\n [ngClass]=\"[\n size() === 'small' ? 'w-8 h-8' : 'w-10 h-10 mr-1',\n ]\"\n >\n @if (!getItemImageUrl()) {\n <xs-image\n [src]=\"item() | imageApi: 'organization' : 'small'\"\n size=\"full\"\n objectFit=\"cover\"\n ></xs-image>\n }\n @if (getItemImageUrl()) {\n <xs-image\n [src]=\"getItemImageUrl()\"\n size=\"full\"\n objectFit=\"cover\"\n ></xs-image>\n }\n @if (!getItemImageUrl()) {\n <div\n class=\"flex items-center justify-center w-full h-full rounded-xl bg-zinc-700\"\n >\n <xs-icon\n icon=\"building\"\n class=\"text-zinc-400\"\n ></xs-icon>\n </div>\n }\n </div>\n\n <div\n class=\"flex flex-col items-start justify-start w-full min-w-0\"\n >\n <h3\n class=\"w-full text-[16px] font-semibold text-white pr-2\"\n >\n <span class=\"block max-w-full pr-2 truncate\">\n {{ getItemTitle() }}\n </span>\n </h3>\n\n <div\n class=\"flex items-center min-w-0 gap-1 text-xs text-zinc-500\"\n >\n <span class=\"flex-1 truncate\"> Organizaci\u00F3n </span>\n @if (getItemOrgType()) {\n <span\n class=\"text-zinc-400\"\n >\n \u2022 {{ getItemOrgType() }}\n </span>\n }\n </div>\n </div>\n </div>\n\n @if (getItemValue() !== undefined && getItemUnit()) {\n <div\n class=\"flex items-center text-right mr-2\"\n >\n <span class=\"text-white font-semibold text-sm\">\n {{ getItemValue() }}\n </span>\n <span class=\"text-zinc-400 text-xs ml-1\">\n {{ getItemUnit() }}\n </span>\n </div>\n }\n\n @if (showChevron() || loading()) {\n <div\n class=\"flex items-center flex-shrink-0 h-full ml-2\"\n >\n @if (loading()) {\n <div\n class=\"w-4 h-4 border-2 border-white rounded-full border-t-transparent animate-spin\"\n aria-label=\"Cargando\"\n ></div>\n }\n @if (!loading()) {\n <xs-icon\n icon=\"chevron-right\"\n class=\"text-zinc-400\"\n [ngClass]=\"\n getItemValue() !== undefined && getItemUnit()\n ? 'ml-1'\n : 'ml-2'\n \"\n ></xs-icon>\n }\n </div>\n }\n </div>\n </a>\n }\n " }]
17185
+ ], host: { 'xs-item-type-organization-host': '' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "\n @if (isLink()) {\n <a\n [class]=\"itemClasses\"\n (click)=\"handleClick($event)\"\n >\n <div class=\"flex items-center justify-between w-full\">\n <div class=\"flex items-center flex-1 min-w-0 gap-2\">\n <div\n class=\"flex-shrink-0 w-10 h-10 overflow-hidden rounded-xl\"\n [ngClass]=\"[\n size() === 'small' ? 'w-8 h-8' : 'w-10 h-10 mr-1',\n ]\"\n >\n @if (!getItemImageUrl()) {\n <xs-image\n [src]=\"item() | imageApi: 'organization' : 'small'\"\n size=\"full\"\n objectFit=\"cover\"\n ></xs-image>\n }\n @if (getItemImageUrl()) {\n <xs-image\n [src]=\"getItemImageUrl()\"\n size=\"full\"\n objectFit=\"cover\"\n ></xs-image>\n }\n @if (!getItemImageUrl()) {\n <div\n class=\"flex items-center justify-center w-full h-full rounded-xl bg-zinc-700\"\n >\n <xs-icon\n icon=\"building\"\n class=\"text-zinc-400\"\n ></xs-icon>\n </div>\n }\n </div>\n\n <div\n class=\"flex flex-col items-start justify-start w-full min-w-0\"\n >\n <h3\n class=\"w-full text-[16px] font-semibold text-white pr-2\"\n >\n <span class=\"block max-w-full pr-2 truncate\">\n {{ getItemTitle() }}\n </span>\n </h3>\n\n <div\n class=\"flex items-center min-w-0 gap-1 text-xs text-zinc-500\"\n >\n <span class=\"flex-1 truncate\"> Marca </span>\n @if (getItemOrgType()) {\n <span\n class=\"text-zinc-400\"\n >\n \u2022 {{ getItemOrgType() }}\n </span>\n }\n </div>\n </div>\n </div>\n\n @if (getItemValue() !== undefined && getItemUnit()) {\n <div\n class=\"flex items-center text-right mr-2\"\n >\n <span class=\"text-white font-semibold text-sm\">\n {{ getItemValue() }}\n </span>\n <span class=\"text-zinc-400 text-xs ml-1\">\n {{ getItemUnit() }}\n </span>\n </div>\n }\n\n @if (showChevron() || loading()) {\n <div\n class=\"flex items-center flex-shrink-0 h-full ml-2\"\n >\n @if (loading()) {\n <div\n class=\"w-4 h-4 border-2 border-white rounded-full border-t-transparent animate-spin\"\n aria-label=\"Cargando\"\n ></div>\n }\n @if (!loading()) {\n <xs-icon\n icon=\"chevron-right\"\n class=\"text-zinc-400\"\n [ngClass]=\"\n getItemValue() !== undefined && getItemUnit()\n ? 'ml-1'\n : 'ml-2'\n \"\n ></xs-icon>\n }\n </div>\n }\n </div>\n </a>\n }\n " }]
17184
17186
  }] });
17185
17187
 
17186
17188
  class XSItemTypeSiteComponent extends XSItemTypeBaseComponent {
@@ -19878,13 +19880,13 @@ var MAPLIBRE$1 = {
19878
19880
  EVENT: "Evento",
19879
19881
  SITE: "Sitio",
19880
19882
  ARTIST: "Artista",
19881
- ORGANIZATION: "Organización",
19883
+ ORGANIZATION: "Marca",
19882
19884
  CLUB: "Club",
19883
19885
  FESTIVAL: "Festival",
19884
19886
  EVENTS: "Eventos",
19885
19887
  SITES: "Sitios",
19886
19888
  ARTISTS: "Artistas",
19887
- ORGANIZATIONS: "Organizaciones",
19889
+ ORGANIZATIONS: "Marcas",
19888
19890
  UPCOMING: "Próximos eventos",
19889
19891
  CAPACITY: "Cap.",
19890
19892
  ACTIVE: "Activo",
@@ -19903,13 +19905,13 @@ var MAPLIBRE = {
19903
19905
  EVENT: "Event",
19904
19906
  SITE: "Venue",
19905
19907
  ARTIST: "Artist",
19906
- ORGANIZATION: "Organization",
19908
+ ORGANIZATION: "Brand",
19907
19909
  CLUB: "Club",
19908
19910
  FESTIVAL: "Festival",
19909
19911
  EVENTS: "Events",
19910
19912
  SITES: "Venues",
19911
19913
  ARTISTS: "Artists",
19912
- ORGANIZATIONS: "Organizations",
19914
+ ORGANIZATIONS: "Brands",
19913
19915
  UPCOMING: "Upcoming events",
19914
19916
  CAPACITY: "Cap.",
19915
19917
  ACTIVE: "Active",
@@ -23141,7 +23143,7 @@ const LIB_STORIES = [
23141
23143
  () => import('./xsmusices-ui-xs-icon.xsstory-asFaHy5H.mjs').then((m) => m.story),
23142
23144
  () => import('./xsmusices-ui-xs-image.xsstory-BaeUg3Zp.mjs').then((m) => m.story),
23143
23145
  () => import('./xsmusices-ui-xs-modal.xsstory-B96CYHF0.mjs').then((m) => m.story),
23144
- () => import('./xsmusices-ui-xs-navbar.xsstory-DZrnLMId.mjs').then((m) => m.story),
23146
+ () => import('./xsmusices-ui-xs-navbar.xsstory-BDW0nLAH.mjs').then((m) => m.story),
23145
23147
  () => import('./xsmusices-ui-xs-navbar-sidebar.xsstory-DHmPSARx.mjs').then((m) => m.story),
23146
23148
  () => import('./xsmusices-ui-stats-card.xsstory-PWTUDysc.mjs').then((m) => m.story),
23147
23149
  () => import('./xsmusices-ui-xs-toast.xsstory-BBhGu-j4.mjs').then((m) => m.story),