From 5c5232e891303cbd2a046d32e752981e74ea5161 Mon Sep 17 00:00:00 2001 From: Mat Pellerin Date: Tue, 12 Dec 2023 14:19:18 +0100 Subject: [PATCH] [sc-7934] warning when new nucliadb version is available (#1189) * Fix dropdown button style * [sc-7934] Display the versions used in NucliaDB admin - Display NucliaDB and NucliaDB Admin version in the home page - Display a toast message when a newer version of NucliaDB or NucliaDB Admin is available * Fix unit tests and search warning when no NUA * Fix search options white space in resource list --- .../nucliadb-admin/src/app/app.component.scss | 2 +- apps/nucliadb-admin/src/app/app.module.ts | 1 + .../src/app/home/home-page.component.html | 75 ++--- .../src/app/home/home-page.component.scss | 41 ++- .../src/app/home/home-page.component.ts | 1 + .../main-container.component.html | 10 +- .../main-container.component.scss | 2 +- libs/common/common.babel | 261 +++++++++++++----- libs/common/src/assets/i18n/ca.json | 13 +- libs/common/src/assets/i18n/en.json | 13 +- libs/common/src/assets/i18n/es.json | 13 +- libs/common/src/assets/i18n/fr.json | 13 +- .../src/lib/search/search.component.html | 8 +- .../src/lib/search/search.component.spec.ts | 2 + .../common/src/lib/search/search.component.ts | 2 +- .../src/lib/services/standalone.service.ts | 34 ++- .../topbar/kb-switch/kb-switch.component.html | 8 +- .../src/lib/topbar/topbar.component.html | 86 +++--- .../common/src/lib/topbar/topbar.component.ts | 1 - .../dropdown-button.component.scss | 8 +- mrs.developer.json | 2 +- 21 files changed, 401 insertions(+), 195 deletions(-) diff --git a/apps/nucliadb-admin/src/app/app.component.scss b/apps/nucliadb-admin/src/app/app.component.scss index 7125ad5b7..58f352260 100644 --- a/apps/nucliadb-admin/src/app/app.component.scss +++ b/apps/nucliadb-admin/src/app/app.component.scss @@ -1,4 +1,4 @@ -@import 'variables'; +@import 'apps/nucliadb-admin/src/variables'; .version { position: fixed; diff --git a/apps/nucliadb-admin/src/app/app.module.ts b/apps/nucliadb-admin/src/app/app.module.ts index 829a8f96c..b386a5302 100644 --- a/apps/nucliadb-admin/src/app/app.module.ts +++ b/apps/nucliadb-admin/src/app/app.module.ts @@ -52,6 +52,7 @@ export function createTranslateLoader(http: HttpBackend, config: BackendConfigur RouterModule.forRoot(routes, routerOptions), UploadModule, PaIconModule, + PaIconModule, ], providers: [TranslatePipe, { provide: APP_BASE_HREF, useValue: '/admin' }], bootstrap: [AppComponent], diff --git a/apps/nucliadb-admin/src/app/home/home-page.component.html b/apps/nucliadb-admin/src/app/home/home-page.component.html index ca1ddd373..a3ec1fe2e 100644 --- a/apps/nucliadb-admin/src/app/home/home-page.component.html +++ b/apps/nucliadb-admin/src/app/home/home-page.component.html @@ -1,38 +1,39 @@ -
- -

- By using a NUA API Key you can utilize - - Nuclia's Cloud Processing Engine - -

-

Your data remains stored locally, but you have access to a dashboard for following your metrics and more.

-
- -
-

- - {{ errorMessage | async }} -

-

- Provide your NUA API Key by using the environment variable - NUA_API_KEY - or the - --nuclia-api-key - cli flag. -

-

- If you don't have a NUA API Key follow this - - guide - -

-
+
+ @if (version | async; as versions) { +
+ NucliaDB: +
+ {{ versions.nucliadb.installed }} +
+ NucliaDB Admin: +
+ {{ versions['nucliadb-admin-assets'].installed }} +
+ NUA API Key: +
+ @if (hasValidKey | async) { +
+
+ + +
+
{{ 'standalone.nua-key-status.valid.store-locally' | translate }}
+
+ } @else { +
+
+ + {{ errorMessage | async }} +
+
+
+
+ } +
+
+ }
diff --git a/apps/nucliadb-admin/src/app/home/home-page.component.scss b/apps/nucliadb-admin/src/app/home/home-page.component.scss index bc7b495f7..ae16d4615 100644 --- a/apps/nucliadb-admin/src/app/home/home-page.component.scss +++ b/apps/nucliadb-admin/src/app/home/home-page.component.scss @@ -1,10 +1,47 @@ -@import 'variables'; +@import 'apps/nucliadb-admin/src/variables'; + +.home-page { + display: flex; + gap: rhythm(3); + align-items: flex-start; + + .container-box { + background: $color-neutral-lightest; + border: 1px solid $color-neutral-light; + border-radius: rhythm(0.5); + padding: rhythm(2) rhythm(3); + } + + .check-item { + display: flex; + gap: rhythm(1); + margin-top: calc(-1 * #{rhythm(0.25)}); + + & > strong { + padding-top: rhythm(0.25); + } + pa-icon { + margin-right: rhythm(0.5); + } + pa-icon.primary { + color: $color-primary-regular; + } + pa-icon.destructive { + color: $color-secondary-strong; + } + } + + .version-container { + display: grid; + grid-template-columns: 1fr auto; + gap: rhythm(1); + } +} .home-container { align-items: center; display: flex; flex-direction: column; - height: calc(100vh - var(--app-topbar-height)); justify-content: center; h1 { diff --git a/apps/nucliadb-admin/src/app/home/home-page.component.ts b/apps/nucliadb-admin/src/app/home/home-page.component.ts index 44eeb37b4..86bbdd581 100644 --- a/apps/nucliadb-admin/src/app/home/home-page.component.ts +++ b/apps/nucliadb-admin/src/app/home/home-page.component.ts @@ -10,6 +10,7 @@ import { StandaloneService } from '@flaps/common'; export class HomePageComponent { hasValidKey = this.standaloneService.hasValidKey; errorMessage = this.standaloneService.errorMessage; + version = this.standaloneService.version; constructor(private standaloneService: StandaloneService) {} } diff --git a/apps/nucliadb-admin/src/app/home/main-container/main-container.component.html b/apps/nucliadb-admin/src/app/home/main-container/main-container.component.html index 3ce1e3e9e..a1e90a0a5 100644 --- a/apps/nucliadb-admin/src/app/home/main-container/main-container.component.html +++ b/apps/nucliadb-admin/src/app/home/main-container/main-container.component.html @@ -1,7 +1,7 @@ -
- -
+@if (showBar | async) { +
+ +
+} diff --git a/apps/nucliadb-admin/src/app/home/main-container/main-container.component.scss b/apps/nucliadb-admin/src/app/home/main-container/main-container.component.scss index 70b662170..485d0603a 100644 --- a/apps/nucliadb-admin/src/app/home/main-container/main-container.component.scss +++ b/apps/nucliadb-admin/src/app/home/main-container/main-container.component.scss @@ -1,4 +1,4 @@ -@import 'variables'; +@import 'apps/nucliadb-admin/src/variables'; .upload-bar-container { position: sticky; diff --git a/libs/common/common.babel b/libs/common/common.babel index 5181e89a5..ec0edc0e1 100644 --- a/libs/common/common.babel +++ b/libs/common/common.babel @@ -16329,78 +16329,203 @@ standalone + + new-version-available-toast + + + + + ca-ES + false + + + en-US + false + + + es-ES + false + + + fr-FR + false + + + nua-key-status - + invalid - - - - - ca-ES - false - - - en-US - false - - - es-ES - false - - - fr-FR - false - - - - - loading-error - - - - - ca-ES - false - - - en-US - false - - - es-ES - false - - - fr-FR - false - - - - - not-provided - - - - - ca-ES - false - - - en-US - false - - - es-ES - false - - - fr-FR - false - - - + + + how-to-get-nua-key + + + + + ca-ES + false + + + en-US + false + + + es-ES + false + + + fr-FR + false + + + + + loading-error + + + + + ca-ES + false + + + en-US + false + + + es-ES + false + + + fr-FR + false + + + + + not-provided + + + + + ca-ES + false + + + en-US + false + + + es-ES + false + + + fr-FR + false + + + + + provide-by + + + + + ca-ES + false + + + en-US + false + + + es-ES + false + + + fr-FR + false + + + + + title + + + + + ca-ES + false + + + en-US + false + + + es-ES + false + + + fr-FR + false + + + + + + + valid + + + nua-allows-to + + + + + ca-ES + false + + + en-US + false + + + es-ES + false + + + fr-FR + false + + + + + store-locally + + + + + ca-ES + false + + + en-US + false + + + es-ES + false + + + fr-FR + false + + + + + diff --git a/libs/common/src/assets/i18n/ca.json b/libs/common/src/assets/i18n/ca.json index d33eb9348..586261da0 100644 --- a/libs/common/src/assets/i18n/ca.json +++ b/libs/common/src/assets/i18n/ca.json @@ -687,10 +687,15 @@ "sidenav.upload-data": "Pujar dades", "sidenav.users": "Usuaris", "sidenav.widgets": "Widgets", - "standalone.nua-key-status.invalid": "La clau Nuclia Understanding API proporcionada no és vàlida", - "standalone.nua-key-status.loading-error": "S'ha produït un error en carregar l'estat de la clau Nuclia Understanding API", - "standalone.nua-key-status.not-provided": "No s'ha proporcionat cap clau de Nuclia Understanding API", - "standalone.search-no-nua-key": "Esteu desconnectat del servidor nuclia.cloud i només obtindreu respostes basades en paraules clau. Els resultats semàntics i la cerca de gràfics de coneixement no funcionaran. Per obtenir una experiència de cerca completa, connecteu-vos al servidor mitjançant una clau Nuclia Understanding API.", + "standalone.new-version-available-toast": "Hi ha disponible una versió més nova de NucliaDB.", + "standalone.nua-key-status.invalid.how-to-get-nua-key": "Si no teniu una clau d'API NUA, seguiu aquesta guia.", + "standalone.nua-key-status.invalid.loading-error": "S'ha produït un error en carregar l'estat de la clau Nuclia Understanding API", + "standalone.nua-key-status.invalid.not-provided": "No s'ha proporcionat cap clau de Nuclia Understanding API", + "standalone.nua-key-status.invalid.provide-by": "Proporcioneu la vostra clau de l'API NUA mitjançant la variable d'entorn NUA_API_KEY o el senyalador cli --nuclia-api-key .", + "standalone.nua-key-status.invalid.title": "La clau Nuclia Understanding API proporcionada no és vàlida", + "standalone.nua-key-status.valid.nua-allows-to": "La vostra clau de l'API NUA us permet utilitzar Cloud Processing Engine de Nuclia.", + "standalone.nua-key-status.valid.store-locally": "Les vostres dades es mantenen emmagatzemades localment, però teniu accés a un tauler per seguir les vostres mètriques i molt més.", + "standalone.search-no-nua-key": "Esteu desconnectat del servidor nuclia.cloud i només obtindreu respostes basades en paraules clau. Els resultats semàntics no funcionaran. Per obtenir una experiència de cerca completa, connecteu-vos al servidor mitjançant una clau d'API Nuclia Understanding.", "standalone.upload-no-nua-key": "No esteu connectat al servidor nuclia.cloud i les dades noves no es processaran.", "stash.add_user": "Afegeix l'usuari", "stash.added_user": "L'usuari {{user}} s'ha afegit", diff --git a/libs/common/src/assets/i18n/en.json b/libs/common/src/assets/i18n/en.json index d1d545fdd..e42bb6e24 100644 --- a/libs/common/src/assets/i18n/en.json +++ b/libs/common/src/assets/i18n/en.json @@ -688,10 +688,15 @@ "sidenav.upload-data": "Upload data", "sidenav.users": "Users", "sidenav.widgets": "Widgets", - "standalone.nua-key-status.invalid": "Nuclia Understanding API key provided is invalid", - "standalone.nua-key-status.loading-error": "Error while loading Nuclia Understanding API key status", - "standalone.nua-key-status.not-provided": "No Nuclia Understanding API key provided", - "standalone.search-no-nua-key": "You are disconnected from the nuclia.cloud server and you will only get keyword-based answers. Semantic results and knowledge graph search will not work. For a complete search experience, please connect to the server using a Nuclia Understanding API key.", + "standalone.new-version-available-toast": "A newer version of NucliaDB is available.", + "standalone.nua-key-status.invalid.how-to-get-nua-key": "If you don't have a NUA API Key follow this guide.", + "standalone.nua-key-status.invalid.loading-error": "Error while loading Nuclia Understanding API key status", + "standalone.nua-key-status.invalid.not-provided": "No Nuclia Understanding API key provided", + "standalone.nua-key-status.invalid.provide-by": "Provide your NUA API Key by using the environment variable NUA_API_KEY or the --nuclia-api-key cli flag.", + "standalone.nua-key-status.invalid.title": "Nuclia Understanding API key provided is invalid", + "standalone.nua-key-status.valid.nua-allows-to": "Your NUA API Key allows you to use Nuclia’s Cloud Processing Engine.", + "standalone.nua-key-status.valid.store-locally": "Your data remains stored locally, but you have access to a dashboard for following your metrics and more.", + "standalone.search-no-nua-key": "You are disconnected from the nuclia.cloud server and you will only get keyword-based answers. Semantic results will not work. For a complete search experience, please connect to the server using a Nuclia Understanding API key.", "standalone.upload-no-nua-key": "You are not connected to the nuclia.cloud server and new data won’t be processed.", "stash.add_user": "Add user", "stash.added_user": "{{user}} has been added", diff --git a/libs/common/src/assets/i18n/es.json b/libs/common/src/assets/i18n/es.json index d2f603162..ab015f41d 100644 --- a/libs/common/src/assets/i18n/es.json +++ b/libs/common/src/assets/i18n/es.json @@ -687,10 +687,15 @@ "sidenav.upload-data": "Subir datos", "sidenav.users": "Usuarios", "sidenav.widgets": "Widgets", - "standalone.nua-key-status.invalid": "La clave Nuclia Understanding API proporcionada no es válida", - "standalone.nua-key-status.loading-error": "Error al cargar el estado de la clave Nuclia Understanding API", - "standalone.nua-key-status.not-provided": "No se proporcionó ninguna clave Nuclia Understanding API", - "standalone.search-no-nua-key": "Estás desconectado del servidor nuclia.cloud y solo obtendrás respuestas basadas en palabras clave. Los resultados semánticos y la búsqueda de gráficos de conocimiento no funcionarán. Para una experiencia de búsqueda completa, conéctese al servidor utilizando una clave Nuclia Understanding API.", + "standalone.new-version-available-toast": "Hay disponible una versión más nueva de NucliaDB.", + "standalone.nua-key-status.invalid.how-to-get-nua-key": "Si no tiene una clave API de NUA, siga esta guía.", + "standalone.nua-key-status.invalid.loading-error": "Error al cargar el estado de la clave Nuclia Understanding API", + "standalone.nua-key-status.invalid.not-provided": "No se proporcionó ninguna clave Nuclia Understanding API", + "standalone.nua-key-status.invalid.provide-by": "Proporcione su clave API de NUA utilizando la variable de entorno NUA_API_KEY o la marca cli --nuclia-api-key .", + "standalone.nua-key-status.invalid.title": "La clave Nuclia Understanding API proporcionada no es válida", + "standalone.nua-key-status.valid.nua-allows-to": "Su clave API de NUA le permite utilizar el motor de procesamiento en la nube de Nuclia.", + "standalone.nua-key-status.valid.store-locally": "Sus datos permanecen almacenados localmente, pero tiene acceso a un panel para seguir sus métricas y más.", + "standalone.search-no-nua-key": "Está desconectado del servidor nuclia.cloud y solo obtendrá respuestas basadas en palabras clave. Los resultados semánticos no funcionarán. Para obtener una experiencia de búsqueda completa, conéctese al servidor mediante una clave API de Nuclia Understanding.", "standalone.upload-no-nua-key": "No estás conectado al servidor nuclia.cloud y no se procesarán nuevos datos.", "stash.add_user": "Añadir usuario", "stash.added_user": "El usuario {{user}} ha sido añadido", diff --git a/libs/common/src/assets/i18n/fr.json b/libs/common/src/assets/i18n/fr.json index e177e30f1..801ee8580 100644 --- a/libs/common/src/assets/i18n/fr.json +++ b/libs/common/src/assets/i18n/fr.json @@ -688,10 +688,15 @@ "sidenav.upload-data": "Télécharger", "sidenav.users": "Utilisateurs", "sidenav.widgets": "Widgets", - "standalone.nua-key-status.invalid": "La clé Nuclia Understanding API fournie n'est pas valide", - "standalone.nua-key-status.loading-error": "Erreur lors du chargement de l'état de la clé Nuclia Understanding API", - "standalone.nua-key-status.not-provided": "Aucune clé Nuclia Understanding API fournie", - "standalone.search-no-nua-key": "Vous êtes déconnecté du serveur nuclia.cloud et vous n'obtiendrez que des réponses basées sur des mots clés. Les résultats sémantiques et la recherche par graphe de connaissances ne fonctionneront pas. Pour une expérience de recherche complète, veuillez vous connecter au serveur à l'aide d'une clé Nuclia Understanding API.", + "standalone.new-version-available-toast": "Une version plus récente de NucliaDB est disponible.", + "standalone.nua-key-status.invalid.how-to-get-nua-key": "Si vous ne possédez pas de clé API NUA, suivez ce guide.", + "standalone.nua-key-status.invalid.loading-error": "Erreur lors du chargement de l'état de la clé Nuclia Understanding API", + "standalone.nua-key-status.invalid.not-provided": "Aucune clé Nuclia Understanding API fournie", + "standalone.nua-key-status.invalid.provide-by": "Fournissez votre clé API NUA en utilisant la variable d'environnement NUA_API_KEY ou l'indicateur cli --nuclia-api-key .", + "standalone.nua-key-status.invalid.title": "La clé Nuclia Understanding API fournie n'est pas valide", + "standalone.nua-key-status.valid.nua-allows-to": "Votre clé API NUA vous permet d'utiliser le moteur de traitement cloud de Nuclia.", + "standalone.nua-key-status.valid.store-locally": "Vos données restent stockées localement, mais vous avez accès à un tableau de bord pour suivre vos métriques et bien plus encore.", + "standalone.search-no-nua-key": "Vous êtes déconnecté du serveur nuclia.cloud et vous n'obtiendrez que des réponses basées sur des mots clés. Les résultats sémantiques ne fonctionneront pas. Pour une expérience de recherche complète, veuillez vous connecter au serveur à l'aide d'une clé API Nuclia Understanding.", "standalone.upload-no-nua-key": "Vous n'êtes pas connecté au serveur nuclia.cloud et les nouvelles données ne seront pas traitées.", "stash.add_user": "Ajouter un utilisateur", "stash.added_user": "{{user}} a été ajouté", diff --git a/libs/common/src/lib/search/search.component.html b/libs/common/src/lib/search/search.component.html index 5685f46b5..d5d978463 100644 --- a/libs/common/src/lib/search/search.component.html +++ b/libs/common/src/lib/search/search.component.html @@ -3,14 +3,12 @@
- -
+ @if (standalone && (hasValidKey | async) === false) { +
{{ 'standalone.search-no-nua-key' | translate }}
- + }
{ let component: SearchComponent; @@ -43,6 +44,7 @@ describe('SearchComponent', () => { isFeatureEnabled: () => of(true), }, }, + MockProvider(StandaloneService), ], }).compileComponents(); diff --git a/libs/common/src/lib/search/search.component.ts b/libs/common/src/lib/search/search.component.ts index 7f6f98972..698567721 100644 --- a/libs/common/src/lib/search/search.component.ts +++ b/libs/common/src/lib/search/search.component.ts @@ -82,7 +82,7 @@ export class SearchComponent implements OnInit, OnDestroy { ); standalone = this.standaloneService.standalone; - hasValidKey = this.standaloneService.hasValidKey.pipe(tap(console.log)); + hasValidKey = this.standaloneService.hasValidKey; constructor( private sdk: SDKService, diff --git a/libs/common/src/lib/services/standalone.service.ts b/libs/common/src/lib/services/standalone.service.ts index 9ca8baa5e..8c825b2fd 100644 --- a/libs/common/src/lib/services/standalone.service.ts +++ b/libs/common/src/lib/services/standalone.service.ts @@ -1,8 +1,9 @@ import { Injectable } from '@angular/core'; import { SDKService } from '@flaps/core'; -import { map, Observable, of } from 'rxjs'; +import { map, Observable, of, tap } from 'rxjs'; import { catchError, filter } from 'rxjs/operators'; import { TranslateService } from '@ngx-translate/core'; +import { SisToastService } from '@nuclia/sistema'; interface StandaloneConfig { has_key: boolean; @@ -10,6 +11,16 @@ interface StandaloneConfig { error?: string; } +interface Version { + installed: string; + latest: string; +} + +interface NucliaDBVersions { + nucliadb: Version; + 'nucliadb-admin-assets': Version; +} + @Injectable({ providedIn: 'root', }) @@ -25,12 +36,27 @@ export class StandaloneService { map((conf) => { const config = conf as StandaloneConfig; return config.has_key && !config.valid - ? this.translate.instant('standalone.nua-key-status.invalid') - : config.error || this.translate.instant('standalone.nua-key-status.not-provided'); + ? this.translate.instant('standalone.nua-key-status.invalid.title') + : config.error || this.translate.instant('standalone.nua-key-status.invalid.not-provided'); + }), + ); + + version: Observable = this.sdk.nuclia.rest.get('/versions').pipe( + tap((version) => { + if ( + version.nucliadb.installed < version.nucliadb.latest || + version['nucliadb-admin-assets'].installed < version['nucliadb-admin-assets'].latest + ) { + this.toast.warning('standalone.new-version-available-toast'); + } }), ); - constructor(private sdk: SDKService, private translate: TranslateService) {} + constructor( + private sdk: SDKService, + private translate: TranslateService, + private toast: SisToastService, + ) {} checkStandaloneConfig(): Observable { return this.sdk.nuclia.rest.get<{ nua_api_key: StandaloneConfig }>('/config-check').pipe( diff --git a/libs/common/src/lib/topbar/kb-switch/kb-switch.component.html b/libs/common/src/lib/topbar/kb-switch/kb-switch.component.html index 21674ab73..fc297bdff 100644 --- a/libs/common/src/lib/topbar/kb-switch/kb-switch.component.html +++ b/libs/common/src/lib/topbar/kb-switch/kb-switch.component.html @@ -1,4 +1,4 @@ - +@if (showKbSelector | async) { {{ (kb | async)?.title }} - +} - + @for (kb of knowledgeBoxes | async; track kb.id) { {{ kb.title }} - + } diff --git a/libs/common/src/lib/topbar/topbar.component.html b/libs/common/src/lib/topbar/topbar.component.html index 06a5bb82c..86a055713 100644 --- a/libs/common/src/lib/topbar/topbar.component.html +++ b/libs/common/src/lib/topbar/topbar.component.html @@ -3,66 +3,60 @@ class="topbar-logo" (click)="goToHome()"> + @if (isStage) { + Stage + } + Stage - - - - {{ 'need-help-book-demo' | translate }} - - - -
+ @if (showDemo) { - {{ 'account.type.' + (accountType | async) | translate }} + paFocusable + (click)="bookDemo()" + (keyup.enter)="bookDemo()"> + + {{ 'need-help-book-demo' | translate }} + + } - +
+ @if (!standalone && (shouldAccountTypeBeVisible | async)) { + + {{ 'account.type.' + (accountType | async) | translate }} + + } - + @if (((userInfo | async)?.accounts?.length || 0) > 1) { + + } - + - -
- -
nuclia.cloud
-
-
+ @if (!standalone) { + + }
diff --git a/libs/common/src/lib/topbar/topbar.component.ts b/libs/common/src/lib/topbar/topbar.component.ts index 95962eaa9..128fd80f7 100644 --- a/libs/common/src/lib/topbar/topbar.component.ts +++ b/libs/common/src/lib/topbar/topbar.component.ts @@ -32,7 +32,6 @@ export class TopbarComponent { ); standalone = this.standaloneService.standalone; - hasValidKey = this.standaloneService.hasValidKey; errorMessage = this.standaloneService.errorMessage; showDemo = !this.standalone; diff --git a/libs/sistema/src/lib/dropdown-button/dropdown-button.component.scss b/libs/sistema/src/lib/dropdown-button/dropdown-button.component.scss index d6082afe2..da2533021 100644 --- a/libs/sistema/src/lib/dropdown-button/dropdown-button.component.scss +++ b/libs/sistema/src/lib/dropdown-button/dropdown-button.component.scss @@ -6,15 +6,17 @@ .nsi-dropdown-button ::ng-deep { .pa-button { min-width: rhythm(16); + padding: rhythm(0.5) rhythm(0.5) rhythm(0.5) rhythm(1.5); } + .pa-button-wrapper { + width: 100%; + } .pa-button-label { align-items: center; display: flex; justify-content: space-between; + width: 100%; } } - pa-icon { - margin-left: rhythm(2); - } } diff --git a/mrs.developer.json b/mrs.developer.json index 37dbbf3c8..9bbea9554 100644 --- a/mrs.developer.json +++ b/mrs.developer.json @@ -4,6 +4,6 @@ "https": "https://github.com/plone/pastanaga-angular.git", "path": "/projects/pastanaga-angular/src", "package": "@guillotinaweb/pastanaga-angular", - "tag": "2.64.1" + "tag": "2.64.2" } }