<?xml version="1.0" encoding="UTF-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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.

--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.royale.framework</groupId>
    <artifactId>themes</artifactId>
    <version>0.9.10</version>
  </parent>

  <artifactId>Jewel-Light-NoFlat-Secondary-Orange-Theme</artifactId>
  <version>0.9.10</version>
  <packaging>swc</packaging>

  <name>Apache Royale: Framework: Themes: Jewel-Light-NoFlat-Secondary-Orange-Theme</name>

  <build>
    <sourceDirectory>src/main/royale</sourceDirectory>
    <plugins>
      <plugin>
        <groupId>org.apache.royale.compiler</groupId>
        <artifactId>royale-maven-plugin</artifactId>
        <version>${project.royale.compiler.version}</version>
        <extensions>true</extensions>
        <configuration>
          <includeFiles>
            <include-file>
              <name>assets/*</name>
              <path>../../JewelTheme/src/main/resources/assets/*</path>
            </include-file>
            <include-file>
              <name>defaults.css</name>
              <path>../src/main/resources/defaults.css</path>
            </include-file>
          </includeFiles>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>option-with-sass-compile</id>
      <build>
        <plugins>
          <plugin>
            <groupId>io.github.cleydyr</groupId>
            <artifactId>dart-sass-maven-plugin</artifactId>
            <configuration>
              <inputFolder>src/main/sass</inputFolder>
              <outputFolder>src/main/resources</outputFolder>
            </configuration>
            <executions>
              <execution>
                <id>generate-css-using-sass</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>compile-sass</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
<properties><project.build.outputTimestamp>2023-05-12T06:29:03Z</project.build.outputTimestamp></properties></project>
