From 865e0d0635802739de3922a79fbadd7431048fab Mon Sep 17 00:00:00 2001 From: Todd Burnside Date: Fri, 12 Jan 2024 16:24:53 -0300 Subject: [PATCH 1/3] Add the files for compiling the lucuma themes and for publishing --- .github/workflows/ci.yml | 186 ++++++++++ .github/workflows/clean.yml | 59 +++ .gitignore | 99 ++++- build.sbt | 104 ++++++ compile-lucuma-themes.bash | 25 ++ package-lock.json | 385 ++++++++++++++++++++ package.json | 5 +- project/build.properties | 1 + project/plugins.sbt | 3 + themes/lucuma/_overrides.scss | 4 + themes/lucuma/_variables.scss | 30 ++ themes/lucuma/lucuma-dark/_theme-vars.scss | 12 + themes/lucuma/lucuma-dark/theme.scss | 46 +++ themes/lucuma/lucuma-light/_theme-vars.scss | 5 + themes/lucuma/lucuma-light/theme.scss | 30 ++ 15 files changed, 991 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/clean.yml create mode 100644 build.sbt create mode 100755 compile-lucuma-themes.bash create mode 100644 package-lock.json create mode 100644 project/build.properties create mode 100644 project/plugins.sbt create mode 100644 themes/lucuma/_overrides.scss create mode 100644 themes/lucuma/_variables.scss create mode 100644 themes/lucuma/lucuma-dark/_theme-vars.scss create mode 100644 themes/lucuma/lucuma-dark/theme.scss create mode 100644 themes/lucuma/lucuma-light/_theme-vars.scss create mode 100644 themes/lucuma/lucuma-light/theme.scss diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..ce147c8 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,186 @@ +# This file was automatically generated by sbt-github-actions using the +# githubWorkflowGenerate task. You should add and commit this file to +# your git repository. It goes without saying that you shouldn't edit +# this file by hand! Instead, if you wish to make changes, you should +# change your sbt build configuration to revise the workflow description +# to meet your needs, then regenerate this file. + +name: Continuous Integration + +on: + pull_request: + branches: ['**', '!update/**', '!pr/**'] + push: + branches: ['**', '!update/**', '!pr/**'] + tags: [v*] + +env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + +concurrency: + group: ${{ github.workflow }} @ ${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build and Test + strategy: + matrix: + os: [ubuntu-latest] + scala: [3] + java: [temurin@17] + runs-on: ${{ matrix.os }} + timeout-minutes: 60 + steps: + - name: Checkout current branch (full) + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Java (temurin@17) + id: setup-java-temurin-17 + if: matrix.java == 'temurin@17' + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + cache: sbt + + - name: sbt update + if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false' + run: sbt +update + + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: 16 + cache: npm + + - name: npm install + run: npm install + + - name: Check that workflows are up to date + run: sbt githubWorkflowCheck + + - name: Test + run: sbt '++ ${{ matrix.scala }}' test + + - name: Make target directories + if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main') + run: mkdir -p publish/target project/target + + - name: Compress target directories + if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main') + run: tar cf targets.tar publish/target project/target + + - name: Upload target directories + if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main') + uses: actions/upload-artifact@v4 + with: + name: target-${{ matrix.os }}-${{ matrix.java }}-${{ matrix.scala }} + path: targets.tar + + publish: + name: Publish Artifacts + needs: [build] + if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main') + strategy: + matrix: + os: [ubuntu-latest] + java: [temurin@17] + runs-on: ${{ matrix.os }} + steps: + - name: Checkout current branch (full) + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Java (temurin@17) + id: setup-java-temurin-17 + if: matrix.java == 'temurin@17' + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + cache: sbt + + - name: sbt update + if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false' + run: sbt +update + + - name: Download target directories (3) + uses: actions/download-artifact@v4 + with: + name: target-${{ matrix.os }}-${{ matrix.java }}-3 + + - name: Inflate target directories (3) + run: | + tar xf targets.tar + rm targets.tar + + - name: Import signing key + if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE == '' + env: + PGP_SECRET: ${{ secrets.PGP_SECRET }} + PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} + run: echo $PGP_SECRET | base64 -d -i - | gpg --import + + - name: Import signing key and strip passphrase + if: env.PGP_SECRET != '' && env.PGP_PASSPHRASE != '' + env: + PGP_SECRET: ${{ secrets.PGP_SECRET }} + PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} + run: | + echo "$PGP_SECRET" | base64 -d -i - > /tmp/signing-key.gpg + echo "$PGP_PASSPHRASE" | gpg --pinentry-mode loopback --passphrase-fd 0 --import /tmp/signing-key.gpg + (echo "$PGP_PASSPHRASE"; echo; echo) | gpg --command-fd 0 --pinentry-mode loopback --change-passphrase $(gpg --list-secret-keys --with-colons 2> /dev/null | grep '^sec:' | cut --delimiter ':' --fields 5 | tail -n 1) + + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: 16 + cache: npm + + - name: npm install + run: npm install + + - name: Publish + env: + SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} + SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} + SONATYPE_CREDENTIAL_HOST: ${{ secrets.SONATYPE_CREDENTIAL_HOST }} + run: sbt tlCiRelease + + dependency-submission: + name: Submit Dependencies + if: github.event_name != 'pull_request' + strategy: + matrix: + os: [ubuntu-latest] + java: [temurin@17] + runs-on: ${{ matrix.os }} + steps: + - name: Checkout current branch (full) + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Java (temurin@17) + id: setup-java-temurin-17 + if: matrix.java == 'temurin@17' + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + cache: sbt + + - name: sbt update + if: matrix.java == 'temurin@17' && steps.setup-java-temurin-17.outputs.cache-hit == 'false' + run: sbt +update + + - name: Submit Dependencies + uses: scalacenter/sbt-dependency-submission@v2 + with: + modules-ignore: lucuma-primereact-sass-theme_3 + configs-ignore: test scala-tool scala-doc-tool test-internal diff --git a/.github/workflows/clean.yml b/.github/workflows/clean.yml new file mode 100644 index 0000000..547aaa4 --- /dev/null +++ b/.github/workflows/clean.yml @@ -0,0 +1,59 @@ +# This file was automatically generated by sbt-github-actions using the +# githubWorkflowGenerate task. You should add and commit this file to +# your git repository. It goes without saying that you shouldn't edit +# this file by hand! Instead, if you wish to make changes, you should +# change your sbt build configuration to revise the workflow description +# to meet your needs, then regenerate this file. + +name: Clean + +on: push + +jobs: + delete-artifacts: + name: Delete Artifacts + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - name: Delete artifacts + run: | + # Customize those three lines with your repository and credentials: + REPO=${GITHUB_API_URL}/repos/${{ github.repository }} + + # A shortcut to call GitHub API. + ghapi() { curl --silent --location --user _:$GITHUB_TOKEN "$@"; } + + # A temporary file which receives HTTP response headers. + TMPFILE=/tmp/tmp.$$ + + # An associative array, key: artifact name, value: number of artifacts of that name. + declare -A ARTCOUNT + + # Process all artifacts on this repository, loop on returned "pages". + URL=$REPO/actions/artifacts + while [[ -n "$URL" ]]; do + + # Get current page, get response headers in a temporary file. + JSON=$(ghapi --dump-header $TMPFILE "$URL") + + # Get URL of next page. Will be empty if we are at the last page. + URL=$(grep '^Link:' "$TMPFILE" | tr ',' '\n' | grep 'rel="next"' | head -1 | sed -e 's/.*.*//') + rm -f $TMPFILE + + # Number of artifacts on this page: + COUNT=$(( $(jq <<<$JSON -r '.artifacts | length') )) + + # Loop on all artifacts on this page. + for ((i=0; $i < $COUNT; i++)); do + + # Get name of artifact and count instances of this name. + name=$(jq <<<$JSON -r ".artifacts[$i].name?") + ARTCOUNT[$name]=$(( $(( ${ARTCOUNT[$name]} )) + 1)) + + id=$(jq <<<$JSON -r ".artifacts[$i].id?") + size=$(( $(jq <<<$JSON -r ".artifacts[$i].size_in_bytes?") )) + printf "Deleting '%s' #%d, %'d bytes\n" $name ${ARTCOUNT[$name]} $size + ghapi -X DELETE $REPO/actions/artifacts/$id + done + done diff --git a/.gitignore b/.gitignore index e9d1d37..9bdd917 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,97 @@ -theme.css -.DS_STORE \ No newline at end of file +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# next.js build output +.next + +# nuxt.js build output +.nuxt + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# output files +publish/src/main/resources/lucuma-css/* + +# scala, etc. +.metals/ +.bsp/ +.vscode/ +target/ +metals.sbt \ No newline at end of file diff --git a/build.sbt b/build.sbt new file mode 100644 index 0000000..c9f313c --- /dev/null +++ b/build.sbt @@ -0,0 +1,104 @@ +import scala.sys.process._ + +ThisBuild / tlBaseVersion := "0.3" +ThisBuild / tlCiReleaseBranches := Seq("main") +ThisBuild / tlSonatypeUseLegacyHost := false + +ThisBuild / organization := "edu.gemini" +ThisBuild / organizationName := "Association of Universities for Research in Astronomy, Inc. (AURA)" +ThisBuild / licenses += (( + "BSD-3-Clause", + new URL("https://opensource.org/licenses/BSD-3-Clause") +)) +ThisBuild / homepage := Some( + url("https://github.com/gemini-hlsw/lucuma-primereact-designer") +) +ThisBuild / developers := List( + Developer( + "cquiroz", + "Carlos Quiroz", + "cquiroz@gemini.edu", + url("http://www.gemini.edu") + ), + Developer( + "jluhrs", + "Javier Lührs", + "jluhrs@gemini.edu", + url("http://www.gemini.edu") + ), + Developer( + "sraaphorst", + "Sebastian Raaphorst", + "sraaphorst@gemini.edu", + url("http://www.gemini.edu") + ), + Developer( + "swalker2m", + "Shane Walker", + "swalker@gemini.edu", + url("http://www.gemini.edu") + ), + Developer( + "tpolecat", + "Rob Norris", + "rnorris@gemini.edu", + url("http://www.tpolecat.org") + ), + Developer( + "rpiaggio", + "Raúl Piaggio", + "rpiaggio@gemini.edu", + url("http://www.gemini.edu") + ), + Developer( + "toddburnside", + "Todd Burnside", + "tburnside@gemini.edu", + url("http://www.gemini.edu") + ) +) + +lazy val setupNode = WorkflowStep.Use( + UseRef.Public("actions", "setup-node", "v3"), + name = Some("Use Node.js"), + params = Map("node-version" -> "16", "cache" -> "npm") +) + +// https://stackoverflow.com/a/55610612 +lazy val npmInstall = WorkflowStep.Run( + List("npm install"), + name = Some("npm install") +) + +ThisBuild / tlCiMimaBinaryIssueCheck := false +ThisBuild / tlCiDocCheck := false +ThisBuild / githubWorkflowJavaVersions := Seq(JavaSpec.temurin("17")) +ThisBuild / githubWorkflowBuildPreamble ++= Seq(setupNode, npmInstall) +ThisBuild / githubWorkflowPublishPreamble ++= Seq(setupNode, npmInstall) + +ThisBuild / scalaVersion := "3.3.1" +ThisBuild / crossScalaVersions := Seq("3.3.1") + +Global / onChangedBuildSource := ReloadOnSourceChanges + +enablePlugins(NoPublishPlugin) + +lazy val generateStyles = taskKey[Seq[File]]("Generate prime-react styles") + +lazy val publish = project + .in(file("publish")) + .enablePlugins(ScalaJSPlugin) + .settings( + name := "lucuma-prime-styles", + generateStyles := { + val log = streams.value.log + val baseDir = (Compile / resourceManaged).value / "lucuma-css" + (s"./compile-lucuma-themes.bash $baseDir" lineStream).toList.map { line => + val parts = line.split("/") + val file = baseDir / parts.last + log.info(s"Generated ${file}") + file + } + }, + Compile / resourceGenerators += generateStyles + ) diff --git a/compile-lucuma-themes.bash b/compile-lucuma-themes.bash new file mode 100755 index 0000000..446dfc6 --- /dev/null +++ b/compile-lucuma-themes.bash @@ -0,0 +1,25 @@ +#! /bin/bash + +if [ -z "$1" ]; then + echo "No output directory supplied" + exit 2 +fi + +# Exit on errors - fails sbt publish instead of swallowing errors +set -e + +mkdir -p $1 + +darkTheme="lucuma/lucuma-dark:dark-theme.css" +lightTheme="lucuma/lucuma-light:light-theme.css" + +themes=($darkTheme $lightTheme) +for theme in ${themes[@]}; do + IFS=':' + read -a parts <<< "$theme" + themeName="${parts[0]}" + sassFile="themes/$themeName/theme.scss" + cssFile="$1/${parts[1]}" + echo "compiling $sassFile to $cssFile" + node node_modules/sass/sass.js --no-source-map $sassFile >"$cssFile" +done diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..d568ce3 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,385 @@ +{ + "name": "primereact-sass-theme", + "version": "10.4.0-SNAPSHOT", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "primereact-sass-theme", + "version": "10.4.0-SNAPSHOT", + "license": "MIT", + "devDependencies": { + "sass": "^1.69.7" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/sass": { + "version": "1.69.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", + "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + } + }, + "dependencies": { + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "immutable": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "sass": { + "version": "1.69.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", + "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } +} diff --git a/package.json b/package.json index d0a003e..99535a3 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,9 @@ "license": "MIT", "bugs": { "url": "https://github.com/primefaces/primereact-sass-theme/issues" + }, + "devDependencies": { + "sass": "^1.69.7" } } - \ No newline at end of file + diff --git a/project/build.properties b/project/build.properties new file mode 100644 index 0000000..abbbce5 --- /dev/null +++ b/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.9.8 diff --git a/project/plugins.sbt b/project/plugins.sbt new file mode 100644 index 0000000..295eec0 --- /dev/null +++ b/project/plugins.sbt @@ -0,0 +1,3 @@ +val sbtTypelevelVersion = "0.6.5" +addSbtPlugin("org.typelevel" % "sbt-typelevel-ci-release" % sbtTypelevelVersion) +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.15.0") diff --git a/themes/lucuma/_overrides.scss b/themes/lucuma/_overrides.scss new file mode 100644 index 0000000..ea849f4 --- /dev/null +++ b/themes/lucuma/_overrides.scss @@ -0,0 +1,4 @@ +// Overrides. There's no variable to set this just for one component. +.p-accordion .p-accordion-header:not(.p-disabled) .p-accordion-header-link:focus { + box-shadow: none; +} \ No newline at end of file diff --git a/themes/lucuma/_variables.scss b/themes/lucuma/_variables.scss new file mode 100644 index 0000000..e129fd7 --- /dev/null +++ b/themes/lucuma/_variables.scss @@ -0,0 +1,30 @@ +// Add variables common to both light and dark themes here, then use them in the individual +// `theme.scss` files. +$fontName: "Lato"; +$fontFamily: $fontName, "Helvetica Neue", Arial, Helvetica, sans-serif; +$fontSize: 1em; +$borderRadius: 4px; +$inputPadding: 0.25rem 0.5rem; +$inputListItemPadding: 0.15rem 0.5rem; +$tableHeaderCellBg: var(--surface-100); +$buttonPadding: 0.78571429em 0.78571429em; +$buttonIconOnlyPadding: 0.78571429em 0.78571429em; +$buttonIconOnlyWidth: initial; +$successButtonBg: #4caf50; // this is --green-500, but can't use the var because of color calculations +$dangerButtonBg: #ff6459; // this is --red-400, but can't use the var because of color calculations + +$errorMessageBg: #b32d23; // this is --red-700 +$errorMessageTextColor: #ffffff; +$errorMessageIconColor: $errorMessageTextColor; +$warningMessageBg: #d5a326; // this is --yellow-600 +$warningMessageTextColor: #ffffff; +$warningMessageIconColor: $warningMessageTextColor; + +$tooltipBg: var(--surface-ground); +$tooltipTextColor: var(--text-color); + +// remove the bottom padding on the dialog and have the footer add it because the content scrollbars look +// odd otherwise. For dialogs without a footer, extra css can be used, or a empty div for the footer +// might look better with scrolling content. +$dialogContentPadding: 0 1.5rem; +$dialogFooterPadding: 1rem 1.5rem; diff --git a/themes/lucuma/lucuma-dark/_theme-vars.scss b/themes/lucuma/lucuma-dark/_theme-vars.scss new file mode 100644 index 0000000..1c7a608 --- /dev/null +++ b/themes/lucuma/lucuma-dark/_theme-vars.scss @@ -0,0 +1,12 @@ +@use '../../arya/arya-blue/variables'; + +// In the `use...with...` in `theme.scss`, there is no access to the variables from +// the above theme, so we need to do the setting of variables here where we have access. +// Here, we can also set variables from other variables, which can't be done in theme.scss +$secondaryButtonBg: hsla(210, 7.9%, 45%, 1); +$secondaryButtonHoverBg:scale-color($secondaryButtonBg, $lightness: 10%); +$secondaryButtonActiveBg:scale-color($secondaryButtonBg, $lightness: 20%); +$toggleButtonBg: $secondaryButtonBg; +$toggleButtonHoverBg: $secondaryButtonHoverBg; +$successButtonTextColor: var(--text-color); +$dangerButtonTextColor: var(--text-color); diff --git a/themes/lucuma/lucuma-dark/theme.scss b/themes/lucuma/lucuma-dark/theme.scss new file mode 100644 index 0000000..88ac832 --- /dev/null +++ b/themes/lucuma/lucuma-dark/theme.scss @@ -0,0 +1,46 @@ +@use '../variables' as lucuma; +@use 'theme-vars' as tvars; + +@use '../../arya/arya-blue/theme' with ($fontFamily: lucuma.$fontFamily, + $fontSize: lucuma.$fontSize, + $borderRadius: lucuma.$borderRadius, + $inputPadding: lucuma.$inputPadding, + $inputListItemPadding: lucuma.$inputListItemPadding, + $tableHeaderCellBg: lucuma.$tableHeaderCellBg, + $buttonIconOnlyPadding: lucuma.$buttonIconOnlyPadding, + $buttonIconOnlyWidth: lucuma.$buttonIconOnlyWidth, + $buttonPadding: lucuma.$buttonPadding, + $dangerButtonBg: lucuma.$dangerButtonBg, + $successButtonBg: lucuma.$successButtonBg, + + $errorMessageBg: lucuma.$errorMessageBg, + $errorMessageTextColor: lucuma.$errorMessageTextColor, + $errorMessageIconColor: lucuma.$errorMessageIconColor, + $warningMessageBg: lucuma.$warningMessageBg, + $warningMessageTextColor: lucuma.$warningMessageTextColor, + $warningMessageIconColor: lucuma.$warningMessageIconColor, + + $tooltipBg: lucuma.$tooltipBg, + $dialogContentPadding: lucuma.$dialogContentPadding, + $dialogFooterPadding: lucuma.$dialogFooterPadding, + + // theme specific overrides + $primaryColor: hsl(206, 66.7%, 38.8%), // from button active color in current explore + $primaryTextColor: hsla(0, 0%, 100%, 0.87), + $secondaryButtonBg: tvars.$secondaryButtonBg, + $secondaryButtonHoverBg: tvars.$secondaryButtonHoverBg, + $secondaryButtonActiveBg: tvars.$secondaryButtonActiveBg, + $dangerButtonTextColor: tvars.$dangerButtonTextColor, + $successButtonTextColor: tvars.$successButtonTextColor, + + $toggleButtonBg: tvars.$toggleButtonBg, + $toggleButtonHoverBg: tvars.$toggleButtonHoverBg, + + $checkboxActiveBg: unset, + $checkboxActiveBorderColor: unset, + $checkboxActiveHoverBg: unset, + + $disabledOpacity: .5, +); + +@import "../overrides"; \ No newline at end of file diff --git a/themes/lucuma/lucuma-light/_theme-vars.scss b/themes/lucuma/lucuma-light/_theme-vars.scss new file mode 100644 index 0000000..cae85cc --- /dev/null +++ b/themes/lucuma/lucuma-light/_theme-vars.scss @@ -0,0 +1,5 @@ +@use '../../saga/saga-blue/variables'; + +// In the `use...with...` in `theme.scss`, there is no access to the variables from +// the above theme, so we need to do the setting of variables here where we have access. +// Here, we can also set variables from other variables, which can't be done in theme.scss diff --git a/themes/lucuma/lucuma-light/theme.scss b/themes/lucuma/lucuma-light/theme.scss new file mode 100644 index 0000000..8171006 --- /dev/null +++ b/themes/lucuma/lucuma-light/theme.scss @@ -0,0 +1,30 @@ +@use "../variables" as lucuma; +@use "theme-vars" as tvars; + +@use "../../saga/saga-blue/theme" with ( + $fontFamily: lucuma.$fontFamily, + $fontSize: lucuma.$fontSize, + $borderRadius: lucuma.$borderRadius, + $inputPadding: lucuma.$inputPadding, + $inputListItemPadding: lucuma.$inputListItemPadding, + $tableHeaderCellBg: lucuma.$tableHeaderCellBg, + $buttonIconOnlyPadding: lucuma.$buttonIconOnlyPadding, + $buttonIconOnlyWidth: lucuma.$buttonIconOnlyWidth, + $buttonPadding: lucuma.$buttonPadding, + $dangerButtonBg: lucuma.$dangerButtonBg, + $successButtonBg: lucuma.$successButtonBg, + + $errorMessageBg: lucuma.$errorMessageBg, + $errorMessageTextColor: lucuma.$errorMessageTextColor, + $errorMessageIconColor: lucuma.$errorMessageIconColor, + $warningMessageBg: lucuma.$warningMessageBg, + $warningMessageTextColor: lucuma.$warningMessageTextColor, + $warningMessageIconColor: lucuma.$warningMessageIconColor, + + $tooltipBg: lucuma.$tooltipBg, + $tooltipTextColor: lucuma.$tooltipTextColor, + $dialogContentPadding: lucuma.$dialogContentPadding, + $dialogFooterPadding: lucuma.$dialogFooterPadding +); + +@import "../overrides"; From fa8d463d0fbda79a6afabc943bf812f16b04d4b3 Mon Sep 17 00:00:00 2001 From: Todd Burnside Date: Wed, 22 May 2024 16:49:56 -0400 Subject: [PATCH 2/3] Add flakes --- .envrc | 3 ++ .gitignore | 3 +- flake.lock | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 36 +++++++++++++ 4 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 .envrc create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3add3fc --- /dev/null +++ b/.envrc @@ -0,0 +1,3 @@ +use flake +layout node +eval "$shellHook" diff --git a/.gitignore b/.gitignore index 9bdd917..ebab606 100644 --- a/.gitignore +++ b/.gitignore @@ -94,4 +94,5 @@ publish/src/main/resources/lucuma-css/* .bsp/ .vscode/ target/ -metals.sbt \ No newline at end of file +metals.sbt +.direnv diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..80c450b --- /dev/null +++ b/flake.lock @@ -0,0 +1,156 @@ +{ + "nodes": { + "devshell": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1708939976, + "narHash": "sha256-O5+nFozxz2Vubpdl1YZtPrilcIXPcRAjqNdNE8oCRoA=", + "owner": "numtide", + "repo": "devshell", + "rev": "5ddecd67edbd568ebe0a55905273e56cc82aabe3", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1704161960, + "narHash": "sha256-QGua89Pmq+FBAro8NriTuoO/wNaUtugt29/qqA8zeeM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "63143ac2c9186be6d9da6035fa22620018c85932", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1710097495, + "narHash": "sha256-B7Ea7q7hU7SE8wOPJ9oXEBjvB89yl2csaLjf5v/7jr8=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "d40e866b1f98698d454dad8f592fe7616ff705a4", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": [ + "typelevel-nix", + "flake-utils" + ], + "nixpkgs": [ + "typelevel-nix", + "nixpkgs" + ], + "typelevel-nix": "typelevel-nix" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "typelevel-nix": { + "inputs": { + "devshell": "devshell", + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1710188850, + "narHash": "sha256-KbNmyxEvcnq5h/wfeL1ZxO9RwoNRjJ0IgYlUZpdSlLo=", + "owner": "typelevel", + "repo": "typelevel-nix", + "rev": "60c3868688cb8f5f7ebc781f6e122c061ae35d4d", + "type": "github" + }, + "original": { + "owner": "typelevel", + "repo": "typelevel-nix", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..4d2c71e --- /dev/null +++ b/flake.nix @@ -0,0 +1,36 @@ +{ + inputs = { + typelevel-nix.url = "github:typelevel/typelevel-nix"; + nixpkgs.follows = "typelevel-nix/nixpkgs"; + flake-utils.follows = "typelevel-nix/flake-utils"; + }; + + outputs = { self, nixpkgs, flake-utils, typelevel-nix }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs-x86_64 = import nixpkgs { + system = "x86_64-darwin"; + }; + scala-cli-overlay = final: prev: { + scala-cli = pkgs-x86_64.scala-cli; + }; + pkgs = import nixpkgs { + inherit system; + overlays = [ typelevel-nix.overlay scala-cli-overlay]; + }; + in + { + devShell = pkgs.devshell.mkShell { + imports = [ typelevel-nix.typelevelShell ]; + packages = [ + pkgs.nodePackages.vscode-langservers-extracted + ]; + typelevelShell = { + nodejs.enable = true; + jdk.package = pkgs.jdk17; + }; + }; + } + + ); +} From f37296ac39041a30303dbdb96299836d68a0a806 Mon Sep 17 00:00:00 2001 From: Todd Burnside Date: Fri, 24 May 2024 11:06:32 -0400 Subject: [PATCH 3/3] Sync with upstream --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index d568ce3..ee60bda 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "primereact-sass-theme", - "version": "10.4.0-SNAPSHOT", + "version": "10.6.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "primereact-sass-theme", - "version": "10.4.0-SNAPSHOT", + "version": "10.6.6", "license": "MIT", "devDependencies": { "sass": "^1.69.7"