diff --git a/ahoy-components/pom.xml b/ahoy-components/pom.xml index c967e6f3..9115a69a 100644 --- a/ahoy-components/pom.xml +++ b/ahoy-components/pom.xml @@ -22,7 +22,7 @@ za.co.lsd.ahoy ahoy - 0.14.0 + 0.15.0 ahoy-components diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/ReleaseController.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/ReleaseController.java index 0e827191..0a477839 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/ReleaseController.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/ReleaseController.java @@ -114,10 +114,11 @@ public ResponseEntity copyApplicationVersionEnvConfig(@PathVariable Long r return new ResponseEntity<>(null, new HttpHeaders(), HttpStatus.OK); } - @PostMapping("/releases/{releaseId}/duplicate") - public ResponseEntity duplicate(@PathVariable Long releaseId, @RequestBody DuplicateOptions duplicateOptions) { + @PostMapping("/releases/duplicate/{sourceReleaseId}/{destReleaseId}") + public ResponseEntity duplicate(@PathVariable Long sourceReleaseId, @PathVariable Long destReleaseId, + @RequestBody DuplicateOptions duplicateOptions) { - Release duplicatedRelease = releaseService.duplicate(releaseId, duplicateOptions); + Release duplicatedRelease = releaseService.duplicate(sourceReleaseId, destReleaseId, duplicateOptions); return new ResponseEntity<>(duplicatedRelease, new HttpHeaders(), HttpStatus.OK); } diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/ReleaseService.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/ReleaseService.java index 07be22db..ec970d64 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/ReleaseService.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/ReleaseService.java @@ -228,16 +228,17 @@ public ReleaseVersion upgrade(Long releaseVersionId, UpgradeOptions upgradeOptio } @Transactional - public Release duplicate(Long releaseId, DuplicateOptions duplicateOptions) { - Release sourceRelease = releaseRepository.findById(releaseId) - .orElseThrow(() -> new ResourceNotFoundException("Could not find source release: " + releaseId)); + public Release duplicate(Long sourceReleaseId, Long destReleaseId, DuplicateOptions duplicateOptions) { + Release sourceRelease = releaseRepository.findById(sourceReleaseId) + .orElseThrow(() -> new ResourceNotFoundException("Could not find source release: " + sourceReleaseId)); - Release duplicatedRelease = releaseRepository.save(new Release(duplicateOptions.getReleaseName())); - log.debug("Duplicated release: {} for source release: {}", duplicatedRelease, sourceRelease); + Release destRelease = releaseRepository.findById(destReleaseId) + .orElseThrow(() -> new ResourceNotFoundException("Could not find destination release: " + sourceReleaseId)); + log.debug("Duplicating release: {} to release: {} with options: {}", sourceRelease, destRelease, duplicateOptions); for (ReleaseVersion sourceReleaseVersion : sourceRelease.getReleaseVersions()) { ReleaseVersion duplicatedReleaseVersion = new ReleaseVersion(sourceReleaseVersion.getVersion()); - duplicatedRelease.addReleaseVersion(duplicatedReleaseVersion); + destRelease.addReleaseVersion(duplicatedReleaseVersion); duplicatedReleaseVersion.setApplicationVersions(new ArrayList<>(sourceReleaseVersion.getApplicationVersions())); duplicatedReleaseVersion = releaseVersionRepository.save(duplicatedReleaseVersion); log.debug("Duplicated release version: {} for source release version: {}", duplicatedReleaseVersion, sourceReleaseVersion); @@ -245,12 +246,12 @@ public Release duplicate(Long releaseId, DuplicateOptions duplicateOptions) { if (duplicateOptions.isAddToSameEnvironments()) { for (EnvironmentRelease sourceEnvRelease : sourceRelease.getEnvironmentReleases()) { - EnvironmentRelease duplicatedEnvRelease = new EnvironmentRelease(sourceEnvRelease.getEnvironment(), duplicatedRelease); + EnvironmentRelease duplicatedEnvRelease = new EnvironmentRelease(sourceEnvRelease.getEnvironment(), destRelease); duplicatedEnvRelease = environmentReleaseRepository.save(duplicatedEnvRelease); log.debug("Duplicated environment release: {} for source environment release: {}", duplicatedEnvRelease.getId(), sourceEnvRelease.getId()); if (duplicateOptions.isCopyEnvironmentConfig()) { - for (ReleaseVersion destReleaseVersion : duplicatedRelease.getReleaseVersions()) { + for (ReleaseVersion destReleaseVersion : destRelease.getReleaseVersions()) { ReleaseVersion sourceReleaseVersion = sourceRelease.getReleaseVersions().stream() .filter(rv -> rv.getVersion().equals(destReleaseVersion.getVersion())) .findFirst() @@ -265,7 +266,7 @@ public Release duplicate(Long releaseId, DuplicateOptions duplicateOptions) { } } - return duplicatedRelease; + return destRelease; } @Transactional @@ -347,21 +348,30 @@ public Flux getLogs(EnvironmentReleaseId environmentReleaseId, /** * Copies environment config from one release version to another for the same environment release. */ - private void copyEnvironmentConfig(EnvironmentRelease environmentRelease, ReleaseVersion sourceReleaseVersion, ReleaseVersion destReleaseVersion) { - this.copyEnvironmentConfig(environmentRelease, sourceReleaseVersion, environmentRelease, destReleaseVersion); + public void copyEnvironmentConfig(EnvironmentRelease environmentRelease, ReleaseVersion sourceReleaseVersion, ReleaseVersion destReleaseVersion) { + copyEnvironmentConfig(environmentRelease, sourceReleaseVersion, environmentRelease, destReleaseVersion); + } + + /** + * Copies environment config from one environment release to another for all its release versions. Usually used when duplicating and environment with all its releases. + */ + public void copyEnvironmentConfig(EnvironmentRelease sourceEnvironmentRelease, EnvironmentRelease destEnvironmentRelease) { + for (ReleaseVersion releaseVersion : sourceEnvironmentRelease.getRelease().getReleaseVersions()) { + copyEnvironmentConfig(sourceEnvironmentRelease, destEnvironmentRelease, releaseVersion); + } } /** * Copies environment config from one environment release to another for the same version. */ - private void copyEnvironmentConfig(EnvironmentRelease sourceEnvironmentRelease, EnvironmentRelease destEnvironmentRelease, ReleaseVersion releaseVersion) { - this.copyEnvironmentConfig(sourceEnvironmentRelease, releaseVersion, destEnvironmentRelease, releaseVersion); + public void copyEnvironmentConfig(EnvironmentRelease sourceEnvironmentRelease, EnvironmentRelease destEnvironmentRelease, ReleaseVersion releaseVersion) { + copyEnvironmentConfig(sourceEnvironmentRelease, releaseVersion, destEnvironmentRelease, releaseVersion); } /** * Copies environment config from one environment release version to another environment release version. */ - private void copyEnvironmentConfig(EnvironmentRelease sourceEnvironmentRelease, ReleaseVersion sourceReleaseVersion, EnvironmentRelease destEnvironmentRelease, ReleaseVersion destReleaseVersion) { + public void copyEnvironmentConfig(EnvironmentRelease sourceEnvironmentRelease, ReleaseVersion sourceReleaseVersion, EnvironmentRelease destEnvironmentRelease, ReleaseVersion destReleaseVersion) { for (ApplicationVersion applicationVersion : destReleaseVersion.getApplicationVersions()) { copyEnvironmentConfig(sourceEnvironmentRelease, sourceReleaseVersion, applicationVersion, destEnvironmentRelease, destReleaseVersion, applicationVersion); } @@ -370,7 +380,7 @@ private void copyEnvironmentConfig(EnvironmentRelease sourceEnvironmentRelease, /** * Copies environment config from one application version to another for the same release version and environment. */ - private void copyEnvironmentConfig(EnvironmentRelease environmentRelease, ReleaseVersion releaseVersion, ApplicationVersion sourceApplicationVersion, ApplicationVersion destApplicationVersion) { + public void copyEnvironmentConfig(EnvironmentRelease environmentRelease, ReleaseVersion releaseVersion, ApplicationVersion sourceApplicationVersion, ApplicationVersion destApplicationVersion) { copyEnvironmentConfig(environmentRelease, releaseVersion, sourceApplicationVersion, environmentRelease, releaseVersion, destApplicationVersion); } diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationEnvironmentConfig.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationEnvironmentConfig.java index a27ecc65..1a885a32 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationEnvironmentConfig.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationEnvironmentConfig.java @@ -60,7 +60,7 @@ public boolean hasReplicas() { } public boolean routeEnabled() { - return spec != null && spec.getRouteEnabled() != null && spec.getRouteEnabled(); + return spec != null && spec.isRouteEnabled(); } public boolean hasRoute() { @@ -68,7 +68,7 @@ public boolean hasRoute() { } public boolean environmentVariablesEnabled() { - return spec != null && spec.getEnvironmentVariablesEnabled() != null && spec.getEnvironmentVariablesEnabled(); + return spec != null && spec.isEnvironmentVariablesEnabled(); } public boolean hasEnvironmentVariables() { @@ -76,7 +76,7 @@ public boolean hasEnvironmentVariables() { } public boolean configEnabled() { - return spec != null && spec.getConfigFilesEnabled() != null && spec.getConfigFilesEnabled(); + return spec != null && spec.isConfigFilesEnabled(); } public boolean hasConfigs() { @@ -84,7 +84,7 @@ public boolean hasConfigs() { } public boolean volumesEnabled() { - return spec != null && spec.getVolumesEnabled() != null && spec.getVolumesEnabled(); + return spec != null && spec.isVolumesEnabled(); } public boolean hasVolumes() { @@ -92,7 +92,7 @@ public boolean hasVolumes() { } public boolean secretsEnabled() { - return spec != null && spec.getSecretsEnabled() != null && spec.getSecretsEnabled(); + return spec != null && spec.isSecretsEnabled(); } public boolean hasSecrets() { @@ -100,7 +100,7 @@ public boolean hasSecrets() { } public boolean resourcesEnabled() { - return spec != null && spec.getResourcesEnabled() != null && spec.getResourcesEnabled(); + return spec != null && spec.isResourcesEnabled(); } public boolean hasResources() { @@ -108,7 +108,7 @@ public boolean hasResources() { } public ApplicationEnvironmentSpec summarySpec() { - return ApplicationEnvironmentSpec.newSummarySpec(spec.getRouteEnabled(), spec.getRouteHostname()); + return ApplicationEnvironmentSpec.newSummarySpec(spec.isRouteEnabled(), spec.getRouteHostname()); } @Override diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationEnvironmentSpec.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationEnvironmentSpec.java index b17755e9..3903abd2 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationEnvironmentSpec.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationEnvironmentSpec.java @@ -26,25 +26,25 @@ public class ApplicationEnvironmentSpec { private Integer replicas; - private Boolean routeEnabled; + private boolean routeEnabled; private String routeHostname; private Integer routeTargetPort; private boolean tls; private String tlsSecretName; - private Boolean environmentVariablesEnabled; + private boolean environmentVariablesEnabled; private List environmentVariables; - private Boolean configFilesEnabled; + private boolean configFilesEnabled; private List configFiles; - private Boolean volumesEnabled; + private boolean volumesEnabled; private List volumes; - private Boolean secretsEnabled; + private boolean secretsEnabled; private List secrets; - private Boolean resourcesEnabled; + private boolean resourcesEnabled; private ApplicationResources resources; public static ApplicationEnvironmentSpec newSummarySpec(Boolean routeEnabled, String routeHostname) { diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationSpec.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationSpec.java index 23fd8e52..a680a292 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationSpec.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/applications/ApplicationSpec.java @@ -31,14 +31,14 @@ public class ApplicationSpec extends ContainerSpec { private String dockerRegistryName; - private Boolean configFilesEnabled; + private boolean configFilesEnabled; private String configPath; private List configFiles; - private Boolean volumesEnabled; + private boolean volumesEnabled; private List volumes; - private Boolean secretsEnabled; + private boolean secretsEnabled; private List secrets; private List containers = new ArrayList<>(); @@ -49,26 +49,14 @@ public ApplicationSpec(String name, String image, String dockerRegistryName) { this.dockerRegistryName = dockerRegistryName; } - public boolean configEnabled() { - return configFilesEnabled != null && configFilesEnabled; - } - public boolean hasConfigs() { return configFiles != null && configFiles.size() > 0; } - public boolean volumesEnabled() { - return volumesEnabled != null && volumesEnabled; - } - public boolean hasVolumes() { return volumes != null && volumes.size() > 0; } - public boolean secretsEnabled() { - return secretsEnabled != null && secretsEnabled; - } - public boolean hasSecrets() { return secrets != null && secrets.size() > 0; } diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/docker/DockerRegistry.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/docker/DockerRegistry.java index 2cd5ffb3..4dad1e6a 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/docker/DockerRegistry.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/docker/DockerRegistry.java @@ -30,7 +30,7 @@ public class DockerRegistry { @ToString.Exclude private String password; @ToString.Exclude - private Boolean secure; + private boolean secure; public DockerRegistry(String name, String server, String username, String password) { this.name = name; diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/DuplicateOptions.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/DuplicateOptions.java new file mode 100644 index 00000000..949ab5ed --- /dev/null +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/DuplicateOptions.java @@ -0,0 +1,28 @@ +/* + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package za.co.lsd.ahoy.server.environments; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class DuplicateOptions { + private boolean copyEnvironmentConfig; +} diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/Environment.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/Environment.java index b344eadd..9b9c39c9 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/Environment.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/Environment.java @@ -24,6 +24,7 @@ import org.hibernate.Hibernate; import za.co.lsd.ahoy.server.cluster.Cluster; import za.co.lsd.ahoy.server.environmentrelease.EnvironmentRelease; +import za.co.lsd.ahoy.server.releases.ReleaseHistory; import javax.persistence.*; import javax.validation.constraints.NotNull; @@ -61,6 +62,12 @@ public class Environment implements Serializable { @ToString.Exclude private List environmentReleases = new ArrayList<>(); + @OneToMany(mappedBy = "environment", cascade = CascadeType.REMOVE, orphanRemoval = true) + @OrderBy("id") + @JsonIgnore + @ToString.Exclude + private List releaseHistories = new ArrayList<>(); + public Environment(@NotNull String name) { this.name = name; } diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/EnvironmentService.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/EnvironmentService.java index 26d7fbd5..25da9c34 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/EnvironmentService.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/EnvironmentService.java @@ -69,20 +69,24 @@ public Environment destroy(Environment environment) { } @Transactional - public Environment duplicate(Long sourceEnvironmentId, Long destEnvironmentId) { + public Environment duplicate(Long sourceEnvironmentId, Long destEnvironmentId, DuplicateOptions duplicateOptions) { Environment sourceEnvironment = environmentRepository.findById(sourceEnvironmentId) .orElseThrow(() -> new ResourceNotFoundException("Could not find source environment: " + sourceEnvironmentId)); Environment destEnvironment = environmentRepository.findById(destEnvironmentId) .orElseThrow(() -> new ResourceNotFoundException("Could not find destination environment: " + destEnvironmentId)); - log.info("Duplicating environment {} to environment {}", sourceEnvironment, destEnvironment); + log.info("Duplicating environment {} to environment {} with options {}", sourceEnvironment, destEnvironment, duplicateOptions); List sourceEnvironmentReleases = sourceEnvironment.getEnvironmentReleases(); for (EnvironmentRelease sourceEnvironmentRelease : sourceEnvironmentReleases) { EnvironmentRelease newEnvironmentRelease = new EnvironmentRelease(destEnvironment, sourceEnvironmentRelease.getRelease()); environmentReleaseRepository.save(newEnvironmentRelease); + + if (duplicateOptions.isCopyEnvironmentConfig()) { + releaseService.copyEnvironmentConfig(sourceEnvironmentRelease, newEnvironmentRelease); + } } return destEnvironment; } diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/EnvironmentsController.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/EnvironmentsController.java index 81821470..88202abb 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/EnvironmentsController.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/environments/EnvironmentsController.java @@ -45,15 +45,17 @@ public ResponseEntity destroy(@PathVariable Long environmentId) { } @PostMapping("/duplicate/{sourceEnvironmentId}/{destEnvironmentId}") - public ResponseEntity duplicate(@PathVariable Long sourceEnvironmentId, @PathVariable Long destEnvironmentId) { + public ResponseEntity duplicate(@PathVariable Long sourceEnvironmentId, @PathVariable Long destEnvironmentId, + @RequestBody DuplicateOptions duplicateOptions) { - Environment destEnvironment = environmentService.duplicate(sourceEnvironmentId, destEnvironmentId); + Environment destEnvironment = environmentService.duplicate(sourceEnvironmentId, destEnvironmentId, duplicateOptions); return new ResponseEntity<>(destEnvironment, new HttpHeaders(), HttpStatus.OK); } @PostMapping("/{environmentId}/move") - public ResponseEntity move(@PathVariable Long environmentId, @RequestBody MoveOptions moveOptions) { + public ResponseEntity move(@PathVariable Long environmentId, + @RequestBody MoveOptions moveOptions) { Environment destEnvironment = environmentService.move(environmentId, moveOptions); diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/helm/TemplateWriter.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/helm/TemplateWriter.java index baaab285..b4949d3a 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/helm/TemplateWriter.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/helm/TemplateWriter.java @@ -74,23 +74,23 @@ public void writeTemplates(EnvironmentRelease environmentRelease, ReleaseVersion ApplicationSpec applicationSpec = applicationVersion.getSpec(); - if ((applicationSpec.configEnabled() && applicationSpec.hasConfigs()) || + if ((applicationSpec.isConfigFilesEnabled() && applicationSpec.hasConfigs()) || applicationEnvironmentConfig.map(e -> e.configEnabled() && e.hasConfigs()).orElse(false)) { addTemplate(application, "configmap", templatesPath, trackedTemplates); } - if ((applicationSpec.volumesEnabled() && applicationSpec.hasVolumes()) || + if ((applicationSpec.isVolumesEnabled() && applicationSpec.hasVolumes()) || applicationEnvironmentConfig.map(e -> e.volumesEnabled() && e.hasVolumes()).orElse(false)) { addTemplate(application, "pvc", templatesPath, trackedTemplates); } - if ((applicationSpec.secretsEnabled() && applicationSpec.hasSecrets()) || + if ((applicationSpec.isSecretsEnabled() && applicationSpec.hasSecrets()) || applicationEnvironmentConfig.map(e -> e.secretsEnabled() && e.hasSecrets()).orElse(false)) { addTemplate(application, "secret-generic", templatesPath, trackedTemplates); } Optional dockerRegistry = dockerRegistryProvider.dockerRegistryFor(applicationSpec.getDockerRegistryName()); - if (dockerRegistry.isPresent() && dockerRegistry.get().getSecure()) { + if (dockerRegistry.isPresent() && dockerRegistry.get().isSecure()) { addTemplate(application, "secret-dockerconfig", templatesPath, trackedTemplates); } diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/helm/values/ValuesBuilder.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/helm/values/ValuesBuilder.java index a6c12da6..73314ddf 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/helm/values/ValuesBuilder.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/helm/values/ValuesBuilder.java @@ -42,6 +42,9 @@ @Component @Slf4j public class ValuesBuilder { + private static final String SECRET_TYPE_GENERIC = "Opaque"; + private static final String SECRET_TYPE_TLS = "kubernetes.io/tls"; + private final DockerRegistryProvider dockerRegistryProvider; private final ApplicationEnvironmentConfigProvider environmentConfigProvider; private final DockerConfigSealedSecretProducer dockerConfigSealedSecretProducer; @@ -115,7 +118,7 @@ private ApplicationValues buildApplicationValues(EnvironmentRelease environmentR buildEnvironmentVariables(containerValuesBuilder, containerSpec, environmentConfig); buildResources(containerValuesBuilder, containerSpec, environmentConfig); - switch(containerSpec.getType()) { + switch (containerSpec.getType()) { case Container: buildHealthChecks(containerValuesBuilder, containerSpec); containerValues.put(containerSpec.getName(), containerValuesBuilder.build()); @@ -133,7 +136,7 @@ private ApplicationValues buildApplicationValues(EnvironmentRelease environmentR private void buildDockerRegistry(ApplicationValues.ApplicationValuesBuilder builder, ApplicationSpec applicationSpec) throws IOException { Optional dockerRegistry = dockerRegistryProvider.dockerRegistryFor(applicationSpec.getDockerRegistryName()); - if (dockerRegistry.isPresent() && dockerRegistry.get().getSecure()) { + if (dockerRegistry.isPresent() && dockerRegistry.get().isSecure()) { builder.dockerConfigJson(dockerConfigSealedSecretProducer.produce(dockerRegistry.get())); } } @@ -185,7 +188,7 @@ private void buildConfigFiles(ApplicationValues.ApplicationValuesBuilder builder Map configFiles = new LinkedHashMap<>(); - if (applicationSpec.configEnabled() && applicationSpec.hasConfigs()) { + if (applicationSpec.isConfigFilesEnabled() && applicationSpec.hasConfigs()) { for (ApplicationConfigFile applicationConfigFile : applicationSpec.getConfigFiles()) { configFiles.put(configName(applicationConfigFile), new ApplicationConfigFileValues(applicationConfigFile)); } @@ -200,7 +203,7 @@ private void buildConfigFiles(ApplicationValues.ApplicationValuesBuilder builder } builder - .configFilesEnabled(applicationSpec.configEnabled() || (environmentConfig != null && environmentConfig.configEnabled())) + .configFilesEnabled(applicationSpec.isConfigFilesEnabled() || (environmentConfig != null && environmentConfig.configEnabled())) .configPath(applicationSpec.getConfigPath()) .configFiles(configFiles) .configFileHashes(hashes(configFiles)); @@ -210,7 +213,7 @@ private void buildVolumes(ApplicationValues.ApplicationValuesBuilder builder, Ap Map volumes = new LinkedHashMap<>(); - if (applicationSpec.volumesEnabled() && applicationSpec.hasVolumes()) { + if (applicationSpec.isVolumesEnabled() && applicationSpec.hasVolumes()) { for (ApplicationVolume applicationVolume : applicationSpec.getVolumes()) { volumes.put(applicationVolume.getName(), new ApplicationVolumeValues(applicationVolume)); } @@ -227,7 +230,7 @@ private void buildVolumes(ApplicationValues.ApplicationValuesBuilder builder, Ap } builder - .volumesEnabled(applicationSpec.volumesEnabled() || (environmentConfig != null && environmentConfig.volumesEnabled())) + .volumesEnabled(applicationSpec.isVolumesEnabled() || (environmentConfig != null && environmentConfig.volumesEnabled())) .volumes(volumes); } @@ -235,7 +238,7 @@ private void buildSecrets(ApplicationValues.ApplicationValuesBuilder builder, Ap Map secrets = new LinkedHashMap<>(); - if (applicationSpec.secretsEnabled() && applicationSpec.hasSecrets()) { + if (applicationSpec.isSecretsEnabled() && applicationSpec.hasSecrets()) { for (ApplicationSecret applicationSecret : applicationSpec.getSecrets()) { Map encryptedData = secretDataSealedSecretProducer.produce(applicationSecret); secrets.put(applicationSecret.getName(), new ApplicationSecretValues(applicationSecret.getName(), secretType(applicationSecret), encryptedData)); @@ -254,7 +257,7 @@ private void buildSecrets(ApplicationValues.ApplicationValuesBuilder builder, Ap } builder - .secretsEnabled(applicationSpec.secretsEnabled() || (environmentConfig != null && environmentConfig.secretsEnabled())) + .secretsEnabled(applicationSpec.isSecretsEnabled() || (environmentConfig != null && environmentConfig.secretsEnabled())) .secrets(secrets); } @@ -322,16 +325,15 @@ private String hashes(Map configFiles) thro private String configName(ApplicationConfigFile configFile) { return "application-config-file-" + Hashing.crc32() - .hashString(configFile.getName(), StandardCharsets.UTF_8) - .toString(); + .hashString(configFile.getName(), StandardCharsets.UTF_8); } private String secretType(ApplicationSecret applicationSecret) { switch (applicationSecret.getType()) { case Generic: - return "Opague"; + return SECRET_TYPE_GENERIC; case Tls: - return "kubernetes.io/tls"; + return SECRET_TYPE_TLS; default: throw new IllegalStateException("Unhandled secret type"); } diff --git a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/releases/DuplicateOptions.java b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/releases/DuplicateOptions.java index 72c34f5d..ffa08f54 100644 --- a/ahoy-components/src/main/java/za/co/lsd/ahoy/server/releases/DuplicateOptions.java +++ b/ahoy-components/src/main/java/za/co/lsd/ahoy/server/releases/DuplicateOptions.java @@ -24,7 +24,6 @@ @NoArgsConstructor @AllArgsConstructor public class DuplicateOptions { - private String releaseName; private boolean addToSameEnvironments; private boolean copyEnvironmentConfig; } diff --git a/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseControllerTest.java b/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseControllerTest.java index eb2b759e..920c5458 100644 --- a/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseControllerTest.java +++ b/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseControllerTest.java @@ -327,13 +327,13 @@ void copyApplicationVersionEnvConfigAsDeveloper() throws Exception { @WithMockUser(authorities = {Scope.ahoy, Role.releasemanager}) void duplicate() throws Exception { // given - DuplicateOptions duplicateOptions = new DuplicateOptions("release-1-copy", false, false); + DuplicateOptions duplicateOptions = new DuplicateOptions(false, false); Release duplicatedRelease = new Release(2L, "release-1-copy"); - when(releaseService.duplicate(eq(1L), eq(duplicateOptions))).thenReturn(duplicatedRelease); + when(releaseService.duplicate(eq(1L), eq(2L), eq(duplicateOptions))).thenReturn(duplicatedRelease); // when - mvc.perform(post("/api/releases/1/duplicate") + mvc.perform(post("/api/releases/duplicate/1/2") .contentType(MediaType.APPLICATION_JSON) .content(json(duplicateOptions))) .andDo(print()) @@ -342,17 +342,17 @@ void duplicate() throws Exception { .andExpect(jsonPath("$.name").value("release-1-copy")); // then - verify(releaseService, times(1)).duplicate(eq(1L), eq(duplicateOptions)); + verify(releaseService, times(1)).duplicate(eq(1L), eq(2L), eq(duplicateOptions)); } @Test @WithMockUser(authorities = {Scope.ahoy, Role.developer}) void duplicateAsDeveloper() throws Exception { // given - DuplicateOptions duplicateOptions = new DuplicateOptions("release-1-copy", false, false); + DuplicateOptions duplicateOptions = new DuplicateOptions(false, false); // when - mvc.perform(post("/api/releases/1/duplicate") + mvc.perform(post("/api/releases/duplicate/1/2") .contentType(MediaType.APPLICATION_JSON) .content(json(duplicateOptions))) .andDo(print()) diff --git a/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseServiceIntegrationTest.java b/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseServiceIntegrationTest.java index 17359911..6ee103ca 100644 --- a/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseServiceIntegrationTest.java +++ b/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseServiceIntegrationTest.java @@ -47,6 +47,7 @@ import za.co.lsd.ahoy.server.environmentrelease.EnvironmentReleaseRepository; import za.co.lsd.ahoy.server.environments.Environment; import za.co.lsd.ahoy.server.environments.EnvironmentRepository; +import za.co.lsd.ahoy.server.environments.EnvironmentService; import za.co.lsd.ahoy.server.git.GitSettings; import za.co.lsd.ahoy.server.git.LocalRepo; import za.co.lsd.ahoy.server.releases.*; @@ -93,6 +94,8 @@ class ReleaseServiceIntegrationTest { @Autowired private ReleaseService releaseService; @Autowired + private EnvironmentService environmentService; + @Autowired private SettingsProvider settingsProvider; @Autowired private SettingsService settingsService; @@ -569,4 +572,70 @@ void promote() { assertEquals(ReleaseHistoryAction.PROMOTE, releaseHistory.getAction()); assertEquals(ReleaseHistoryStatus.SUCCESS, releaseHistory.getStatus()); } + + /** + * Tests that we can successfully delete an environment after it has been deployed. + * This should undeploy the currently deployed release as well as cascade delete all related entities. + */ + @Test + @WithMockUser(authorities = {Scope.ahoy, Role.admin, Role.user}) + @DirtiesContext(methodMode = DirtiesContext.MethodMode.AFTER_METHOD) + void deleteEnvironmentWithDeployedRelease() throws Exception { + // given + Cluster cluster = clusterRepository.findById(1L).orElseThrow(); + Environment environment = new Environment("dev"); + cluster.addEnvironment(environment); + environment = environmentRepository.save(environment); + Release release = releaseRepository.save(new Release("release1")); + EnvironmentRelease environmentRelease = new EnvironmentRelease(environment, release); + environmentRelease = environmentReleaseRepository.save(environmentRelease); + + Application application = applicationRepository.save(new Application("app1")); + ApplicationVersion applicationVersion = applicationVersionRepository.save(new ApplicationVersion("1.0.0", application)); + + ReleaseVersion releaseVersion = new ReleaseVersion("1.0.0"); + release.addReleaseVersion(releaseVersion); + releaseVersion.setApplicationVersions(Collections.singletonList(applicationVersion)); + releaseVersion = releaseVersionRepository.save(releaseVersion); + + DeployOptions deployOptions = new DeployOptions(releaseVersion.getId(), "This is a test commit message"); + + String argoApplicationName = "minikube-dev-release1"; + String argoUid = UUID.randomUUID().toString(); + when(argoClient.getApplication(eq(argoApplicationName))) + .thenReturn( + Optional.empty(), + Optional.of(ArgoApplication.builder() + .metadata(ArgoMetadata.builder() + .name(argoApplicationName) + .uid(argoUid) + .build()).build())); + when(argoClient.createApplication(any())).thenAnswer(invocationOnMock -> { + ArgoApplication argoApplication = invocationOnMock.getArgument(0); + argoApplication.getMetadata().setUid(argoUid); + return argoApplication; + }); + releaseService.deploy(environmentRelease.getId(), deployOptions).get(); + + // when + environmentService.destroy(environment.getId()); + + // then + // verify external collaborators + verify(clusterManager, times(1)).createNamespace("release1-dev"); + verify(argoClient, times(1)).upsertRepository(); + verify(argoClient, times(1)).createRepositoryCertificates(); + verify(argoClient, times(2)).getApplication(eq(argoApplicationName)); + verify(argoClient, times(1)).createApplication(any(ArgoApplication.class)); + verify(argoClient, times(1)).deleteApplication(argoApplicationName); + verifyNoMoreInteractions(clusterManager, argoClient); + + // verify environment release + Optional retrievedEnvironmentRelease = environmentReleaseRepository.findById(environmentRelease.getId()); + assertTrue(retrievedEnvironmentRelease.isEmpty()); + + // verify release history + List releaseHistories = StreamSupport.stream(releaseHistoryRepository.findAll().spliterator(), false).collect(Collectors.toList()); + assertEquals(0, releaseHistories.size()); + } } diff --git a/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseServiceTest.java b/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseServiceTest.java index 5e16dd23..5ddb447e 100644 --- a/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseServiceTest.java +++ b/ahoy-components/src/test/java/za/co/lsd/ahoy/server/ReleaseServiceTest.java @@ -331,11 +331,14 @@ public void duplicate() { Application application = new Application("app1"); ApplicationVersion applicationVersion = new ApplicationVersion("1.0.0", application); - Release release = new Release(1L, "release1"); + Release sourceRelease = new Release(1L, "release1"); ReleaseVersion releaseVersion = new ReleaseVersion(1L, "1.0.0"); - release.addReleaseVersion(releaseVersion); + sourceRelease.addReleaseVersion(releaseVersion); releaseVersion.setApplicationVersions(Collections.singletonList(applicationVersion)); - when(releaseRepository.findById(1L)).thenReturn(Optional.of(release)); + Release destRelease = new Release(2L, "release1-copy"); + + when(releaseRepository.findById(1L)).thenReturn(Optional.of(sourceRelease)); + when(releaseRepository.findById(2L)).thenReturn(Optional.of(destRelease)); when(releaseRepository.save(any(Release.class))).thenAnswer(i -> { Release r = (Release) i.getArguments()[0]; @@ -349,10 +352,11 @@ public void duplicate() { }); // when - DuplicateOptions duplicateOptions = new DuplicateOptions("release1-copy", false, false); - Release duplicatedRelease = releaseService.duplicate(release.getId(), duplicateOptions); + DuplicateOptions duplicateOptions = new DuplicateOptions(false, false); + Release duplicatedRelease = releaseService.duplicate(sourceRelease.getId(), destRelease.getId(), duplicateOptions); // then + assertNotNull(duplicatedRelease, "We should have returned the duplicated release"); assertEquals(2L, duplicatedRelease.getId(), "Id incorrect"); assertEquals("release1-copy", duplicatedRelease.getName(), "Name incorrect"); assertEquals(1, duplicatedRelease.getReleaseVersions().size(), "Versions incorrect"); @@ -363,10 +367,8 @@ public void duplicate() { assertTrue(duplicatedReleaseVersion.getReleaseHistories().isEmpty(), "Duplicated release version history incorrect"); assertEquals(releaseVersion.getApplicationVersions(), duplicatedReleaseVersion.getApplicationVersions(), "Duplicated released version doesn't have the application versions from the upgraded version"); - ArgumentCaptor releaseCaptor = ArgumentCaptor.forClass(Release.class); - verify(releaseRepository, times(1)).save(releaseCaptor.capture()); - Release savedRelease = releaseCaptor.getValue(); - assertSame(savedRelease, duplicatedRelease, "Saved release should be the same as the duplicated release"); + verify(releaseRepository, times(1)).findById(sourceRelease.getId()); + verify(releaseRepository, times(1)).findById(destRelease.getId()); ArgumentCaptor releaseVersionCaptor = ArgumentCaptor.forClass(ReleaseVersion.class); verify(releaseVersionRepository, times(1)).save(releaseVersionCaptor.capture()); @@ -387,14 +389,16 @@ public void duplicateWithEnvironment() { Application application = new Application("app1"); ApplicationVersion applicationVersion = new ApplicationVersion("1.0.0", application); - Release release = new Release(1L, "release1"); + Release sourceRelease = new Release(1L, "release1"); ReleaseVersion releaseVersion = new ReleaseVersion(1L, "1.0.0"); - release.addReleaseVersion(releaseVersion); + sourceRelease.addReleaseVersion(releaseVersion); releaseVersion.setApplicationVersions(Collections.singletonList(applicationVersion)); + Release destRelease = new Release(2L, "release1-copy"); - new EnvironmentRelease(environment, release); + new EnvironmentRelease(environment, sourceRelease); - when(releaseRepository.findById(1L)).thenReturn(Optional.of(release)); + when(releaseRepository.findById(1L)).thenReturn(Optional.of(sourceRelease)); + when(releaseRepository.findById(2L)).thenReturn(Optional.of(destRelease)); when(releaseRepository.save(any(Release.class))).thenAnswer(i -> { Release r = (Release) i.getArguments()[0]; @@ -414,10 +418,11 @@ public void duplicateWithEnvironment() { }); // when - DuplicateOptions duplicateOptions = new DuplicateOptions("release1-copy", true, true); - Release duplicatedRelease = releaseService.duplicate(release.getId(), duplicateOptions); + DuplicateOptions duplicateOptions = new DuplicateOptions(true, true); + Release duplicatedRelease = releaseService.duplicate(sourceRelease.getId(), destRelease.getId(), duplicateOptions); // then + assertNotNull(duplicatedRelease, "We should have returned the duplicated release"); assertEquals(2L, duplicatedRelease.getId(), "Id incorrect"); assertEquals("release1-copy", duplicatedRelease.getName(), "Name incorrect"); assertEquals(1, duplicatedRelease.getReleaseVersions().size(), "Versions incorrect"); @@ -432,10 +437,8 @@ public void duplicateWithEnvironment() { assertEquals(1L, duplicatedEnvironmentRelease.getEnvironment().getId(), "Duplicated environment release env incorrect"); assertEquals(2L, duplicatedEnvironmentRelease.getRelease().getId(), "Duplicated environment release release incorrect"); - ArgumentCaptor releaseCaptor = ArgumentCaptor.forClass(Release.class); - verify(releaseRepository, times(1)).save(releaseCaptor.capture()); - Release savedRelease = releaseCaptor.getValue(); - assertSame(savedRelease, duplicatedRelease, "Saved release should be the same as the duplicated release"); + verify(releaseRepository, times(1)).findById(sourceRelease.getId()); + verify(releaseRepository, times(1)).findById(destRelease.getId()); ArgumentCaptor releaseVersionCaptor = ArgumentCaptor.forClass(ReleaseVersion.class); verify(releaseVersionRepository, times(1)).save(releaseVersionCaptor.capture()); @@ -460,14 +463,16 @@ public void duplicateWithEnvironmentAndEnvConfig() { Application application = new Application("app1"); ApplicationVersion applicationVersion = new ApplicationVersion("1.0.0", application); - Release release = new Release(1L, "release1"); + Release sourceRelease = new Release(1L, "release1"); ReleaseVersion releaseVersion = new ReleaseVersion(1L, "1.0.0"); - release.addReleaseVersion(releaseVersion); + sourceRelease.addReleaseVersion(releaseVersion); releaseVersion.setApplicationVersions(Collections.singletonList(applicationVersion)); + Release destRelease = new Release(2L, "release1-copy"); - EnvironmentRelease environmentRelease = new EnvironmentRelease(environment, release); + EnvironmentRelease environmentRelease = new EnvironmentRelease(environment, sourceRelease); - when(releaseRepository.findById(1L)).thenReturn(Optional.of(release)); + when(releaseRepository.findById(1L)).thenReturn(Optional.of(sourceRelease)); + when(releaseRepository.findById(2L)).thenReturn(Optional.of(destRelease)); when(releaseRepository.save(any(Release.class))).thenAnswer(i -> { Release r = (Release) i.getArguments()[0]; @@ -494,10 +499,11 @@ public void duplicateWithEnvironmentAndEnvConfig() { when(environmentConfigProvider.environmentConfigFor(environmentRelease, releaseVersion, applicationVersion)).thenReturn(Optional.of(environmentConfig)); // when - DuplicateOptions duplicateOptions = new DuplicateOptions("release1-copy", true, true); - Release duplicatedRelease = releaseService.duplicate(release.getId(), duplicateOptions); + DuplicateOptions duplicateOptions = new DuplicateOptions(true, true); + Release duplicatedRelease = releaseService.duplicate(sourceRelease.getId(), destRelease.getId(), duplicateOptions); // then + assertNotNull(duplicatedRelease, "We should have returned the duplicated release"); assertEquals(2L, duplicatedRelease.getId(), "Id incorrect"); assertEquals("release1-copy", duplicatedRelease.getName(), "Name incorrect"); assertEquals(1, duplicatedRelease.getReleaseVersions().size(), "Versions incorrect"); @@ -512,10 +518,8 @@ public void duplicateWithEnvironmentAndEnvConfig() { assertEquals(1L, duplicatedEnvironmentRelease.getEnvironment().getId(), "Duplicated environment release env incorrect"); assertEquals(2L, duplicatedEnvironmentRelease.getRelease().getId(), "Duplicated environment release release incorrect"); - ArgumentCaptor releaseCaptor = ArgumentCaptor.forClass(Release.class); - verify(releaseRepository, times(1)).save(releaseCaptor.capture()); - Release savedRelease = releaseCaptor.getValue(); - assertSame(savedRelease, duplicatedRelease, "Saved release should be the same as the duplicated release"); + verify(releaseRepository, times(1)).findById(sourceRelease.getId()); + verify(releaseRepository, times(1)).findById(destRelease.getId()); ArgumentCaptor releaseVersionCaptor = ArgumentCaptor.forClass(ReleaseVersion.class); verify(releaseVersionRepository, times(1)).save(releaseVersionCaptor.capture()); diff --git a/ahoy-components/src/test/java/za/co/lsd/ahoy/server/environments/EnvironmentServiceTest.java b/ahoy-components/src/test/java/za/co/lsd/ahoy/server/environments/EnvironmentServiceTest.java index 696b295e..0f9a4cb3 100644 --- a/ahoy-components/src/test/java/za/co/lsd/ahoy/server/environments/EnvironmentServiceTest.java +++ b/ahoy-components/src/test/java/za/co/lsd/ahoy/server/environments/EnvironmentServiceTest.java @@ -33,6 +33,7 @@ import za.co.lsd.ahoy.server.cluster.ClusterRepository; import za.co.lsd.ahoy.server.cluster.ClusterType; import za.co.lsd.ahoy.server.environmentrelease.EnvironmentRelease; +import za.co.lsd.ahoy.server.environmentrelease.EnvironmentReleaseRepository; import za.co.lsd.ahoy.server.releases.Release; import za.co.lsd.ahoy.server.releases.ReleaseVersion; @@ -54,6 +55,8 @@ class EnvironmentServiceTest { private ClusterRepository clusterRepository; @MockBean private ReleaseService releaseService; + @MockBean + private EnvironmentReleaseRepository environmentReleaseRepository; @Autowired private EnvironmentService environmentService; @@ -66,6 +69,64 @@ void updateOrderIndex() { verify(environmentRepository, times(1)).updateOrderIndex(eq(1L), eq(500.0)); } + @Test + void duplicate() { + // given + Cluster cluster = new Cluster(1L, "test-cluster", "https://kubernetes1.default.svc", ClusterType.KUBERNETES); + + Environment sourceEnvironment = new Environment(1L, "dev"); + Environment destEnvironment = new Environment(2L, "qa"); + cluster.addEnvironment(sourceEnvironment); + + Release release = new Release(1L, "release1"); + EnvironmentRelease environmentRelease = new EnvironmentRelease(sourceEnvironment, release); + environmentRelease.setCurrentReleaseVersion(null); + + when(environmentRepository.findById(1L)).thenReturn(Optional.of(sourceEnvironment)); + when(environmentRepository.findById(2L)).thenReturn(Optional.of(destEnvironment)); + + // when + environmentService.duplicate(sourceEnvironment.getId(), destEnvironment.getId(), new DuplicateOptions(false)); + + // then + verify(environmentRepository, times(1)).findById(sourceEnvironment.getId()); + verify(environmentRepository, times(1)).findById(destEnvironment.getId()); + EnvironmentRelease expectedEnvironmentRelease = new EnvironmentRelease(destEnvironment, release); + verify(environmentReleaseRepository, times(1)).save(eq(expectedEnvironmentRelease)); + + verifyNoMoreInteractions(environmentRepository, environmentReleaseRepository, releaseService); + } + + @Test + void duplicateWithEnvironmentConfig() { + // given + Cluster cluster = new Cluster(1L, "test-cluster", "https://kubernetes1.default.svc", ClusterType.KUBERNETES); + + Environment sourceEnvironment = new Environment(1L, "dev"); + Environment destEnvironment = new Environment(2L, "qa"); + cluster.addEnvironment(sourceEnvironment); + + Release release = new Release(1L, "release1"); + EnvironmentRelease environmentRelease = new EnvironmentRelease(sourceEnvironment, release); + environmentRelease.setCurrentReleaseVersion(null); + + when(environmentRepository.findById(1L)).thenReturn(Optional.of(sourceEnvironment)); + when(environmentRepository.findById(2L)).thenReturn(Optional.of(destEnvironment)); + + // when + DuplicateOptions duplicateOptionsWithCopyEnvConfig = new DuplicateOptions(true); + environmentService.duplicate(sourceEnvironment.getId(), destEnvironment.getId(), duplicateOptionsWithCopyEnvConfig); + + // then + verify(environmentRepository, times(1)).findById(sourceEnvironment.getId()); + verify(environmentRepository, times(1)).findById(destEnvironment.getId()); + EnvironmentRelease expectedEnvironmentRelease = new EnvironmentRelease(destEnvironment, release); + verify(environmentReleaseRepository, times(1)).save(eq(expectedEnvironmentRelease)); + verify(releaseService, times(1)).copyEnvironmentConfig(same(environmentRelease), eq(expectedEnvironmentRelease)); + + verifyNoMoreInteractions(environmentRepository, environmentReleaseRepository, releaseService); + } + @Test void moveNoPreviousDeployments() { // given diff --git a/ahoy-components/src/test/java/za/co/lsd/ahoy/server/helm/ChartGeneratorTest.java b/ahoy-components/src/test/java/za/co/lsd/ahoy/server/helm/ChartGeneratorTest.java index 0f7c6ff8..6d8e1e44 100644 --- a/ahoy-components/src/test/java/za/co/lsd/ahoy/server/helm/ChartGeneratorTest.java +++ b/ahoy-components/src/test/java/za/co/lsd/ahoy/server/helm/ChartGeneratorTest.java @@ -484,9 +484,9 @@ public void generateFull() throws Exception { volumes.put("my-env-secret-volume", new ApplicationVolumeValues("my-env-secret-volume", "/opt/env-secret-vol", "my-env-secret")); Map secrets = new LinkedHashMap<>(); - secrets.put("my-secret", new ApplicationSecretValues("my-secret", "Opague", Collections.singletonMap("secret-key", "secret-value"))); + secrets.put("my-secret", new ApplicationSecretValues("my-secret", "Opaque", Collections.singletonMap("secret-key", "secret-value"))); secrets.put("my-tls-secret", new ApplicationSecretValues("my-tls-secret", "kubernetes.io/tls", Collections.singletonMap("cert", "my-cert"))); - secrets.put("my-env-secret", new ApplicationSecretValues("my-env-secret", "Opague", Collections.singletonMap("env-secret-key", "env-secret-value"))); + secrets.put("my-env-secret", new ApplicationSecretValues("my-env-secret", "Opaque", Collections.singletonMap("env-secret-key", "env-secret-value"))); ApplicationValues expectedApplicationValues = ApplicationValues.builder() .name("app1") @@ -704,9 +704,9 @@ public void generateFullMultiContainer() throws Exception { volumes.put("my-env-secret-volume", new ApplicationVolumeValues("my-env-secret-volume", "/opt/env-secret-vol", "my-env-secret")); Map secrets = new LinkedHashMap<>(); - secrets.put("my-secret", new ApplicationSecretValues("my-secret", "Opague", Collections.singletonMap("secret-key", "secret-value"))); + secrets.put("my-secret", new ApplicationSecretValues("my-secret", "Opaque", Collections.singletonMap("secret-key", "secret-value"))); secrets.put("my-tls-secret", new ApplicationSecretValues("my-tls-secret", "kubernetes.io/tls", Collections.singletonMap("cert", "my-cert"))); - secrets.put("my-env-secret", new ApplicationSecretValues("my-env-secret", "Opague", Collections.singletonMap("env-secret-key", "env-secret-value"))); + secrets.put("my-env-secret", new ApplicationSecretValues("my-env-secret", "Opaque", Collections.singletonMap("env-secret-key", "env-secret-value"))); Map containers = new LinkedHashMap<>(); containers.put("default", ContainerValues.builder() @@ -946,9 +946,9 @@ public void generateFullInitContainer() throws Exception { volumes.put("my-env-secret-volume", new ApplicationVolumeValues("my-env-secret-volume", "/opt/env-secret-vol", "my-env-secret")); Map secrets = new LinkedHashMap<>(); - secrets.put("my-secret", new ApplicationSecretValues("my-secret", "Opague", Collections.singletonMap("secret-key", "secret-value"))); + secrets.put("my-secret", new ApplicationSecretValues("my-secret", "Opaque", Collections.singletonMap("secret-key", "secret-value"))); secrets.put("my-tls-secret", new ApplicationSecretValues("my-tls-secret", "kubernetes.io/tls", Collections.singletonMap("cert", "my-cert"))); - secrets.put("my-env-secret", new ApplicationSecretValues("my-env-secret", "Opague", Collections.singletonMap("env-secret-key", "env-secret-value"))); + secrets.put("my-env-secret", new ApplicationSecretValues("my-env-secret", "Opaque", Collections.singletonMap("env-secret-key", "env-secret-value"))); ApplicationValues expectedApplicationValues = ApplicationValues.builder() .name("app1") @@ -1125,7 +1125,7 @@ public void generateEnvConfigOnly() throws Exception { volumes.put("my-env-secret-volume", new ApplicationVolumeValues("my-env-secret-volume", "/opt/env-secret-vol", "my-env-secret")); Map secrets = new LinkedHashMap<>(); - secrets.put("my-env-secret", new ApplicationSecretValues("my-env-secret", "Opague", Collections.singletonMap("env-secret-key", "env-secret-value"))); + secrets.put("my-env-secret", new ApplicationSecretValues("my-env-secret", "Opaque", Collections.singletonMap("env-secret-key", "env-secret-value"))); secrets.put("my-tls-secret", new ApplicationSecretValues("my-tls-secret", "kubernetes.io/tls", Collections.singletonMap("cert", "my-cert"))); ApplicationValues expectedApplicationValues = ApplicationValues.builder() diff --git a/ahoy-server/pom.xml b/ahoy-server/pom.xml index e6556ce8..523e521e 100644 --- a/ahoy-server/pom.xml +++ b/ahoy-server/pom.xml @@ -22,7 +22,7 @@ za.co.lsd.ahoy ahoy - 0.14.0 + 0.15.0 ahoy-server diff --git a/ahoy-ui/package-lock.json b/ahoy-ui/package-lock.json index a97f3642..66900421 100644 --- a/ahoy-ui/package-lock.json +++ b/ahoy-ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "ahoy-ui", - "version": "0.14.0", + "version": "0.15.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "ahoy-ui", - "version": "0.14.0", + "version": "0.15.0", "dependencies": { "@angular/animations": "^13.2.4", "@angular/cdk": "^13.2.4", @@ -23,9 +23,9 @@ "event-source-polyfill": "^1.0.25", "jwt-decode": "^3.1.2", "net": "^1.0.2", - "primeflex": "3.1.2", + "primeflex": "3.2.1", "primeicons": "5.0.0", - "primeng": "13.0.4", + "primeng": "13.4.1", "rxjs": "^7.5.2", "tslib": "^2.0.0", "zone.js": "~0.11.4" @@ -10764,9 +10764,9 @@ } }, "node_modules/primeflex": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/primeflex/-/primeflex-3.1.2.tgz", - "integrity": "sha512-q63sFNk3KPHSoM4EEEgo0MFTJSQhz4PZpJoQnVa8bcju/N7D8koloF9fniXV8UBlKFQzh0DLr5iFZ4c6FFXO4g==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/primeflex/-/primeflex-3.2.1.tgz", + "integrity": "sha512-sGDJ4mh2fG19xa1yc4IPGSQ8MUMyu5nU+tYnl27AFuFHhX8XwEA7fWCtWyBbclclVhXtre+Kf9WobWPnfxWAEQ==" }, "node_modules/primeicons": { "version": "5.0.0", @@ -10774,9 +10774,9 @@ "integrity": "sha512-heygWF0X5HFI1otlZE62pp6ye7sZ8om78J9au2BRkg8O7Y8AHTZ9qKMRzchZUHLe8zUAvdi6hZzzm9XxgwIExw==" }, "node_modules/primeng": { - "version": "13.0.4", - "resolved": "https://registry.npmjs.org/primeng/-/primeng-13.0.4.tgz", - "integrity": "sha512-hX6TcZ5UwCzA3cfl9csk/N9l0R9mek/QR/BWDQI2zH9Jtc5W1x9FUXnZPj4pUlCDvYL5NW21Yu7d9fDhIe20qQ==", + "version": "13.4.1", + "resolved": "https://registry.npmjs.org/primeng/-/primeng-13.4.1.tgz", + "integrity": "sha512-Dp72Yt7ORwoVYXr5r4oNTacQHUyLAdTuvXXNg9ZNjjxCdIfYZsVjTFBHBVzgEo9BpPy+/5twYy1JP/eXXDNPHg==", "dependencies": { "tslib": "^2.3.0" }, @@ -21769,9 +21769,9 @@ "dev": true }, "primeflex": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/primeflex/-/primeflex-3.1.2.tgz", - "integrity": "sha512-q63sFNk3KPHSoM4EEEgo0MFTJSQhz4PZpJoQnVa8bcju/N7D8koloF9fniXV8UBlKFQzh0DLr5iFZ4c6FFXO4g==" + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/primeflex/-/primeflex-3.2.1.tgz", + "integrity": "sha512-sGDJ4mh2fG19xa1yc4IPGSQ8MUMyu5nU+tYnl27AFuFHhX8XwEA7fWCtWyBbclclVhXtre+Kf9WobWPnfxWAEQ==" }, "primeicons": { "version": "5.0.0", @@ -21779,9 +21779,9 @@ "integrity": "sha512-heygWF0X5HFI1otlZE62pp6ye7sZ8om78J9au2BRkg8O7Y8AHTZ9qKMRzchZUHLe8zUAvdi6hZzzm9XxgwIExw==" }, "primeng": { - "version": "13.0.4", - "resolved": "https://registry.npmjs.org/primeng/-/primeng-13.0.4.tgz", - "integrity": "sha512-hX6TcZ5UwCzA3cfl9csk/N9l0R9mek/QR/BWDQI2zH9Jtc5W1x9FUXnZPj4pUlCDvYL5NW21Yu7d9fDhIe20qQ==", + "version": "13.4.1", + "resolved": "https://registry.npmjs.org/primeng/-/primeng-13.4.1.tgz", + "integrity": "sha512-Dp72Yt7ORwoVYXr5r4oNTacQHUyLAdTuvXXNg9ZNjjxCdIfYZsVjTFBHBVzgEo9BpPy+/5twYy1JP/eXXDNPHg==", "requires": { "tslib": "^2.3.0" } diff --git a/ahoy-ui/package.json b/ahoy-ui/package.json index 8ac15a79..2bbbbc9a 100644 --- a/ahoy-ui/package.json +++ b/ahoy-ui/package.json @@ -1,6 +1,6 @@ { "name": "ahoy-ui", - "version": "0.14.0", + "version": "0.15.0", "scripts": { "ng": "ng", "start": "ng serve", @@ -29,9 +29,9 @@ "event-source-polyfill": "^1.0.25", "jwt-decode": "^3.1.2", "net": "^1.0.2", - "primeflex": "3.1.2", + "primeflex": "3.2.1", "primeicons": "5.0.0", - "primeng": "13.0.4", + "primeng": "13.4.1", "rxjs": "^7.5.2", "tslib": "^2.0.0", "zone.js": "~0.11.4" diff --git a/ahoy-ui/pom.xml b/ahoy-ui/pom.xml index 2f8c488c..e9340770 100644 --- a/ahoy-ui/pom.xml +++ b/ahoy-ui/pom.xml @@ -22,7 +22,7 @@ za.co.lsd.ahoy ahoy - 0.14.0 + 0.15.0 ahoy-ui pom diff --git a/ahoy-ui/projects/ahoy-app/src/assets/layout/css/layout-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/layout/css/layout-dark.css index 430a929f..9d82bd81 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/layout/css/layout-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/layout/css/layout-dark.css @@ -4326,6 +4326,109 @@ body a { z-index: 999; } +.layout-topbar .notifications .layout-topbar-action-panel img { + width: 32px; + height: 32px; +} +.layout-topbar .notifications .layout-topbar-action-panel .layout-topbar-action-item { + border-bottom: 1px solid var(--divider-color); +} +.layout-topbar .notifications .layout-topbar-action-panel .layout-topbar-action-item:last-child { + border-bottom: 0 none; +} +.layout-topbar .app .layout-topbar-action-panel a { + padding: 0.5rem 0; +} +.layout-topbar .app .layout-topbar-action-panel a i { + width: 42px; + height: 42px; + border: 1px solid transparent; + border-radius: 50%; + margin: 0.5rem 0; + display: flex; + align-items: center; + justify-content: center; +} + +.layout-rightmenu .header { + padding-bottom: 0.5rem; + margin-bottom: 0.714rem; + border-bottom: 1px solid var(--divider-color); +} +.layout-rightmenu .online-members img { + width: 32px; +} +.layout-rightmenu .online-members b { + color: var(--primary-color); +} +.layout-rightmenu .latest-activity i { + border: 1px solid transparent; + border-radius: 50px; + background-color: var(--surface-d); +} +.layout-rightmenu .next-events ul { + margin: 0; + list-style-type: none; + padding: 0; +} +.layout-rightmenu .next-events ul > li { + padding: 0.875rem 0.5rem; +} + +.layout-help-page .questions.p-accordion p-accordiontab .p-accordion-tab { + margin-top: 1rem; +} +.layout-help-page .questions.p-accordion p-accordiontab:first-child .p-accordion-tab { + margin-top: 0; +} + +.layout-invoice-page .p-invoice-datatable-responsive .p-datatable-tbody > tr > td .p-column-title { + display: none; +} +@media screen and (max-width: 40rem) { + .layout-invoice-page .p-invoice-datatable-responsive .p-datatable-thead > tr > th, +.layout-invoice-page .p-invoice-datatable-responsive .p-datatable-tfoot > tr > td { + display: none !important; + } + .layout-invoice-page .p-invoice-datatable-responsive .p-datatable-tbody > tr > td { + text-align: left; + display: block; + width: 100%; + float: left; + clear: left; + border: 0 none; + } + .layout-invoice-page .p-invoice-datatable-responsive .p-datatable-tbody > tr > td .p-column-title { + padding: 0.4rem; + min-width: 30%; + display: inline-block; + margin: -0.4em 1em -0.4em -0.4rem; + font-weight: bold; + } + .layout-invoice-page .p-invoice-datatable-responsive .p-datatable-tbody > tr > td:last-child { + border-bottom: 1px solid var(--surface-d); + } +} + +@media (min-width: 992px) { + .layout-menu-slim .layout-inline-menu .layout-inline-menu-action { + justify-content: center; + } + .layout-menu-slim .layout-inline-menu .layout-inline-menu-action > span, +.layout-menu-slim .layout-inline-menu .layout-inline-menu-action > i { + display: none !important; + } + .layout-menu-slim .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item > a { + justify-content: center; + } + .layout-menu-slim .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item > a > i { + font-size: 1.5rem; + margin-right: 0 !important; + } + .layout-menu-slim .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item > a > span { + display: none; + } +} .layout-footer { background-color: #1e1e1e; } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/layout/css/layout-light.css b/ahoy-ui/projects/ahoy-app/src/assets/layout/css/layout-light.css index 893a60c0..d0f37c6a 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/layout/css/layout-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/layout/css/layout-light.css @@ -4326,6 +4326,109 @@ body a { z-index: 999; } +.layout-topbar .notifications .layout-topbar-action-panel img { + width: 32px; + height: 32px; +} +.layout-topbar .notifications .layout-topbar-action-panel .layout-topbar-action-item { + border-bottom: 1px solid var(--divider-color); +} +.layout-topbar .notifications .layout-topbar-action-panel .layout-topbar-action-item:last-child { + border-bottom: 0 none; +} +.layout-topbar .app .layout-topbar-action-panel a { + padding: 0.5rem 0; +} +.layout-topbar .app .layout-topbar-action-panel a i { + width: 42px; + height: 42px; + border: 1px solid transparent; + border-radius: 50%; + margin: 0.5rem 0; + display: flex; + align-items: center; + justify-content: center; +} + +.layout-rightmenu .header { + padding-bottom: 0.5rem; + margin-bottom: 0.714rem; + border-bottom: 1px solid var(--divider-color); +} +.layout-rightmenu .online-members img { + width: 32px; +} +.layout-rightmenu .online-members b { + color: var(--primary-color); +} +.layout-rightmenu .latest-activity i { + border: 1px solid transparent; + border-radius: 50px; + background-color: var(--surface-d); +} +.layout-rightmenu .next-events ul { + margin: 0; + list-style-type: none; + padding: 0; +} +.layout-rightmenu .next-events ul > li { + padding: 0.875rem 0.5rem; +} + +.layout-help-page .questions.p-accordion p-accordiontab .p-accordion-tab { + margin-top: 1rem; +} +.layout-help-page .questions.p-accordion p-accordiontab:first-child .p-accordion-tab { + margin-top: 0; +} + +.layout-invoice-page .p-invoice-datatable-responsive .p-datatable-tbody > tr > td .p-column-title { + display: none; +} +@media screen and (max-width: 40rem) { + .layout-invoice-page .p-invoice-datatable-responsive .p-datatable-thead > tr > th, +.layout-invoice-page .p-invoice-datatable-responsive .p-datatable-tfoot > tr > td { + display: none !important; + } + .layout-invoice-page .p-invoice-datatable-responsive .p-datatable-tbody > tr > td { + text-align: left; + display: block; + width: 100%; + float: left; + clear: left; + border: 0 none; + } + .layout-invoice-page .p-invoice-datatable-responsive .p-datatable-tbody > tr > td .p-column-title { + padding: 0.4rem; + min-width: 30%; + display: inline-block; + margin: -0.4em 1em -0.4em -0.4rem; + font-weight: bold; + } + .layout-invoice-page .p-invoice-datatable-responsive .p-datatable-tbody > tr > td:last-child { + border-bottom: 1px solid var(--surface-d); + } +} + +@media (min-width: 992px) { + .layout-menu-slim .layout-inline-menu .layout-inline-menu-action { + justify-content: center; + } + .layout-menu-slim .layout-inline-menu .layout-inline-menu-action > span, +.layout-menu-slim .layout-inline-menu .layout-inline-menu-action > i { + display: none !important; + } + .layout-menu-slim .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item > a { + justify-content: center; + } + .layout-menu-slim .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item > a > i { + font-size: 1.5rem; + margin-right: 0 !important; + } + .layout-menu-slim .layout-inline-menu .layout-inline-menu-action-panel .layout-inline-menu-action-item > a > span { + display: none; + } +} .layout-footer { background-color: #ffffff; } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/layout/_config.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/layout/_config.scss index 8671d550..5ada20b1 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/layout/_config.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/layout/_config.scss @@ -75,8 +75,9 @@ } .layout-config-button.p-button { + z-index: 1001; position: fixed; - top: 35%; + top: 50%; right: 0; width: auto; border-top-right-radius: 0; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/layout/_main.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/layout/_main.scss index 290df080..18afc6ce 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/layout/_main.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/layout/_main.scss @@ -73,3 +73,164 @@ body { color: $textSecondaryColor; z-index: 999; } + +.layout-topbar { + .notifications { + .layout-topbar-action-panel { + img { + width: 32px; + height: 32px; + } + + .layout-topbar-action-item { + border-bottom: 1px solid var(--divider-color); + + &:last-child { + border-bottom: 0 none; + } + } + } + } + + .app { + .layout-topbar-action-panel { + a { + padding: .5rem 0; + + i { + width: 42px; + height: 42px; + border: 1px solid transparent; + border-radius: 50%; + margin: .5rem 0; + display: flex; + align-items: center; + justify-content: center; + } + } + } + } +} + +.layout-rightmenu { + .header { + padding-bottom: .5rem; + margin-bottom: .714rem; + border-bottom: 1px solid var(--divider-color); + } + + .online-members { + img { + width: 32px; + } + + b { + color: var(--primary-color) + } + } + + .latest-activity { + i { + border: 1px solid transparent; + border-radius: 50px; + background-color: var(--surface-d); + } + } + + .next-events { + ul { + margin: 0; + list-style-type: none; + padding: 0; + + > li { + padding: .875rem .5rem; + } + } + } +} + +.layout-help-page { + .questions { + &.p-accordion p-accordiontab { + .p-accordion-tab { + margin-top: 1rem; + } + + &:first-child { + .p-accordion-tab { + margin-top: 0; + } + } + } + } +} + +.layout-invoice-page { + .p-invoice-datatable-responsive .p-datatable-tbody > tr > td .p-column-title { + display: none; + } + + @media screen and (max-width: 40rem) { + .p-invoice-datatable-responsive { + .p-datatable-thead > tr > th, + .p-datatable-tfoot > tr > td { + display: none !important; + } + + .p-datatable-tbody > tr > td { + text-align: left; + display: block; + width: 100%; + float: left; + clear: left; + border: 0 none; + + .p-column-title { + padding: .4rem; + min-width: 30%; + display: inline-block; + margin: -.4em 1em -.4em -.4rem; + font-weight: bold; + } + + &:last-child { + border-bottom: 1px solid var(--surface-d); + } + } + } + } +} + +@media (min-width: 992px) { + .layout-menu-slim { + .layout-inline-menu { + .layout-inline-menu-action { + justify-content: center; + + > span, + > i { + display: none !important; + } + } + + .layout-inline-menu-action-panel { + .layout-inline-menu-action-item { + > a { + justify-content: center; + + > i { + font-size: 1.5rem; + margin-right: 0 !important; + } + + > span { + display: none; + } + } + } + } + } + } +} + diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/_mixins.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/_mixins.scss index f341bf71..3da63abb 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/_mixins.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/_mixins.scss @@ -194,3 +194,12 @@ @function shade($color, $percentage) { @return mix(#000, $color, $percentage); } + +@mixin button-states { + // and tags support :enabled selector. + + &:enabled, + &:not(button):not(a):not(.p-disabled) { + @content; + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/button/_splitbutton.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/button/_splitbutton.scss index d0814619..e4787caa 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/button/_splitbutton.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/button/_splitbutton.scss @@ -14,4 +14,384 @@ * limitations under the License. */ -.p-splitbutton {} +.p-splitbutton { + border-radius: $borderRadius; + + &.p-button-outlined { + > .p-button { + background-color: transparent; + color: $buttonBg; + border: $outlinedButtonBorder; + + @include button-states { + &:hover { + background: rgba($buttonBg, $textButtonHoverBgOpacity); + color: $buttonBg; + } + + &:active { + background: rgba($buttonBg, $textButtonActiveBgOpacity); + color: $buttonBg; + } + } + } + + &.p-button-plain { + > .p-button { + color: $plainButtonTextColor; + border-color: $plainButtonTextColor; + + @include button-states { + &:hover { + background: $plainButtonHoverBgColor; + color: $plainButtonTextColor; + } + + &:active { + background: $plainButtonActiveBgColor; + color: $plainButtonTextColor; + } + } + } + } + } + + &.p-button-text { + > .p-button { + background-color: transparent; + color: $buttonBg; + border-color: transparent; + + @include button-states { + &:hover { + background: rgba($buttonBg, $textButtonHoverBgOpacity); + color: $buttonBg; + border-color: transparent; + } + + &:active { + background: rgba($buttonBg, $textButtonActiveBgOpacity); + color: $buttonBg; + border-color: transparent; + } + } + } + + &.p-button-plain { + > .p-button { + color: $plainButtonTextColor; + + @include button-states { + &:hover { + background: $plainButtonHoverBgColor; + color: $plainButtonTextColor; + } + + &:active { + background: $plainButtonActiveBgColor; + color: $plainButtonTextColor; + } + } + } + } + } + + + &.p-button-raised { + box-shadow: $raisedButtonShadow; + } + + &.p-button-rounded { + border-radius: $roundedButtonBorderRadius; + + > .p-button { + border-radius: $roundedButtonBorderRadius; + } + } + + &.p-button-sm { + > .p-button { + @include scaledFontSize($fontSize, $scaleSM); + @include scaledPadding($buttonPadding, $scaleSM); + + .p-button-icon { + @include scaledFontSize($primeIconFontSize, $scaleSM); + } + } + } + + &.p-button-lg { + > .p-button { + @include scaledFontSize($fontSize, $scaleLG); + @include scaledPadding($buttonPadding, $scaleLG); + + .p-button-icon { + @include scaledFontSize($primeIconFontSize, $scaleLG); + } + } + } +} + +.p-splitbutton.p-button-secondary { + &.p-button-outlined { + > .p-button { + background-color: transparent; + color: $secondaryButtonBg; + border: $outlinedButtonBorder; + + @include button-states { + &:hover { + background: rgba($secondaryButtonBg, $textButtonHoverBgOpacity); + color: $secondaryButtonBg; + } + + &:active { + background: rgba($secondaryButtonBg, $textButtonActiveBgOpacity); + color: $secondaryButtonBg; + } + } + } + } + + &.p-button-text { + > .p-button { + background-color: transparent; + color: $secondaryButtonBg; + border-color: transparent; + + @include button-states { + &:hover { + background: rgba($secondaryButtonBg, $textButtonHoverBgOpacity); + border-color: transparent; + color: $secondaryButtonBg; + } + + &:active { + background: rgba($secondaryButtonBg, $textButtonActiveBgOpacity); + border-color: transparent; + color: $secondaryButtonBg; + } + } + } + } +} + +.p-splitbutton.p-button-info { + &.p-button-outlined { + > .p-button { + background-color: transparent; + color: $infoButtonBg; + border: $outlinedButtonBorder; + + @include button-states { + &:hover { + background: rgba($infoButtonBg, $textButtonHoverBgOpacity); + color: $infoButtonBg; + } + + &:active { + background: rgba($infoButtonBg, $textButtonActiveBgOpacity); + color: $infoButtonBg; + } + } + } + } + + &.p-button-text { + > .p-button { + background-color: transparent; + color: $infoButtonBg; + border-color: transparent; + + @include button-states { + &:hover { + background: rgba($infoButtonBg, $textButtonHoverBgOpacity); + border-color: transparent; + color: $infoButtonBg; + } + + &:active { + background: rgba($infoButtonBg, $textButtonActiveBgOpacity); + border-color: transparent; + color: $infoButtonBg; + } + } + } + } +} + +.p-splitbutton.p-button-success { + &.p-button-outlined { + > .p-button { + background-color: transparent; + color: $successButtonBg; + border: $outlinedButtonBorder; + + @include button-states { + &:hover { + background: rgba($successButtonBg, $textButtonHoverBgOpacity); + color: $successButtonBg; + } + + &:active { + background: rgba($successButtonBg, $textButtonActiveBgOpacity); + color: $successButtonBg; + } + } + } + } + + &.p-button-text { + > .p-button { + background-color: transparent; + color: $successButtonBg; + border-color: transparent; + + @include button-states { + &:hover { + background: rgba($successButtonBg, $textButtonHoverBgOpacity); + border-color: transparent; + color: $successButtonBg; + } + + &:active { + background: rgba($successButtonBg, $textButtonActiveBgOpacity); + border-color: transparent; + color: $successButtonBg; + } + } + } + } +} + +.p-splitbutton.p-button-warning { + &.p-button-outlined { + > .p-button { + background-color: transparent; + color: $warningButtonBg; + border: $outlinedButtonBorder; + + @include button-states { + &:hover { + background: rgba($warningButtonBg, $textButtonHoverBgOpacity); + color: $warningButtonBg; + } + + &:active { + background: rgba($warningButtonBg, $textButtonActiveBgOpacity); + color: $warningButtonBg; + } + } + } + } + + &.p-button-text { + > .p-button { + background-color: transparent; + color: $warningButtonBg; + border-color: transparent; + + @include button-states { + &:hover { + background: rgba($warningButtonBg, $textButtonHoverBgOpacity); + border-color: transparent; + color: $warningButtonBg; + } + + &:active { + background: rgba($warningButtonBg, $textButtonActiveBgOpacity); + border-color: transparent; + color: $warningButtonBg; + } + } + } + } +} + +.p-splitbutton.p-button-help { + &.p-button-outlined { + > .p-button { + background-color: transparent; + color: $helpButtonBg; + border: $outlinedButtonBorder; + + @include button-states { + &:hover { + background: rgba($helpButtonBg, $textButtonHoverBgOpacity); + color: $helpButtonBg; + } + + &:active { + background: rgba($helpButtonBg, $textButtonActiveBgOpacity); + color: $helpButtonBg; + } + } + } + } + + &.p-button-text { + > .p-button { + background-color: transparent; + color: $helpButtonBg; + border-color: transparent; + + @include button-states { + &:hover { + background: rgba($helpButtonBg, $textButtonHoverBgOpacity); + border-color: transparent; + color: $helpButtonBg; + } + + &:active { + background: rgba($helpButtonBg, $textButtonActiveBgOpacity); + border-color: transparent; + color: $helpButtonBg; + } + } + } + } +} + +.p-splitbutton.p-button-danger { + &.p-button-outlined { + > .p-button { + background-color: transparent; + color: $dangerButtonBg; + border: $outlinedButtonBorder; + + @include button-states { + &:hover { + background: rgba($dangerButtonBg, $textButtonHoverBgOpacity); + color: $dangerButtonBg; + } + + &:active { + background: rgba($dangerButtonBg, $textButtonActiveBgOpacity); + color: $dangerButtonBg; + } + } + } + } + + &.p-button-text { + > .p-button { + background-color: transparent; + color: $dangerButtonBg; + border-color: transparent; + + @include button-states { + &:hover { + background: rgba($dangerButtonBg, $textButtonHoverBgOpacity); + border-color: transparent; + color: $dangerButtonBg; + } + + &:active { + background: rgba($dangerButtonBg, $textButtonActiveBgOpacity); + border-color: transparent; + color: $dangerButtonBg; + } + } + } + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_datatable.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_datatable.scss index 5b3d7204..34d6a663 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_datatable.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_datatable.scss @@ -118,7 +118,6 @@ background: $tableBodyRowBg; color: $tableBodyRowTextColor; transition: $listItemTransition; - outline-color: $focusOutlineColor; > td { text-align: $tableCellContentAlignment; @@ -138,6 +137,11 @@ } } + &:focus { + outline: 0.15rem solid $focusOutlineColor; + outline-offset: 0.15rem; + } + &.p-highlight { background: $highlightBg; color: $highlightTextColor; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_orderlist.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_orderlist.scss index c9590023..05c7ba1e 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_orderlist.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_orderlist.scss @@ -93,6 +93,18 @@ } } } + + &.p-orderlist-striped { + .p-orderlist-list { + .p-orderlist-item:nth-child(even) { + background: $panelContentEvenRowBg; + + &:hover { + background: $inputListItemHoverBg; + } + } + } + } } .p-orderlist-item { diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_picklist.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_picklist.scss index 7d334a9e..05b21cfd 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_picklist.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_picklist.scss @@ -93,6 +93,18 @@ } } } + + &.p-picklist-striped { + .p-picklist-list { + .p-picklist-item:nth-child(even) { + background: $panelContentEvenRowBg; + + &:hover { + background: $inputListItemHoverBg; + } + } + } + } } .p-picklist-item { diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_tree.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_tree.scss index 3af5a5cf..1321a6f7 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_tree.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_tree.scss @@ -51,7 +51,7 @@ } &:focus { - @include focused(); + @include focused-listitem(); } &.p-highlight { diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_treetable.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_treetable.scss index 581440cd..5fb553e7 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_treetable.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/data/_treetable.scss @@ -106,7 +106,6 @@ background: $tableBodyRowBg; color: $tableBodyRowTextColor; transition: $listItemTransition; - outline-color: $focusOutlineColor; > td { text-align: $tableCellContentAlignment; @@ -130,6 +129,11 @@ } } + &:focus { + outline: 0.15rem solid $focusOutlineColor; + outline-offset: -0.15rem; + } + &.p-highlight { background: $highlightBg; color: $highlightTextColor; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/input/_dropdown.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/input/_dropdown.scss index 76736c8c..6c698fe2 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/input/_dropdown.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/input/_dropdown.scss @@ -148,6 +148,10 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { &:not(.p-disabled).p-focus { background-color: $inputFilledFocusBg; + + .p-inputtext { + background-color: transparent; + } } } } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/menu/_tabmenu.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/menu/_tabmenu.scss index e52a93cc..693caa36 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/menu/_tabmenu.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/menu/_tabmenu.scss @@ -62,4 +62,24 @@ } } } + + .p-tabmenu-left-icon { + margin-right: $inlineSpacing; + } + + .p-tabmenu-right-icon { + margin-left: $inlineSpacing; + } + + .p-tabmenu-nav-btn.p-link { + background: $tabviewHeaderActiveBg; + color: $tabviewHeaderTextActiveColor; + width: $buttonIconOnlyWidth; + box-shadow: $raisedButtonShadow; + border-radius: 0; + + &:focus { + @include focused-inset(); + } + } } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/panel/_panel.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/panel/_panel.scss index c02d3d91..3e679d76 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/panel/_panel.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/designer/components/panel/_panel.scss @@ -55,4 +55,20 @@ color: $panelFooterTextColor; border-top: 0 none; } + + .p-panel-icons-end { + order: 2; + margin-left: auto; + } + + .p-panel-icons-start { + order: 0; + margin-right: $inlineSpacing; + } + + .p-panel-icons-center { + order: 2; + width:100%; + text-align:center; + } } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_breadcrumb.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_breadcrumb.scss new file mode 100644 index 00000000..ec74a6e4 --- /dev/null +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_breadcrumb.scss @@ -0,0 +1,25 @@ +/*! + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.p-breadcrumb { + .p-menuitem-link { + &:focus { + background: $emphasis-lower; + } + + padding: 0.25rem 0.5rem; + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_button.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_button.scss index 6322af6b..417ce5ba 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_button.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_button.scss @@ -34,30 +34,30 @@ background-color: rgba(255,255,255, .32); } + &.p-button-text, &.p-button-outlined { - box-shadow: inset 0 0 0 1px; - &:enabled:focus { - box-shadow: inset 0 0 0 1px; + background: rgba($buttonBg, .12); } &:enabled:active { - box-shadow: inset 0 0 0 1px; + background: rgba($buttonBg, .16); + } + + .p-ink { + background-color: rgba($buttonBg, .16); } } - &.p-button-text, &.p-button-outlined { + box-shadow: inset 0 0 0 1px; + &:enabled:focus { - background: rgba($buttonBg, .12); + box-shadow: inset 0 0 0 1px; } &:enabled:active { - background: rgba($buttonBg, .16); - } - - .p-ink { - background-color: rgba($buttonBg, .16); + box-shadow: inset 0 0 0 1px; } } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_calendar.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_calendar.scss index f22f8655..96b7c323 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_calendar.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_calendar.scss @@ -46,16 +46,24 @@ &:focus { background: rgba($overlayColor, .12); } + + &:disabled { + background-color: transparent !important; + } } - &:not(.p-disabled):hover { + &:not(.p-calendar-disabled):hover { border-color: $inputHoverBorderColor; } - &:not(.p-disabled).p-focus { + &:not(.p-calendar-disabled).p-focus { border-color: $inputFocusBorderColor; box-shadow: inset 0 0 0 1px $inputFocusBorderColor,inset 0 0 0 1px $inputFocusBorderColor,inset 0 0 0 1px $inputFocusBorderColor,inset 0 0 0 1px $inputFocusBorderColor; } + + &.p-calendar-disabled { + opacity: $disabledOpacity; + } } .p-datepicker { @@ -123,7 +131,11 @@ p-calendar.ng-dirty.ng-invalid { .p-input-filled { .p-calendar-w-btn { - @include filled-input-wrapper(); + @include filled-input-wrapper-default(); + + &:not(.p-calendar-disabled) { + @include filled-input-wrapper-interaction(); + } .p-inputtext { border: 0 none; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_cascadeselect.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_cascadeselect.scss index 3df77eb7..b5b7e586 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_cascadeselect.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_cascadeselect.scss @@ -42,6 +42,13 @@ .p-inputtext { border: 0 none; } + + .p-cascadeselect-label { + &:hover { + background-image: none; + background: transparent; + } + } } p-cascadeselect.ng-dirty.ng-invalid { @@ -51,6 +58,28 @@ } } +.p-input-filled { + .p-float-label { + .p-cascadeselect { + .p-cascadeselect-label { + @include filled-input-float-label(); + } + } + + .p-inputwrapper-filled { + .p-cascadeselect { + .p-cascadeselect-label { + @include filled-input-float-label(); + } + } + } + } + + .p-cascadeselect.p-invalid { + @include invalid-filled-input-wrapper(); + } +} + p-cascadeselect.ng-dirty.ng-invalid { .p-cascadeselect { &:not(.p-disabled).p-focus { diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_datatable.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_datatable.scss index e6ca46eb..87baa6c4 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_datatable.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_datatable.scss @@ -33,3 +33,17 @@ } } } + +.p-datatable { + .p-datatable-tbody { + > tr { + &.p-datatable-dragpoint-top > td { + box-shadow: inset 0 2px 0 0 $primaryColor; + } + + &.p-datatable-dragpoint-bottom > td { + box-shadow: inset 0 -2px 0 0 $primaryColor; + } + } + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_fieldset.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_fieldset.scss index 8ea01839..776323d1 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_fieldset.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_fieldset.scss @@ -18,4 +18,14 @@ .p-fieldset-legend { border: 0 none; } + + &.p-fieldset-toggleable { + .p-fieldset-legend { + a { + &:focus { + background: $emphasis-lower; + } + } + } + } } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_fullcalendar.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_fullcalendar.scss new file mode 100644 index 00000000..23831433 --- /dev/null +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_fullcalendar.scss @@ -0,0 +1,100 @@ +/*! + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.fc { + /* FullCalendar 4 */ + &.fc-unthemed { + + .fc-toolbar { + .fc-button { + &:focus { + background: rgba($buttonBg, .76); + } + + &:active { + background: rgba($buttonBg, .68); + } + } + + .fc-button-group { + .fc-button { + &:focus { + background: rgba($buttonBg, .76); + } + + &:active { + background: rgba($buttonBg, .68); + } + + &.fc-dayGridMonth-button, + &.fc-timeGridWeek-button, + &.fc-timeGridDay-button { + &:focus { + background: $toggleButtonActiveBg; + border-color: $toggleButtonActiveBorderColor; + + &.p-highlight { + background: $toggleButtonActiveHoverBg; + border-color: $toggleButtonActiveHoverBorderColor; + } + } + } + } + } + } + } + + /* FullCalendar 5 */ + &.fc-theme-standard { + .fc-toolbar { + .fc-button { + &:focus { + background: rgba($buttonBg, .76); + } + + &:active { + background: rgba($buttonBg, .68); + } + } + + .fc-button-group { + .fc-button { + &:focus { + background: rgba($buttonBg, .76); + } + + &:active { + background: rgba($buttonBg, .68); + } + + &.fc-dayGridMonth-button, + &.fc-timeGridWeek-button, + &.fc-timeGridDay-button { + &:focus { + background: $toggleButtonActiveBg; + border-color: $toggleButtonActiveBorderColor; + + &.p-highlight { + background: $toggleButtonActiveHoverBg; + border-color: $toggleButtonActiveHoverBorderColor; + } + } + } + } + } + } + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_inputswitch.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_inputswitch.scss index 841d8d4f..7d78be0b 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_inputswitch.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_inputswitch.scss @@ -26,8 +26,8 @@ } } - &.p-inputswitch-focus, - &.p-inputswitch-focus:not(.p-disabled):hover { + &.p-focus, + &.p-focus:not(.p-disabled):hover { .p-inputswitch-slider:before { box-shadow: 0 0 1px 10px rgba($overlayColor, .12), 0px 3px 1px -2px rgba($overlayColor, 0.2), 0px 2px 2px 0px rgba($overlayColor, 0.14), 0px 1px 5px 0px rgba($overlayColor,.12); } @@ -39,8 +39,8 @@ } } - &.p-inputswitch-checked.p-inputswitch-focus, - &.p-inputswitch-checked.p-inputswitch-focus:not(.p-disabled):hover { + &.p-inputswitch-checked.p-focus, + &.p-inputswitch-checked.p-focus:not(.p-disabled):hover { .p-inputswitch-slider:before { box-shadow: 0 0 1px 10px rgba($inputSwitchHandleOnBg, .12), 0px 3px 1px -2px rgba($overlayColor, 0.2), 0px 2px 2px 0px rgba($overlayColor, 0.14), 0px 1px 5px 0px rgba($overlayColor,.12); } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_listbox.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_listbox.scss index fc47e2da..9f1b6174 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_listbox.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_listbox.scss @@ -14,8 +14,20 @@ * limitations under the License. */ -.p-listbox-item { - .p-ink { - background-color: rgba($primaryColor, .16); +.p-listbox { + .p-listbox-list { + .p-listbox-item { + .p-ink { + background-color: rgba($primaryColor, .16); + } + + &:focus { + background: $emphasis-lower; + + &.p-highlight { + background: rgba($primaryColor, .24); + } + } + } } } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_megamenu.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_megamenu.scss new file mode 100644 index 00000000..afa1e773 --- /dev/null +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_megamenu.scss @@ -0,0 +1,25 @@ +/*! + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.p-megamenu { + .p-menuitem { + .p-menuitem-link { + &:focus { + background: $emphasis-lower; + } + } + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_menu.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_menu.scss new file mode 100644 index 00000000..ec4ff1f9 --- /dev/null +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_menu.scss @@ -0,0 +1,25 @@ +/*! + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.p-menu { + .p-menuitem { + .p-menuitem-link { + &:focus { + background: $emphasis-lower; + } + } + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_menubar.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_menubar.scss new file mode 100644 index 00000000..1ec6ebcb --- /dev/null +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_menubar.scss @@ -0,0 +1,25 @@ +/*! + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.p-menubar { + .p-menuitem { + .p-menuitem-link { + &:focus { + background: $emphasis-lower; + } + } + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_mixins.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_mixins.scss index a2e6cf86..4ac873bc 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_mixins.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_mixins.scss @@ -74,13 +74,18 @@ } @mixin invalid-filled-input-wrapper() { - border-color: transparent; - background-image: linear-gradient(to bottom, $inputErrorBorderColor, $inputErrorBorderColor), linear-gradient(to bottom, $inputErrorBorderColor, $inputErrorBorderColor); - - &:not(.p-disabled).p-focus { - box-shadow: none; - border-color: transparent; - } + border-color: transparent; + background-image: linear-gradient(to bottom, $inputErrorBorderColor, $inputErrorBorderColor), linear-gradient(to bottom, $inputErrorBorderColor, $inputErrorBorderColor); + + &:not(.p-disabled):hover { + background-image: linear-gradient(to bottom, $inputErrorBorderColor, $inputErrorBorderColor), linear-gradient(to bottom, $inputErrorBorderColor, $inputErrorBorderColor); + } + + &:not(.p-disabled).p-focus, + &:not(.p-disabled).p-inputwrapper-focus { + box-shadow: none; + background-image: linear-gradient(to bottom, $inputErrorBorderColor, $inputErrorBorderColor), linear-gradient(to bottom, $inputErrorBorderColor, $inputErrorBorderColor); + } } @mixin filled-input-wrapper-interaction() { diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_multiselect.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_multiselect.scss index 618e1e7f..9add72f4 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_multiselect.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_multiselect.scss @@ -27,11 +27,27 @@ &:not(.p-disabled).p-focus { box-shadow: inset 0 0 0 1px $inputFocusBorderColor,inset 0 0 0 1px $inputFocusBorderColor,inset 0 0 0 1px $inputFocusBorderColor,inset 0 0 0 1px $inputFocusBorderColor; } -} -.p-multiselect-item { - .p-ink { - background-color: rgba($primaryColor, .16); + .p-multiselect-items { + .p-multiselect-item { + .p-ink { + background-color: rgba($primaryColor, .16); + } + + &:focus { + background: $emphasis-lower; + + &.p-highlight { + background: rgba($primaryColor, .24); + } + } + } + } + + .p-multiselect-close { + &:focus { + background: $emphasis-lower; + } } } @@ -45,16 +61,6 @@ background: transparent; } } - .p-multiselect-panel { - .p-multiselect-header { - .p-multiselect-filter-container { - .p-inputtext { - padding-top: .25rem; - } - } - } - - } } } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_orderlist.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_orderlist.scss new file mode 100644 index 00000000..27756ae9 --- /dev/null +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_orderlist.scss @@ -0,0 +1,29 @@ +/*! + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.p-orderlist { + .p-orderlist-list { + .p-orderlist-item { + &:focus { + background: $emphasis-lower; + + &.p-highlight { + background: rgba($primaryColor, .24); + } + } + } + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_paginator.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_paginator.scss index 55f21cc5..2dd22876 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_paginator.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_paginator.scss @@ -16,4 +16,14 @@ .p-paginator { justify-content: flex-end; + + .p-paginator-element { + &:focus { + background: $emphasis-lower; + + &.p-highlight { + background: rgba($primaryColor, .24); + } + } + } } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_panel.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_panel.scss index ebe8ee04..fa3dc22a 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_panel.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_panel.scss @@ -31,4 +31,10 @@ .p-panel-title { font-size: 1.25rem; } + + .p-panel-header-icon { + &:focus { + background: $emphasis-lower; + } + } } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_panelmenu.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_panelmenu.scss index ae5306df..b708dee8 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_panelmenu.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_panelmenu.scss @@ -47,11 +47,17 @@ } } - &:not(.p-highlight) { - .p-panelmenu-header-link { - &:focus { - background: $accordionHeaderHoverBg; - } + .p-panelmenu-header-link { + &:focus { + background: $accordionHeaderHoverBg; + } + } + } + + .p-menuitem { + .p-menuitem-link { + &:focus { + background: $emphasis-lower; } } } diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_picklist.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_picklist.scss new file mode 100644 index 00000000..a0c575fd --- /dev/null +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_picklist.scss @@ -0,0 +1,29 @@ +/*! + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.p-picklist { + .p-picklist-list { + .p-picklist-item { + &:focus { + background: $emphasis-lower; + + &.p-highlight { + background: rgba($primaryColor, .24); + } + } + } + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_rating.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_rating.scss new file mode 100644 index 00000000..ddce5994 --- /dev/null +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_rating.scss @@ -0,0 +1,51 @@ +/*! + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.p-rating { + .p-rating-icon { + border-radius: 50%; + width: 2rem; + height: 2rem; + display: inline-flex; + justify-content: center; + align-items: center; + margin-left: 0; + + &:focus { + background: rgba($primaryColor, .12); + } + + &.p-rating-cancel { + &:focus { + background: rgba($ratingCancelIconColor, .12); + } + } + } + + &:not(.p-disabled):not(.p-readonly) { + .p-rating-icon { + &:hover { + background-color: rgba(0,0,0,.04); + } + + &.p-rating-cancel { + &:hover { + background: rgba($ratingCancelIconColor, .04); + } + } + } + } +} diff --git a/ahoy-ui/projects/ahoy-components/src/lib/releases/duplicate-dialog/duplicate-dialog.component.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_slidemenu.scss similarity index 84% rename from ahoy-ui/projects/ahoy-components/src/lib/releases/duplicate-dialog/duplicate-dialog.component.scss rename to ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_slidemenu.scss index 2b4273b9..e1d73ae6 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/releases/duplicate-dialog/duplicate-dialog.component.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_slidemenu.scss @@ -14,3 +14,10 @@ * limitations under the License. */ +.p-slidemenu { + .p-menuitem-link { + &:focus { + background: $emphasis-lower; + } + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_steps.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_steps.scss index fb96fa8f..325f4452 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_steps.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_steps.scss @@ -41,7 +41,7 @@ flex-direction: row; flex: 1 1 auto; overflow: visible; - padding: 0 $inlineSpacing; + padding: 1rem $inlineSpacing; .p-steps-number { background-color: #9e9d9e; @@ -56,6 +56,10 @@ margin: 0; padding-left: $inlineSpacing; } + + &:not(.p-disabled):focus { + background: $emphasis-lower; + } } &.p-highlight { diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_tabmenu.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_tabmenu.scss index c1f8983a..85de41fe 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_tabmenu.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_tabmenu.scss @@ -31,6 +31,14 @@ background-color: rgba($primaryColor, .12); } } + + &.p-highlight { + .p-menuitem-link { + &:focus { + background-color: rgba($primaryColor, .12); + } + } + } } .p-tabmenu-ink-bar { diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_tieredmenu.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_tieredmenu.scss new file mode 100644 index 00000000..a7ad56d8 --- /dev/null +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_tieredmenu.scss @@ -0,0 +1,23 @@ +/*! + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.p-tieredmenu { + .p-menuitem-link { + &:focus { + background: $emphasis-lower; + } + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_tree.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_tree.scss new file mode 100644 index 00000000..9f911aac --- /dev/null +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_tree.scss @@ -0,0 +1,31 @@ +/*! + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.p-tree { + .p-tree-container { + .p-treenode { + .p-treenode-content { + &:focus { + background: $emphasis-lower; + + &.p-highlight { + background: rgba($primaryColor, .24); + } + } + } + } + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_treeselect.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_treeselect.scss new file mode 100644 index 00000000..95515e19 --- /dev/null +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_treeselect.scss @@ -0,0 +1,100 @@ +/*! + * Copyright 2022 LSD Information Technology (Pty) Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +.p-treeselect { + .p-treeselect-label, .p-treeselect-trigger { + background-image: none; + background: transparent; + } + + .p-treeselect-label { + border: 0 none; + } + + &:not(.p-disabled).p-focus { + box-shadow: inset 0 0 0 1px $inputFocusBorderColor,inset 0 0 0 1px $inputFocusBorderColor,inset 0 0 0 1px $inputFocusBorderColor,inset 0 0 0 1px $inputFocusBorderColor; + } +} + +.p-treeselect-item { + .p-ink { + background-color: rgba($primaryColor, .16); + } +} + +.p-input-filled { + .p-treeselect { + @include filled-input-wrapper(); + + .p-treeselect-label { + &:hover { + background-image: none; + background: transparent; + } + } + } +} + +.p-float-label { + .p-treeselect-label { + .p-treeselect-token { + padding: .25rem 1rem; + margin-top: .25rem; + margin-bottom: .25rem; + } + } +} + +.p-input-filled { + .p-float-label { + .p-treeselect { + .p-treeselect-label { + @include filled-input-float-label(); + } + } + + .p-inputwrapper-filled { + .p-treeselect { + .p-treeselect-label { + @include filled-input-float-label(); + } + + &.p-treeselect-chip { + .p-treeselect-token { + padding-top: 0; + padding-bottom: 0; + margin-top: 0; + margin-bottom: 0; + + .p-treeselect-token-icon { + font-size: 75%; + } + } + } + } + } + } + + .p-treeselect.p-invalid { + @include invalid-filled-input-wrapper(); + } +} + +.p-treeselect.p-invalid { + &:not(.p-disabled).p-focus { + box-shadow: inset 0 0 0 1px $inputErrorBorderColor,inset 0 0 0 1px $inputErrorBorderColor,inset 0 0 0 1px $inputErrorBorderColor,inset 0 0 0 1px $inputErrorBorderColor; + } +} diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_vendor_extensions.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_vendor_extensions.scss index d8536533..e9c1a094 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_vendor_extensions.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/theme/extensions/_vendor_extensions.scss @@ -17,6 +17,7 @@ @import './_mixins'; @import './_accordion'; @import './_autocomplete'; +@import './_breadcrumb'; @import './_button'; @import './_calendar'; @import './_cascadeselect'; @@ -33,20 +34,31 @@ @import './_inputswitch'; @import './_fieldset'; @import './_float_label'; +@import './_fullcalendar'; @import './_listbox'; +@import './_megamenu'; +@import './_menu'; +@import './_menubar'; @import './_multiselect'; +@import './_orderlist'; @import './_overlaypanel'; @import './_paginator'; @import './_panel'; @import './_panelmenu'; +@import './_picklist'; @import './_progressbar'; @import './_radiobutton'; +@import './_rating'; @import './_selectbutton'; +@import './_slidemenu'; @import './_slider'; @import './_steps'; @import './_tabview'; @import './_toolbar'; @import './_tooltip'; +@import './_tieredmenu'; +@import './_treeselect'; +@import './_tree'; @import './_treetable'; @import './_tabmenu'; @import './_timeline'; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/variables/theme/_theme_dark.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/variables/theme/_theme_dark.scss index d554dc0d..e6fc1de1 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/variables/theme/_theme_dark.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/variables/theme/_theme_dark.scss @@ -16,16 +16,16 @@ $colors: ( "blue": #2196F3, - "green": #689F38, + "green": #4caf50, "yellow": #FBC02D, "cyan": #00BCD4, "pink": #E91E63, - "indigo": #4E5FBB, + "indigo": #3F51B5, "teal": #009688, - "orange": #FF9800, + "orange": #F57C00, "bluegray": #607D8B, "purple": #9C27B0 -); +) !default; $emphasis-high:rgba(255,255,255,.87); $emphasis-medium:rgba(255,255,255,.60); @@ -367,6 +367,7 @@ $panelHeaderTextHoverColor:$textColor; $panelContentBorderColor: rgba(255,255,255,.12) !default; $panelContentBorder:1px solid rgba(255,255,255,.12); $panelContentBg:#1e1e1e; +$panelContentEvenRowBg:rgba(0,0,0,.02) !default; $panelContentTextColor:$textColor; $panelContentPadding:1rem; @@ -847,6 +848,7 @@ $imagePreviewActionIconBorderRadius:50% !default; --text-color:#{$textColor}; --text-color-secondary:#{$textSecondaryColor}; --primary-color:#{$primaryColor}; + --primary-lightest-color:#{$primaryLightestColor}; --primary-color-text:#{$primaryTextColor}; --font-family:#{$fontFamily}; --surface-0: #121212; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/sass/variables/theme/_theme_light.scss b/ahoy-ui/projects/ahoy-app/src/assets/sass/variables/theme/_theme_light.scss index 1739153e..3bf89e3f 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/sass/variables/theme/_theme_light.scss +++ b/ahoy-ui/projects/ahoy-app/src/assets/sass/variables/theme/_theme_light.scss @@ -16,16 +16,16 @@ $colors: ( "blue": #2196F3, - "green": #689F38, + "green": #4caf50, "yellow": #FBC02D, "cyan": #00BCD4, "pink": #E91E63, - "indigo": #4E5FBB, + "indigo": #3F51B5, "teal": #009688, - "orange": #FF9800, + "orange": #F57C00, "bluegray": #607D8B, "purple": #9C27B0 -); +) !default; $emphasis-high:rgba(0,0,0,.87); $emphasis-medium:rgba(0,0,0,.60); @@ -367,6 +367,7 @@ $panelHeaderTextHoverColor:$textColor; $panelContentBorderColor: #e0e0e0 !default; $panelContentBorder:1px solid #e0e0e0; $panelContentBg:#ffffff; +$panelContentEvenRowBg:rgba(0,0,0,.02) !default; $panelContentTextColor:$textColor; $panelContentPadding:1rem; @@ -846,6 +847,8 @@ $imagePreviewActionIconBorderRadius:50% !default; --text-color:#{$textColor}; --text-color-secondary:#{$textSecondaryColor}; --primary-color:#{$primaryColor}; + --primary-menu-text-color:#{$primaryMenuTextColor}; + --primary-lightest-color:#{$primaryLightestColor}; --primary-color-text:#{$primaryTextColor}; --font-family:#{$fontFamily}; --surface-0: #ffffff; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/amber/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/amber/theme-dark.css index 0677fba2..4c0ff435 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/amber/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/amber/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(255, 213, 79, 0.16); color: #FFD54F; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(255, 213, 79, 0.16); color: #FFD54F; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/amber/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/amber/theme-light.css index 48786747..b045d888 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/amber/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/amber/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(255, 179, 0, 0.12); color: #FFB300; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(255, 179, 0, 0.12); color: #FFB300; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/blue/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/blue/theme-dark.css index 79d80847..d12848b3 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/blue/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/blue/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(100, 181, 246, 0.16); color: #64B5F6; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(100, 181, 246, 0.16); color: #64B5F6; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/blue/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/blue/theme-light.css index 482e2634..4ff2faa6 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/blue/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/blue/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(33, 150, 243, 0.12); color: #2196F3; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(33, 150, 243, 0.12); color: #2196F3; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/bluegrey/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/bluegrey/theme-dark.css index fe1ea1a7..f07b6939 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/bluegrey/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/bluegrey/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(144, 164, 174, 0.16); color: #90A4AE; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(144, 164, 174, 0.16); color: #90A4AE; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/bluegrey/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/bluegrey/theme-light.css index 5d668e40..ae4b29ee 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/bluegrey/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/bluegrey/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(96, 125, 139, 0.12); color: #607D8B; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(96, 125, 139, 0.12); color: #607D8B; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/brown/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/brown/theme-dark.css index 3a55836e..ab4a9afa 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/brown/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/brown/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(161, 136, 127, 0.16); color: #A1887F; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(161, 136, 127, 0.16); color: #A1887F; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/brown/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/brown/theme-light.css index 6718fca2..8c67d91b 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/brown/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/brown/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(121, 85, 72, 0.12); color: #795548; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(121, 85, 72, 0.12); color: #795548; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/cyan/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/cyan/theme-dark.css index a68b81fa..113fd46e 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/cyan/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/cyan/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(77, 208, 225, 0.16); color: #4DD0E1; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(77, 208, 225, 0.16); color: #4DD0E1; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/cyan/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/cyan/theme-light.css index 9563b437..b50e1646 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/cyan/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/cyan/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(0, 188, 212, 0.12); color: #00BCD4; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(0, 188, 212, 0.12); color: #00BCD4; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/deeporange/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/deeporange/theme-dark.css index 26bd6a88..d1c424c9 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/deeporange/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/deeporange/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(255, 138, 101, 0.16); color: #FF8A65; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(255, 138, 101, 0.16); color: #FF8A65; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/deeporange/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/deeporange/theme-light.css index 28bcbc29..79385f05 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/deeporange/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/deeporange/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(255, 87, 34, 0.12); color: #FF5722; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(255, 87, 34, 0.12); color: #FF5722; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/deeppurple/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/deeppurple/theme-dark.css index c86394f9..07a5cc90 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/deeppurple/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/deeppurple/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(149, 117, 205, 0.16); color: #9575CD; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(149, 117, 205, 0.16); color: #9575CD; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/deeppurple/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/deeppurple/theme-light.css index 0043dab9..0beefa06 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/deeppurple/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/deeppurple/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(103, 58, 183, 0.12); color: #673AB7; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(103, 58, 183, 0.12); color: #673AB7; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/green/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/green/theme-dark.css index 08037293..7e68cb0f 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/green/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/green/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(129, 199, 132, 0.16); color: #81C784; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(129, 199, 132, 0.16); color: #81C784; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/green/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/green/theme-light.css index fe788b6d..58351060 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/green/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/green/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(76, 175, 80, 0.12); color: #4CAF50; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(76, 175, 80, 0.12); color: #4CAF50; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/indigo/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/indigo/theme-dark.css index 260ef3c9..5f2e4ed3 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/indigo/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/indigo/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(159, 168, 218, 0.16); color: #9FA8DA; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(159, 168, 218, 0.16); color: #9FA8DA; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/indigo/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/indigo/theme-light.css index 5cd1e177..36a6360e 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/indigo/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/indigo/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(63, 81, 181, 0.12); color: #3F51B5; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(63, 81, 181, 0.12); color: #3F51B5; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/lightblue/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/lightblue/theme-dark.css index 82c4de1a..46bf7206 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/lightblue/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/lightblue/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(79, 195, 247, 0.16); color: #4FC3F7; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(79, 195, 247, 0.16); color: #4FC3F7; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/lightblue/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/lightblue/theme-light.css index 93c377c5..d67c30fc 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/lightblue/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/lightblue/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(3, 169, 244, 0.12); color: #03A9F4; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(3, 169, 244, 0.12); color: #03A9F4; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/lightgreen/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/lightgreen/theme-dark.css index f2992555..6974792f 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/lightgreen/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/lightgreen/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(174, 213, 129, 0.16); color: #AED581; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(174, 213, 129, 0.16); color: #AED581; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/lightgreen/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/lightgreen/theme-light.css index 8e8334dc..0259f051 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/lightgreen/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/lightgreen/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(139, 195, 74, 0.12); color: #8BC34A; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(139, 195, 74, 0.12); color: #8BC34A; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/lime/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/lime/theme-dark.css index 3012cf4a..9575bc80 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/lime/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/lime/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(220, 231, 117, 0.16); color: #DCE775; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(220, 231, 117, 0.16); color: #DCE775; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/lime/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/lime/theme-light.css index 8ab5c30a..c5447057 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/lime/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/lime/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(205, 220, 57, 0.12); color: #CDDC39; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(205, 220, 57, 0.12); color: #CDDC39; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/orange/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/orange/theme-dark.css index be2c8cd5..ee01a0b6 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/orange/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/orange/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(255, 183, 77, 0.16); color: #FFB74D; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(255, 183, 77, 0.16); color: #FFB74D; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/orange/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/orange/theme-light.css index 881fbbb1..f98699be 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/orange/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/orange/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(255, 152, 0, 0.12); color: #FF9800; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(255, 152, 0, 0.12); color: #FF9800; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/pink/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/pink/theme-dark.css index 5c64c0eb..5c72e66f 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/pink/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/pink/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(240, 98, 146, 0.16); color: #F06292; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(240, 98, 146, 0.16); color: #F06292; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/pink/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/pink/theme-light.css index ef227448..0a30e197 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/pink/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/pink/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(233, 30, 99, 0.12); color: #E91E63; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(233, 30, 99, 0.12); color: #E91E63; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/purple/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/purple/theme-dark.css index b2d012d6..f70d318c 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/purple/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/purple/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(186, 104, 200, 0.16); color: #BA68C8; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(186, 104, 200, 0.16); color: #BA68C8; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/purple/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/purple/theme-light.css index 7ccb27d1..fd3d8e28 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/purple/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/purple/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(156, 39, 176, 0.12); color: #9C27B0; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(156, 39, 176, 0.12); color: #9C27B0; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/teal/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/teal/theme-dark.css index fd995e39..adf1588b 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/teal/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/teal/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(77, 182, 172, 0.16); color: #4DB6AC; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(77, 182, 172, 0.16); color: #4DB6AC; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/teal/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/teal/theme-light.css index 4076096c..1171e774 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/teal/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/teal/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(0, 150, 136, 0.12); color: #009688; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(0, 150, 136, 0.12); color: #009688; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/yellow/theme-dark.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/yellow/theme-dark.css index 2c9dd8e6..c5cbd211 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/yellow/theme-dark.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/yellow/theme-dark.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: rgba(255, 255, 255, 0.1); } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #1e1e1e; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(255, 241, 118, 0.16); color: #FFF176; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #1e1e1e; color: rgba(255, 255, 255, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(255, 255, 255, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(255, 241, 118, 0.16); color: #FFF176; diff --git a/ahoy-ui/projects/ahoy-app/src/assets/theme/yellow/theme-light.css b/ahoy-ui/projects/ahoy-app/src/assets/theme/yellow/theme-light.css index ec97016e..35bcb89b 100644 --- a/ahoy-ui/projects/ahoy-app/src/assets/theme/yellow/theme-light.css +++ b/ahoy-ui/projects/ahoy-app/src/assets/theme/yellow/theme-light.css @@ -139,16 +139,16 @@ --blue-700:#1769aa; --blue-800:#125386; --blue-900:#0d3c61; - --green-50:#f7faf5; - --green-100:#dbe8cf; - --green-200:#bed6a9; - --green-300:#a1c384; - --green-400:#85b15e; - --green-500:#689f38; - --green-600:#588730; - --green-700:#496f27; - --green-800:#39571f; - --green-900:#2a4016; + --green-50:#f6fbf6; + --green-100:#d4ecd5; + --green-200:#b2ddb4; + --green-300:#90cd93; + --green-400:#6ebe71; + --green-500:#4caf50; + --green-600:#419544; + --green-700:#357b38; + --green-800:#2a602c; + --green-900:#1e4620; --yellow-50:#fffcf5; --yellow-100:#fef0cd; --yellow-200:#fde4a5; @@ -179,16 +179,16 @@ --pink-700:#a31545; --pink-800:#801136; --pink-900:#5d0c28; - --indigo-50:#f6f7fc; - --indigo-100:#d5d9ef; - --indigo-200:#b3bae2; - --indigo-300:#919cd5; - --indigo-400:#707dc8; - --indigo-500:#4e5fbb; - --indigo-600:#42519f; - --indigo-700:#374383; - --indigo-800:#2b3467; - --indigo-900:#1f264b; + --indigo-50:#f5f6fb; + --indigo-100:#d1d5ed; + --indigo-200:#acb4df; + --indigo-300:#8893d1; + --indigo-400:#6372c3; + --indigo-500:#3f51b5; + --indigo-600:#36459a; + --indigo-700:#2c397f; + --indigo-800:#232d64; + --indigo-900:#192048; --teal-50:#f2faf9; --teal-100:#c2e6e2; --teal-200:#91d2cc; @@ -199,16 +199,16 @@ --teal-700:#00695f; --teal-800:#00534b; --teal-900:#003c36; - --orange-50:#fffaf2; - --orange-100:#ffe6c2; - --orange-200:#ffd391; - --orange-300:#ffbf61; - --orange-400:#ffac30; - --orange-500:#ff9800; - --orange-600:#d98100; - --orange-700:#b36a00; - --orange-800:#8c5400; - --orange-900:#663d00; + --orange-50:#fff8f2; + --orange-100:#fde0c2; + --orange-200:#fbc791; + --orange-300:#f9ae61; + --orange-400:#f79530; + --orange-500:#f57c00; + --orange-600:#d06900; + --orange-700:#ac5700; + --orange-800:#874400; + --orange-900:#623200; --bluegray-50:#f7f9f9; --bluegray-100:#d9e0e3; --bluegray-200:#bbc7cd; @@ -849,6 +849,9 @@ p-dropdown.ng-dirty.ng-invalid > .p-dropdown { .p-input-filled .p-dropdown:not(.p-disabled).p-focus { background-color: #dcdcdc; } +.p-input-filled .p-dropdown:not(.p-disabled).p-focus .p-inputtext { + background-color: transparent; +} .p-editor-container .p-editor-toolbar { background: #ffffff; @@ -2371,7 +2374,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-datatable .p-datatable-tbody > tr > td { text-align: left; @@ -2410,6 +2412,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save { margin-right: 0.5rem; } +.p-datatable .p-datatable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: 0.15rem; +} .p-datatable .p-datatable-tbody > tr.p-highlight { background: rgba(255, 235, 59, 0.12); color: #FFEB3B; @@ -3455,7 +3461,6 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { background: #ffffff; color: rgba(0, 0, 0, 0.87); transition: none; - outline-color: transparent; } .p-treetable .p-treetable-tbody > tr > td { text-align: left; @@ -3489,6 +3494,10 @@ p-treeselect.ng-invalid.ng-dirty > .p-treeselect { .p-treetable .p-treetable-tbody > tr > td p-treetablecheckbox .p-checkbox .p-indeterminate .p-checkbox-icon { color: rgba(0, 0, 0, 0.87); } +.p-treetable .p-treetable-tbody > tr:focus { + outline: 0.15rem solid transparent; + outline-offset: -0.15rem; +} .p-treetable .p-treetable-tbody > tr.p-highlight { background: rgba(255, 235, 59, 0.12); color: #FFEB3B; diff --git a/ahoy-ui/projects/ahoy-components/package-lock.json b/ahoy-ui/projects/ahoy-components/package-lock.json index 1146475f..b2b674c0 100644 --- a/ahoy-ui/projects/ahoy-components/package-lock.json +++ b/ahoy-ui/projects/ahoy-components/package-lock.json @@ -1,12 +1,12 @@ { "name": "@lsdopen/ahoy-components", - "version": "0.14.0", + "version": "0.15.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@lsdopen/ahoy-components", - "version": "0.14.0", + "version": "0.15.0", "dependencies": { "tslib": "^2.0.0" }, @@ -49,9 +49,9 @@ "event-source-polyfill": "^1.0.25", "jwt-decode": "^3.1.2", "net": "^1.0.2", - "primeflex": "3.1.2", + "primeflex": "3.2.1", "primeicons": "5.0.0", - "primeng": "13.0.4", + "primeng": "13.4.1", "rxjs": "^7.5.2", "zone.js": "~0.11.4" } @@ -10477,9 +10477,9 @@ } }, "node_modules/primeflex": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/primeflex/-/primeflex-3.1.2.tgz", - "integrity": "sha512-q63sFNk3KPHSoM4EEEgo0MFTJSQhz4PZpJoQnVa8bcju/N7D8koloF9fniXV8UBlKFQzh0DLr5iFZ4c6FFXO4g==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/primeflex/-/primeflex-3.2.1.tgz", + "integrity": "sha512-sGDJ4mh2fG19xa1yc4IPGSQ8MUMyu5nU+tYnl27AFuFHhX8XwEA7fWCtWyBbclclVhXtre+Kf9WobWPnfxWAEQ==", "peer": true }, "node_modules/primeicons": { @@ -10489,9 +10489,9 @@ "peer": true }, "node_modules/primeng": { - "version": "13.0.4", - "resolved": "https://registry.npmjs.org/primeng/-/primeng-13.0.4.tgz", - "integrity": "sha512-hX6TcZ5UwCzA3cfl9csk/N9l0R9mek/QR/BWDQI2zH9Jtc5W1x9FUXnZPj4pUlCDvYL5NW21Yu7d9fDhIe20qQ==", + "version": "13.4.1", + "resolved": "https://registry.npmjs.org/primeng/-/primeng-13.4.1.tgz", + "integrity": "sha512-Dp72Yt7ORwoVYXr5r4oNTacQHUyLAdTuvXXNg9ZNjjxCdIfYZsVjTFBHBVzgEo9BpPy+/5twYy1JP/eXXDNPHg==", "peer": true, "dependencies": { "tslib": "^2.3.0" @@ -21240,9 +21240,9 @@ "dev": true }, "primeflex": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/primeflex/-/primeflex-3.1.2.tgz", - "integrity": "sha512-q63sFNk3KPHSoM4EEEgo0MFTJSQhz4PZpJoQnVa8bcju/N7D8koloF9fniXV8UBlKFQzh0DLr5iFZ4c6FFXO4g==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/primeflex/-/primeflex-3.2.1.tgz", + "integrity": "sha512-sGDJ4mh2fG19xa1yc4IPGSQ8MUMyu5nU+tYnl27AFuFHhX8XwEA7fWCtWyBbclclVhXtre+Kf9WobWPnfxWAEQ==", "peer": true }, "primeicons": { @@ -21252,9 +21252,9 @@ "peer": true }, "primeng": { - "version": "13.0.4", - "resolved": "https://registry.npmjs.org/primeng/-/primeng-13.0.4.tgz", - "integrity": "sha512-hX6TcZ5UwCzA3cfl9csk/N9l0R9mek/QR/BWDQI2zH9Jtc5W1x9FUXnZPj4pUlCDvYL5NW21Yu7d9fDhIe20qQ==", + "version": "13.4.1", + "resolved": "https://registry.npmjs.org/primeng/-/primeng-13.4.1.tgz", + "integrity": "sha512-Dp72Yt7ORwoVYXr5r4oNTacQHUyLAdTuvXXNg9ZNjjxCdIfYZsVjTFBHBVzgEo9BpPy+/5twYy1JP/eXXDNPHg==", "peer": true, "requires": { "tslib": "^2.3.0" diff --git a/ahoy-ui/projects/ahoy-components/package.json b/ahoy-ui/projects/ahoy-components/package.json index 2559c88c..d34b26ed 100644 --- a/ahoy-ui/projects/ahoy-components/package.json +++ b/ahoy-ui/projects/ahoy-components/package.json @@ -1,6 +1,6 @@ { "name": "@lsdopen/ahoy-components", - "version": "0.14.0", + "version": "0.15.0", "repository": "git://github.com/lsdopen/ahoy.git", "publishConfig": { "@lsdopen:registry": "https://npm.pkg.github.com/" @@ -21,9 +21,9 @@ "event-source-polyfill": "^1.0.25", "jwt-decode": "^3.1.2", "net": "^1.0.2", - "primeflex": "3.1.2", + "primeflex": "3.2.1", "primeicons": "5.0.0", - "primeng": "13.0.4", + "primeng": "13.4.1", "rxjs": "^7.5.2", "zone.js": "~0.11.4" }, diff --git a/ahoy-ui/projects/ahoy-components/src/lib/ahoy-components.module.ts b/ahoy-ui/projects/ahoy-components/src/lib/ahoy-components.module.ts index 711c6f9d..0f799eb7 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/ahoy-components.module.ts +++ b/ahoy-ui/projects/ahoy-components/src/lib/ahoy-components.module.ts @@ -99,7 +99,6 @@ import {ReleaseManageComponent} from './release-manage/release-manage.component' import {ReleaseResourcesComponent} from './release-manage/release-resources/release-resources.component'; import {UpgradeDialogComponent} from './release-manage/upgrade-dialog/upgrade-dialog.component'; import {AddToEnvironmentDialogComponent} from './releases/add-to-environment-dialog/add-to-environment-dialog.component'; -import {DuplicateDialogComponent} from './releases/duplicate-dialog/duplicate-dialog.component'; import {ReleaseDetailComponent} from './releases/release-detail/release-detail.component'; import {ReleaseVersionDetailComponent} from './releases/release-version-detail/release-version-detail.component'; import {ReleaseVersionsComponent} from './releases/release-versions/release-versions.component'; @@ -149,7 +148,6 @@ import {ContainerLogsComponent} from './release-manage/release-resources/contain DescriptionDialogComponent, DockerRegistriesComponent, DockerSettingsComponent, - DuplicateDialogComponent, EnvironmentDetailComponent, EnvironmentNameUniqueValidatorDirective, EnvironmentReleaseApplicationsStatusComponent, diff --git a/ahoy-ui/projects/ahoy-components/src/lib/applications/application-resources/application-resources.component.html b/ahoy-ui/projects/ahoy-components/src/lib/applications/application-resources/application-resources.component.html index f37a34e3..3eddccb1 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/applications/application-resources/application-resources.component.html +++ b/ahoy-ui/projects/ahoy-components/src/lib/applications/application-resources/application-resources.component.html @@ -20,19 +20,19 @@ Limits - - CPU + + CPU m - - Memory + + Memory - + Unit @@ -40,19 +40,19 @@ m Requests - - CPU + + CPU m - - Memory + + Memory - + Unit diff --git a/ahoy-ui/projects/ahoy-components/src/lib/applications/application-resources/application-resources.component.ts b/ahoy-ui/projects/ahoy-components/src/lib/applications/application-resources/application-resources.component.ts index 383fb768..49dde794 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/applications/application-resources/application-resources.component.ts +++ b/ahoy-ui/projects/ahoy-components/src/lib/applications/application-resources/application-resources.component.ts @@ -26,6 +26,7 @@ import {ApplicationResources} from '../application'; }) export class ApplicationResourcesComponent { @Input() resources: ApplicationResources; + @Input() containerSpecIndex: number; quantityUnits = ['Ki', 'Mi', 'Gi', 'Ti']; constructor() { diff --git a/ahoy-ui/projects/ahoy-components/src/lib/applications/container-detail/container-detail.component.html b/ahoy-ui/projects/ahoy-components/src/lib/applications/container-detail/container-detail.component.html index 60417018..0cd92489 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/applications/container-detail/container-detail.component.html +++ b/ahoy-ui/projects/ahoy-components/src/lib/applications/container-detail/container-detail.component.html @@ -187,7 +187,7 @@ - + diff --git a/ahoy-ui/projects/ahoy-components/src/lib/environment-release/environment-release-status/environment-release-status.component.ts b/ahoy-ui/projects/ahoy-components/src/lib/environment-release/environment-release-status/environment-release-status.component.ts index a62fd99e..f46eec82 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/environment-release/environment-release-status/environment-release-status.component.ts +++ b/ahoy-ui/projects/ahoy-components/src/lib/environment-release/environment-release-status/environment-release-status.component.ts @@ -30,9 +30,9 @@ export class EnvironmentReleaseStatusComponent { case 'Healthy': return 'status-success'; case 'Progressing': - return 'status-warn'; case 'Missing': return 'status-warn'; + case 'Degraded': case 'Unknown': return 'status-error'; } diff --git a/ahoy-ui/projects/ahoy-components/src/lib/environments/environment-detail/environment-detail.component.html b/ahoy-ui/projects/ahoy-components/src/lib/environments/environment-detail/environment-detail.component.html index 52340b08..c1f4835f 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/environments/environment-detail/environment-detail.component.html +++ b/ahoy-ui/projects/ahoy-components/src/lib/environments/environment-detail/environment-detail.component.html @@ -52,6 +52,11 @@ Duplicate environment {{sourceEnvironment.name}} placeholder="Cluster" optionLabel="name" required> + + + Copy environment config + + diff --git a/ahoy-ui/projects/ahoy-components/src/lib/environments/environment-detail/environment-detail.component.ts b/ahoy-ui/projects/ahoy-components/src/lib/environments/environment-detail/environment-detail.component.ts index 5aacaffb..b7c3b0c6 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/environments/environment-detail/environment-detail.component.ts +++ b/ahoy-ui/projects/ahoy-components/src/lib/environments/environment-detail/environment-detail.component.ts @@ -27,7 +27,7 @@ import {EnvironmentReleaseService} from '../../environment-release/environment-r import {ReleaseManageService} from '../../release-manage/release-manage.service'; import {PromoteOptions} from '../../releases/release'; import {OrderUtil} from '../../util/order-util'; -import {Environment} from '../environment'; +import {DuplicateOptions, Environment} from '../environment'; import {EnvironmentService} from '../environment.service'; @Component({ @@ -44,6 +44,7 @@ export class EnvironmentDetailComponent implements OnInit { sourceEnvironment: Environment; promoteEnvironmentReleaseId: EnvironmentReleaseId; promoteCopyEnvironmentConfig: boolean; + duplicateOptions: DuplicateOptions; constructor( private route: ActivatedRoute, @@ -63,6 +64,7 @@ export class EnvironmentDetailComponent implements OnInit { if (sourceEnvironmentId) { this.environmentService.get(sourceEnvironmentId) .subscribe((env) => { + this.duplicateOptions = new DuplicateOptions(); this.sourceEnvironment = env; this.setBreadcrumb(); }); @@ -123,7 +125,7 @@ export class EnvironmentDetailComponent implements OnInit { mergeMap((environment: Environment) => { if (this.sourceEnvironment) { // we're duplicating a source environment - return this.environmentService.duplicate(this.sourceEnvironment, environment); + return this.environmentService.duplicate(this.sourceEnvironment, environment, this.duplicateOptions); } return of(environment); }), diff --git a/ahoy-ui/projects/ahoy-components/src/lib/environments/environment.service.ts b/ahoy-ui/projects/ahoy-components/src/lib/environments/environment.service.ts index fd07a05c..f658f60e 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/environments/environment.service.ts +++ b/ahoy-ui/projects/ahoy-components/src/lib/environments/environment.service.ts @@ -23,7 +23,7 @@ import {NotificationsService} from '../notifications/notifications.service'; import {RecentReleasesService} from '../release-manage/recent-releases.service'; import {LoggerService} from '../util/logger.service'; import {RestClientService} from '../util/rest-client.service'; -import {Environment, MoveOptions} from './environment'; +import {DuplicateOptions, Environment, MoveOptions} from './environment'; @Injectable({ providedIn: 'root' @@ -117,12 +117,12 @@ export class EnvironmentService { ); } - duplicate(sourceEnvironment: Environment, destEnvironment: Environment): Observable { + duplicate(sourceEnvironment: Environment, destEnvironment: Environment, duplicateOptions: DuplicateOptions): Observable { this.log.debug('duplicating environment: ', sourceEnvironment); const url = `/data/environments/duplicate/${sourceEnvironment.id}/${destEnvironment.id}`; - return this.restClient.post(url, null, true).pipe( + return this.restClient.post(url, duplicateOptions, true).pipe( tap((duplicatedEnvironment) => { this.log.debug('duplicated environment', duplicatedEnvironment); const text = `${duplicatedEnvironment.name} ` + `was duplicated in cluster ${(duplicatedEnvironment.cluster as Cluster).name}`; diff --git a/ahoy-ui/projects/ahoy-components/src/lib/environments/environment.ts b/ahoy-ui/projects/ahoy-components/src/lib/environments/environment.ts index 2e93447f..38dc6be0 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/environments/environment.ts +++ b/ahoy-ui/projects/ahoy-components/src/lib/environments/environment.ts @@ -27,3 +27,7 @@ export class MoveOptions { destClusterId: number; redeployReleases = true; } + +export class DuplicateOptions { + copyEnvironmentConfig = false; +} diff --git a/ahoy-ui/projects/ahoy-components/src/lib/release-manage/release-manage.component.html b/ahoy-ui/projects/ahoy-components/src/lib/release-manage/release-manage.component.html index 9212ce32..d1d5d5d8 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/release-manage/release-manage.component.html +++ b/ahoy-ui/projects/ahoy-components/src/lib/release-manage/release-manage.component.html @@ -31,7 +31,7 @@ {{environmentRelease.release.name}} - diff --git a/ahoy-ui/projects/ahoy-components/src/lib/release-manage/release-manage.component.ts b/ahoy-ui/projects/ahoy-components/src/lib/release-manage/release-manage.component.ts index 517bc2ca..5c9eb071 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/release-manage/release-manage.component.ts +++ b/ahoy-ui/projects/ahoy-components/src/lib/release-manage/release-manage.component.ts @@ -54,6 +54,7 @@ export class ReleaseManageComponent implements OnInit, OnDestroy { selectedEnvironmentRelease: EnvironmentRelease; releaseVersion: ReleaseVersion; menuItems: MenuItem[]; + selectedReleaseVersion: ReleaseVersion; constructor(private route: ActivatedRoute, private router: Router, @@ -111,6 +112,8 @@ export class ReleaseManageComponent implements OnInit, OnDestroy { this.environmentReleases = environmentReleases; this.setupMenuItems(); + this.selectedReleaseVersion = this.releaseVersion; + return of(this.environmentRelease); }) ); @@ -265,7 +268,7 @@ export class ReleaseManageComponent implements OnInit, OnDestroy { } releaseVersionChanged() { - this.router.navigate(['/release', this.environmentRelease.id.environmentId, this.environmentRelease.id.releaseId, 'version', this.releaseVersion.id]); + this.router.navigate(['/release', this.environmentRelease.id.environmentId, this.environmentRelease.id.releaseId, 'version', this.selectedReleaseVersion.id]); } private isCurrent() { @@ -273,18 +276,6 @@ export class ReleaseManageComponent implements OnInit, OnDestroy { && this.releaseVersion.version === this.environmentRelease.currentReleaseVersion.version; } - compareReleaseVersions(r1: ReleaseVersion, r2: ReleaseVersion): boolean { - if (r1 === null) { - return r2 === null; - } - - if (r2 === null) { - return false; - } - - return r1.version === r2.version; - } - canRollback() { return this.environmentRelease.previousReleaseVersion; } @@ -331,10 +322,6 @@ export class ReleaseManageComponent implements OnInit, OnDestroy { } } - isCurrentEnvironmentRelease(environmentRelease: EnvironmentRelease) { - return EnvironmentReleaseService.environmentReleaseEquals(this.environmentRelease, environmentRelease); - } - applicationVersionsChanged() { this.reloadCurrent(); } diff --git a/ahoy-ui/projects/ahoy-components/src/lib/releases/duplicate-dialog/duplicate-dialog.component.html b/ahoy-ui/projects/ahoy-components/src/lib/releases/duplicate-dialog/duplicate-dialog.component.html deleted file mode 100644 index f1efd105..00000000 --- a/ahoy-ui/projects/ahoy-components/src/lib/releases/duplicate-dialog/duplicate-dialog.component.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - Name - - Name invalid: should start with and use lower case letters and numbers - - - Release already exists - - - - - - Add the duplicated release to the same environments - - - - Copy environment config - - - - - - - - - diff --git a/ahoy-ui/projects/ahoy-components/src/lib/releases/duplicate-dialog/duplicate-dialog.component.ts b/ahoy-ui/projects/ahoy-components/src/lib/releases/duplicate-dialog/duplicate-dialog.component.ts deleted file mode 100644 index e14357e6..00000000 --- a/ahoy-ui/projects/ahoy-components/src/lib/releases/duplicate-dialog/duplicate-dialog.component.ts +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2022 LSD Information Technology (Pty) Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {Component, OnInit} from '@angular/core'; -import {DynamicDialogConfig, DynamicDialogRef} from 'primeng/dynamicdialog'; -import {DuplicateOptions, Release} from '../release'; -import {ReleaseService} from '../release.service'; - -@Component({ - selector: 'app-duplicate-dialog', - templateUrl: './duplicate-dialog.component.html', - styleUrls: ['./duplicate-dialog.component.scss'] -}) -export class DuplicateDialogComponent implements OnInit { - releasesForValidation: Release[]; - selectedRelease: Release; - duplicateOptions = new DuplicateOptions(); - - constructor(public ref: DynamicDialogRef, - public config: DynamicDialogConfig, - private releaseService: ReleaseService) { - const data = config.data; - this.selectedRelease = data.selectedRelease; - this.duplicateOptions.releaseName = this.selectedRelease.name + '-copy'; - } - - ngOnInit(): void { - this.releaseService.getAll() - .subscribe(releases => this.releasesForValidation = releases); - } - - close(result: any) { - this.ref.close(result); - } -} diff --git a/ahoy-ui/projects/ahoy-components/src/lib/releases/release-detail/release-detail.component.html b/ahoy-ui/projects/ahoy-components/src/lib/releases/release-detail/release-detail.component.html index c1c50a50..5c15d9dc 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/releases/release-detail/release-detail.component.html +++ b/ahoy-ui/projects/ahoy-components/src/lib/releases/release-detail/release-detail.component.html @@ -21,8 +21,9 @@ - {{editMode ? "Edit" : "New"}} release + {{editMode ? "Edit" : "New"}} release New release in {{environment.name}} + Duplicate release {{sourceRelease.name}} @@ -54,7 +55,7 @@ New release in {{environment.name}} - + New release in {{environment.name}} + + + + Add the duplicated release to the same environments + + + + Copy environment config + + + diff --git a/ahoy-ui/projects/ahoy-components/src/lib/releases/release-detail/release-detail.component.ts b/ahoy-ui/projects/ahoy-components/src/lib/releases/release-detail/release-detail.component.ts index d0c667c6..f1b70687 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/releases/release-detail/release-detail.component.ts +++ b/ahoy-ui/projects/ahoy-components/src/lib/releases/release-detail/release-detail.component.ts @@ -25,8 +25,8 @@ import {EnvironmentRelease, EnvironmentReleaseId} from '../../environment-releas import {EnvironmentReleaseService} from '../../environment-release/environment-release.service'; import {Environment} from '../../environments/environment'; import {EnvironmentService} from '../../environments/environment.service'; -import {Release, ReleaseVersion} from '../../releases/release'; -import {ReleaseService} from '../../releases/release.service'; +import {DuplicateOptions, Release, ReleaseVersion} from '../release'; +import {ReleaseService} from '../release.service'; import {TaskEvent} from '../../taskevents/task-events'; import {LoggerService} from '../../util/logger.service'; @@ -41,6 +41,8 @@ export class ReleaseDetailComponent implements OnInit { releasesForValidation: Release[]; editMode = false; environment: Environment; + sourceRelease: Release; + duplicateOptions: DuplicateOptions; constructor( private log: LoggerService, @@ -56,12 +58,12 @@ export class ReleaseDetailComponent implements OnInit { ngOnInit() { const releaseId = this.route.snapshot.paramMap.get('releaseId'); - const environmentId = +this.route.snapshot.queryParamMap.get('environmentId'); if (releaseId === 'new') { this.release = new Release(); this.releaseVersion = new ReleaseVersion(); + const environmentId = +this.route.snapshot.queryParamMap.get('environmentId'); if (environmentId) { this.environmentService.get(environmentId) .subscribe(env => { @@ -72,6 +74,16 @@ export class ReleaseDetailComponent implements OnInit { this.setBreadcrumb(); } + const sourceReleaseId = +this.route.snapshot.queryParamMap.get('sourceReleaseId'); + if (sourceReleaseId) { + this.releaseService.get(sourceReleaseId) + .subscribe((rel) => { + this.duplicateOptions = new DuplicateOptions(); + this.sourceRelease = rel; + this.setBreadcrumb(); + }); + } + } else { this.editMode = true; this.getRelease(+releaseId); @@ -96,6 +108,12 @@ export class ReleaseDetailComponent implements OnInit { {label: this.release.name}, {label: 'edit'} ]); + } else if (this.sourceRelease) { + this.breadcrumbService.setItems([ + {label: 'releases', routerLink: '/releases'}, + {label: this.sourceRelease.name}, + {label: 'duplicate'} + ]); } else if (this.environment) { this.breadcrumbService.setItems([ {label: this.environment.name, routerLink: '/environments'}, @@ -112,15 +130,22 @@ export class ReleaseDetailComponent implements OnInit { save() { this.releaseService.save(this.release) .pipe( + mergeMap(release => { + if (this.sourceRelease) { + // we're duplicating a source release + return this.releaseService.duplicate(this.sourceRelease, release, this.duplicateOptions); + } + return of(release); + }), mergeMap(release => { this.release = release; - if (!this.editMode) { + if (!this.editMode && !this.sourceRelease) { this.releaseVersion.release = this.releaseService.link(release.id); return this.releaseService.saveVersion(this.releaseVersion); } return of(release); }), - mergeMap(releaseVersion => { + mergeMap(release => { if (this.environment) { const environmentRelease = new EnvironmentRelease(); environmentRelease.id = new EnvironmentReleaseId(); @@ -129,7 +154,7 @@ export class ReleaseDetailComponent implements OnInit { return this.environmentReleaseService.save(environmentRelease); } - return of(releaseVersion); + return of(release); }) ) .subscribe(() => this.location.back()); diff --git a/ahoy-ui/projects/ahoy-components/src/lib/releases/release.service.ts b/ahoy-ui/projects/ahoy-components/src/lib/releases/release.service.ts index 9eef6d3b..4d04c41c 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/releases/release.service.ts +++ b/ahoy-ui/projects/ahoy-components/src/lib/releases/release.service.ts @@ -166,10 +166,10 @@ export class ReleaseService { ); } - duplicate(release: Release, duplicateOptions: DuplicateOptions): Observable { - this.log.debug(`duplicating release: ${release.name} with options`, duplicateOptions); + duplicate(sourceRelease: Release, destRelease: Release, duplicateOptions: DuplicateOptions): Observable { + this.log.debug(`duplicating release: ${sourceRelease.name} with options`, duplicateOptions); - const url = `/api/releases/${release.id}/duplicate`; + const url = `/api/releases/duplicate/${sourceRelease.id}/${destRelease.id}`; return this.restClient.post(url, duplicateOptions, true).pipe( tap((duplicatedRelease) => diff --git a/ahoy-ui/projects/ahoy-components/src/lib/releases/release.ts b/ahoy-ui/projects/ahoy-components/src/lib/releases/release.ts index d39f837f..4b30a5e7 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/releases/release.ts +++ b/ahoy-ui/projects/ahoy-components/src/lib/releases/release.ts @@ -48,7 +48,6 @@ export class UpgradeAppOptions { } export class DuplicateOptions { - releaseName: string; addToSameEnvironments = true; copyEnvironmentConfig = false; } diff --git a/ahoy-ui/projects/ahoy-components/src/lib/releases/releases.component.html b/ahoy-ui/projects/ahoy-components/src/lib/releases/releases.component.html index 9cfd2260..4e3683d8 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/releases/releases.component.html +++ b/ahoy-ui/projects/ahoy-components/src/lib/releases/releases.component.html @@ -88,8 +88,8 @@ Releases pTooltip="Edit release" *appUserRole="[Role.admin, Role.releasemanager, Role.developer]"> diff --git a/ahoy-ui/projects/ahoy-components/src/lib/releases/releases.component.ts b/ahoy-ui/projects/ahoy-components/src/lib/releases/releases.component.ts index 0e98df46..73ab4557 100644 --- a/ahoy-ui/projects/ahoy-components/src/lib/releases/releases.component.ts +++ b/ahoy-ui/projects/ahoy-components/src/lib/releases/releases.component.ts @@ -28,8 +28,7 @@ import {TaskEvent} from '../taskevents/task-events'; import {Role} from '../util/auth'; import {LoggerService} from '../util/logger.service'; import {AddToEnvironmentDialogComponent} from './add-to-environment-dialog/add-to-environment-dialog.component'; -import {DuplicateDialogComponent} from './duplicate-dialog/duplicate-dialog.component'; -import {DuplicateOptions, Release} from './release'; +import {Release} from './release'; import {ReleaseService} from './release.service'; @Component({ @@ -87,20 +86,6 @@ export class ReleasesComponent implements OnInit { ).subscribe(() => this.getReleases()); } - duplicate(event: Event, release: Release) { - const dialogConfig = new DynamicDialogConfig(); - dialogConfig.header = `Duplicate ${(release.name)}`; - dialogConfig.data = {selectedRelease: release}; - - const dialogRef = this.dialogService.open(DuplicateDialogComponent, dialogConfig); - dialogRef.onClose.pipe( - filter((result) => result !== undefined), // cancelled - mergeMap((duplicateOptions: DuplicateOptions) => { - return this.releaseService.duplicate(release, duplicateOptions); - }) - ).subscribe(() => this.getReleases()); - } - deleteRelease(event, release: Release) { // TODO nested subscribes this.confirmationService.confirm({ diff --git a/pom.xml b/pom.xml index ddbd3b27..84753b9a 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ za.co.lsd.ahoy ahoy - 0.14.0 + 0.15.0 pom ahoy