Vico temperature anomalies
Your component is published, but its preview could not be generated.
…
W1lbWJlckF4aXNHdWlkZWxpbmVDb21wb25lbnQKaW1wb3J0IGNvbS5wYXRyeWthbmRwYXRyaWNrLnZpY28uY29tcG9zZS5jYXJ0ZXNpYW4ubWFya2VyLkNhcnRlc2lhbk1hcmtlcgppbXBvcnQgY29tLnBhdHJ5a2FuZHBhdHJpY2sudmljby5jb21wb3NlLmNhcnRlc2lhbi5tYXJrZXIucmVtZW1iZXJEZWZhdWx0Q2FydGVzaWFuTWFya2VyCmltcG9ydCBjb20ucGF0cnlrYW5kcGF0cmljay52aWNvLmNvbXBvc2UuY29tbW9uLkluc2V0cwppbXBvcnQgY29tLnBhdHJ5a2FuZHBhdHJpY2sudmljby5jb21wb3NlLmNvbW1vbi5MYXllcmVkQ29tcG9uZW50CmltcG9ydCBjb20ucGF0cnlrYW5kcGF0cmljay52aWNvLmNvbXBvc2UuY29tbW9uLk1hcmtlckNvcm5lckJhc2VkU2hhcGUKaW1wb3J0IGNvbS5wYXRyeWthbmRwYXRyaWNrLnZpY28uY29tcG9zZS5jb21tb24uY29tcG9uZW50LlNoYXBlQ29tcG9uZW50CmltcG9ydCBjb20ucGF0cnlrYW5kcGF0cmljay52aWNvLmNvbXBvc2UuY29tbW9uLmNvbXBvbmVudC5UZXh0Q29tcG9uZW50CmltcG9ydCBjb20ucGF0cnlrYW5kcGF0cmljay52aWNvLmNvbXBvc2UuY29tbW9uLmNvbXBvbmVudC5yZW1lbWJlclNoYXBlQ29tcG9uZW50CmltcG9ydCBjb20ucGF0cnlrYW5kcGF0cmljay52aWNvLmNvbXBvc2UuY29tbW9uLmNvbXBvbmVudC5yZW1lbWJlclRleHRDb21wb25lbnQKCi8qCiAqIENvcHlyaWdodCAyMDI2IGJ5IFBhdHJ5ayBHb3dvcm93c2tpIGFuZCBQYXRyaWNrIE1pY2hhbGlrLgogKgogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICoKICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKi8KCgoKcHJpdmF0ZSBjb25zdCB2YWwgUkFOR0VfUFJPVklERVJfQkFTRSA9IDAuMQoKcHJpdmF0ZSB2YWwgUmFuZ2VQcm92aWRlciA9CiAgb2JqZWN0IDogQ2FydGVzaWFuTGF5ZXJSYW5nZVByb3ZpZGVyIHsKICAgIG92ZXJyaWRlIGZ1biBnZXRNaW5ZKG1pblk6IERvdWJsZSwgbWF4WTogRG91YmxlLCBleHRyYVN0b3JlOiBFeHRyYVN0b3JlKSA9CiAgICAgIC1SQU5HRV9QUk9WSURFUl9CQVNFICogY2VpbChtYXgoYWJzKG1pblkpLCBtYXhZKSAvIFJBTkdFX1BST1ZJREVSX0JBU0UpCgogICAgb3ZlcnJpZGUgZnVuIGdldE1heFkobWluWTogRG91YmxlLCBtYXhZOiBEb3VibGUsIGV4dHJhU3RvcmU6IEV4dHJhU3RvcmUpID0KICAgICAgLWdldE1pblkobWluWSwgbWF4WSwgZXh0cmFTdG9yZSkKICB9Cgpwcml2YXRlIHZhbCBTdGFydEF4aXNWYWx1ZUZvcm1hdHRlciA9IENhcnRlc2lhblZhbHVlRm9ybWF0dGVyLmRlY2ltYWwoc3VmZml4ID0gIiDCsEMiKQoKcHJpdmF0ZSB2YWwgTWFya2VyVmFsdWVGb3JtYXR0ZXIgPSBEZWZhdWx0Q2FydGVzaWFuTWFya2VyLlZhbHVlRm9ybWF0dGVyLmRlZmF1bHQoc3VmZml4ID0gIiDCsEMiKQoKcHJpdmF0ZSBmdW4gZ2V0Q29sdW1uUHJvdmlkZXIocG9zaXRpdmU6IExpbmVDb21wb25lbnQsIG5lZ2F0aXZlOiBMaW5lQ29tcG9uZW50KSA9CiAgb2JqZWN0IDogQ29sdW1uQ2FydGVzaWFuTGF5ZXIuQ29sdW1uUHJvdmlkZXIgewogICAgb3ZlcnJpZGUgZnVuIGdldENvbHVtbihlbnRyeTogQ29sdW1uQ2FydGVzaWFuTGF5ZXJNb2RlbC5FbnRyeSwgZXh0cmFTdG9yZTogRXh0cmFTdG9yZSkgPQogICAgICBpZiAoZW50cnkueSA+PSAwKSBwb3NpdGl2ZSBlbHNlIG5lZ2F0aXZlCgogICAgb3ZlcnJpZGUgZnVuIGdldFdpZGVzdFNlcmllc0NvbHVtbihzZXJpZXNLZXk6IEFueSwgc2VyaWVzSW5kZXg6IEludCwgZXh0cmFTdG9yZTogRXh0cmFTdG9yZSkgPQogICAgICBwb3NpdGl2ZQogIH0KCkBDb21wb3NhYmxlCnByaXZhdGUgZnVuIENvbXBvc2VUZW1wZXJhdHVyZUFub21hbGllcygKICBtb2RlbFByb2R1Y2VyOiBDYXJ0ZXNpYW5DaGFydE1vZGVsUHJvZHVjZXIsCiAgbW9kaWZpZXI6IE1vZGlmaWVyID0gTW9kaWZpZXIsCikgewogIHZhbCBwb3NpdGl2ZUNvbHVtbiA9CiAgICByZW1lbWJlckxpbmVDb21wb25lbnQoCiAgICAgIGZpbGwgPSBGaWxsKENvbG9yKDB4ZmYwYWMyODUpKSwKICAgICAgdGhpY2tuZXNzID0gOC5kcCwKICAgICAgc2hhcGUgPSBSb3VuZGVkQ29ybmVyU2hhcGUodG9wU3RhcnRQZXJjZW50ID0gNDAsIHRvcEVuZFBlcmNlbnQgPSA0MCksCiAgICApCiAgdmFsIG5lZ2F0aXZlQ29sdW1uID0KICAgIHJlbWVtYmVyTGluZUNvbXBvbmVudCgKICAgICAgZmlsbCA9IEZpbGwoQ29sb3IoMHhmZmU4MzA0ZikpLAogICAgICB0aGlja25lc3MgPSA4LmRwLAogICAgICBzaGFwZSA9IFJvdW5kZWRDb3JuZXJTaGFwZShib3R0b21TdGFydFBlcmNlbnQgPSA0MCwgYm90dG9tRW5kUGVyY2VudCA9IDQwKSwKICAgICkKICBDYXJ0ZXNpYW5DaGFydEhvc3QoCiAgICBjaGFydCA9CiAgICAgIHJlbWVtYmVyQ2FydGVzaWFuQ2hhcnQoCiAgICAgICAgcmVtZW1iZXJDb2x1bW5DYXJ0ZXNpYW5MYXllcigKICAgICAgICAgIGNvbHVtblByb3ZpZGVyID0KICAgICAgICAgICAgcmVtZW1iZXIocG9zaXRpdmVDb2x1bW4sIG5lZ2F0aXZlQ29sdW1uKSB7CiAgICAgICAgICAgICAgZ2V0Q29sdW1uUHJvdmlkZXIocG9zaXRpdmVDb2x1bW4sIG5lZ2F0aXZlQ29sdW1uKQogICAgICAgICAgICB9LAogICAgICAgICAgY29sdW1uQ29sbGVjdGlvblNwYWNpbmcgPSA0LmRwLAogICAgICAgICAgcmFuZ2VQcm92aWRlciA9IFJhbmdlUHJvdmlkZXIsCiAgICAgICAgKSwKICAgICAgICBzdGFydEF4aXMgPSBWZXJ0aWNhbEF4aXMucmVtZW1iZXJTdGFydCh2YWx1ZUZvcm1hdHRlciA9IFN0YXJ0QXhpc1ZhbHVlRm9ybWF0dGVyKSwKICAgICAgICBib3R0b21BeGlzID0gSG9yaXpvbnRhbEF4aXMucmVtZW1iZXJCb3R0b20obGFiZWxSb3RhdGlvbkRlZ3JlZXMgPSA0NWYpLAogICAgICAgIG1hcmtlciA9IHJlbWVtYmVyTWFya2VyKE1hcmtlclZhbHVlRm9ybWF0dGVyKSwKICAgICAgKSwKICAgIG1vZGVsUHJvZHVjZXIgPSBtb2RlbFByb2R1Y2VyLAogICAgbW9kaWZpZXIgPSBtb2RpZmllciwKICAgIHNjcm9sbFN0YXRlID0gcmVtZW1iZXJWaWNvU2Nyb2xsU3RhdGUoaW5pdGlhbFNjcm9sbCA9IFNjcm9sbC5BYnNvbHV0ZS5FbmQpLAogICkKfQoKQENvbXBvc2FibGUKZnVuIENvbXBvc2VUZW1wZXJhdHVyZUFub21hbGllcyhtb2RpZmllcjogTW9kaWZpZXIgPSBNb2RpZmllcikgewogIHZhbCBtb2RlbFByb2R1Y2VyID0gcmVtZW1iZXIgeyBDYXJ0ZXNpYW5DaGFydE1vZGVsUHJvZHVjZXIoKSB9CiAgTGF1bmNoZWRFZmZlY3QoVW5pdCkgewogICAgbW9kZWxQcm9kdWNlci5ydW5UcmFuc2FjdGlvbiB7CiAgICAgIC8vIExlYXJuIG1vcmU6IGh0dHBzOi8vcGF0cnlrYW5kcGF0cmljay5jb20vM2FxeTRvLgogICAgICBjb2x1bW5Nb2RlbCB7IHNlcmllcyh4LCB5KSB9CiAgICB9CiAgfQogIENvbXBvc2VUZW1wZXJhdHVyZUFub21hbGllcyhtb2RlbFByb2R1Y2VyLCBtb2RpZmllcikKfQoKLyoKICogQ29weXJpZ2h0IDIwMjYgYnkgUGF0cnlrIEdvd29yb3dza2kgYW5kIFBhdHJpY2sgTWljaGFsaWsuCiAqCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogKgogKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAqCiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCiAqLwoKCgppbnRlcm5hbCB2YWwgTG9jYWxNYXJrZXJzRW5hYmxlZCA9IHN0YXRpY0NvbXBvc2l0aW9uTG9jYWxPZiB7IHRydWUgfQoKQENvbXBvc2FibGUKaW50ZXJuYWwgZnVuIHJlbWVtYmVyTWFya2VyKAogIHZhbHVlRm9ybWF0dGVyOiBEZWZhdWx0Q2FydGVzaWFuTWFya2VyLlZhbHVlRm9ybWF0dGVyID0KICAgIERlZmF1bHRDYXJ0ZXNpYW5NYXJrZXIuVmFsdWVGb3JtYXR0ZXIuZGVmYXVsdCgpLAogIHNob3dJbmRpY2F0b3I6IEJvb2xlYW4gPSB0cnVlLAopOiBDYXJ0ZXNpYW5NYXJrZXI/IHsKICBpZiAoIUxvY2FsTWFya2Vyc0VuYWJsZWQuY3VycmVudCkgcmV0dXJuIG51bGwKICB2YWwgbGFiZWxCYWNrZ3JvdW5kU2hhcGUgPSBNYXJrZXJDb3JuZXJCYXNlZFNoYXBlKENpcmNsZVNoYXBlKQogIHZhbCBsYWJlbEJhY2tncm91bmQgPQogICAgcmVtZW1iZXJTaGFwZUNvbXBvbmVudCgKICAgICAgZmlsbCA9IEZpbGwoTWF0ZXJpYWxUaGVtZS5jb2xvclNjaGVtZS5iYWNrZ3JvdW5kKSwKICAgICAgc2hhcGUgPSBsYWJlbEJhY2tncm91bmRTaGFwZSwKICAgICAgc3Ryb2tlRmlsbCA9IEZpbGwoTWF0ZXJpYWxUaGVtZS5jb2xvclNjaGVtZS5vdXRsaW5lKSwKICAgICAgc3Ryb2tlVGhpY2tuZXNzID0gMS5kcCwKICAgICkKICB2YWwgbGFiZWwgPQogICAgcmVtZW1iZXJUZXh0Q29tcG9uZW50KAogICAgICBzdHlsZSA9CiAgICAgICAgVGV4dFN0eWxlKAogICAgICAgICAgY29sb3IgPSBNYXRlcmlhbFRoZW1lLmNvbG9yU2NoZW1lLm9uU3VyZmFjZSwKICAgICAgICAgIHRleHRBbGlnbiA9IFRleHRBbGlnbi5DZW50ZXIsCiAgICAgICAgICBmb250U2l6ZSA9IDEyLnNwLAogICAgICAgICksCiAgICAgIHBhZGRpbmcgPSBJbnNldHMoOC5kcCwgNC5kcCksCiAgICAgIGJhY2tncm91bmQgPSBsYWJlbEJhY2tncm91bmQsCiAgICAgIG1pbldpZHRoID0gVGV4dENvbXBvbmVudC5NaW5XaWR0aC5maXhlZCg0MC5kcCksCiAgICApCiAgdmFsIGluZGljYXRvckZyb250Q29tcG9uZW50ID0KICAgIHJlbWVtYmVyU2hhcGVDb21wb25lbnQoRmlsbChNYXRlcmlhbFRoZW1lLmNvbG9yU2NoZW1lLnN1cmZhY2UpLCBDaXJjbGVTaGFwZSkKICB2YWwgZ3VpZGVsaW5lID0gcmVtZW1iZXJBeGlzR3VpZGVsaW5lQ29tcG9uZW50KCkKICByZXR1cm4gcmVtZW1iZXJEZWZhdWx0Q2FydGVzaWFuTWFya2VyKAogICAgbGFiZWwgPSBsYWJlbCwKICAgIHZhbHVlRm9ybWF0dGVyID0gdmFsdWVGb3JtYXR0ZXIsCiAgICBpbmRpY2F0b3IgPQogICAgICBpZiAoc2hvd0luZGljYXRvcikgewogICAgICAgIHsgY29sb3IgLT4KICAgICAgICAgIExheWVyZWRDb21wb25lbnQoCiAgICAgICAgICAgIGJhY2sgPSBTaGFwZUNvbXBvbmVudChGaWxsKGNvbG9yLmNvcHkoYWxwaGEgPSAwLjE1ZikpLCBDaXJjbGVTaGFwZSksCiAgICAgICAgICAgIGZyb250ID0KICAgICAgICAgICAgICBMYXllcmVkQ29tcG9uZW50KAogICAgICAgICAgICAgICAgYmFjayA9IFNoYXBlQ29tcG9uZW50KGZpbGwgPSBGaWxsKGNvbG9yKSwgc2hhcGUgPSBDaXJjbGVTaGFwZSksCiAgICAgICAgICAgICAgICBmcm9udCA9IGluZGljYXRvckZyb250Q29tcG9uZW50LAogICAgICAgICAgICAgICAgcGFkZGluZyA9IEluc2V0cyg1LmRwKSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBwYWRkaW5nID0gSW5zZXRzKDEwLmRwKSwKICAgICAgICAgICkKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbnVsbAogICAgICB9LAogICAgaW5kaWNhdG9yU2l6ZSA9IDM2LmRwLAogICAgZ3VpZGVsaW5lID0gZ3VpZGVsaW5lLAogICkKfQoKQFByZXZpZXcobmFtZSA9ICJWaWNvIHRlbXBlcmF0dXJlIGFub21hbGllcyIpCkBDb21wb3NhYmxlCmZ1biBDb21tdW5pdHlDb21wb3NlVGVtcGVyYXR1cmVBbm9tYWxpZXNQcmV2aWV3KCkgewogICAgQ29tcG9zZVRlbXBlcmF0dXJlQW5vbWFsaWVzKCkKfQ==
2026-09-11T05:54:25.4234416Z DEPENDENCIES_BASE64: Y29tLnBhdHJ5a2FuZHBhdHJpY2sudmljbzpjb21wb3NlOjMuMy4xCm9yZy5qZXRicmFpbnMuY29tcG9zZS5ydW50aW1lOnJ1bnRpbWU6MS4xMi4wCm9yZy5qZXRicmFpbnMuY29tcG9zZS5mb3VuZGF0aW9uOmZvdW5kYXRpb246MS4xMi4wCm9yZy5qZXRicmFpbnMuY29tcG9zZS51aTp1aToxLjEyLjAKb3JnLmpldGJyYWlucy5jb21wb3NlLm1hdGVyaWFsMzptYXRlcmlhbDM6MS45LjA=
2026-09-11T05:54:25.4236522Z ##[endgroup]
2026-09-11T05:54:25.5201471Z {"entryPoint":"CommunityComposeTemperatureAnomaliesPreview","title":"Vico temperature anomalies"}
2026-09-11T05:54:25.5354819Z ##[group]Run ./gradlew -p preview-builder :create-preview:wasmJsBrowserDevelopmentExecutableDistribution --console=plain --warning-mode=none -Pkotlin.js.yarn.lock.mismatch.report=warning
2026-09-11T05:54:25.5356667Z [36;1m./gradlew -p preview-builder :create-preview:wasmJsBrowserDevelopmentExecutableDistribution --console=plain --warning-mode=none -Pkotlin.js.yarn.lock.mismatch.report=warning[0m
2026-09-11T05:54:25.5400305Z shell: /usr/bin/bash -e {0}
2026-09-11T05:54:25.5400661Z env:
2026-09-11T05:54:25.5400976Z APP_TMP_DIR: /tmp/composables-preview
2026-09-11T05:54:25.5401396Z GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx4g
2026-09-11T05:54:25.5401788Z R2_BUCKET: composables-static
2026-09-11T05:54:25.5402150Z R2_PREFIX: community/review-previews
2026-09-11T05:54:25.5402643Z JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.12-1/x64
2026-09-11T05:54:25.5403232Z JAVA_HOME_21_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.12-1/x64
2026-09-11T05:54:25.5403796Z GRADLE_ACTION_ID: gradle/actions/setup-gradle
2026-09-11T05:54:25.5404192Z GRADLE_USER_HOME: /home/runner/.gradle
2026-09-11T05:54:25.5404574Z GRADLE_BUILD_ACTION_SETUP_COMPLETED: true
2026-09-11T05:54:25.5404968Z GRADLE_BUILD_ACTION_CACHE_RESTORED: true
2026-09-11T05:54:25.5405506Z DEVELOCITY_INJECTION_INIT_SCRIPT_NAME: gradle-actions.inject-develocity.init.gradle
2026-09-11T05:54:25.5406586Z DEVELOCITY_INJECTION_CUSTOM_VALUE: gradle-actions
2026-09-11T05:54:25.5406997Z GITHUB_DEPENDENCY_GRAPH_ENABLED: false
2026-09-11T05:54:25.5407355Z ##[endgroup]
2026-09-11T05:54:26.6257579Z Starting a Gradle Daemon (subsequent builds will be faster)
2026-09-11T05:54:39.7219854Z > Task :kotlinWasmKotlinNpmCachesSetup
2026-09-11T05:54:43.5378378Z > Task :kotlinWasmNodeJsSetup
2026-09-11T05:54:43.6373105Z > Task :kotlinWasmRestoreYarnLock
2026-09-11T05:54:43.6387449Z > Task :kotlinWasmYarnSetup
2026-09-11T05:54:44.8191595Z > Task :preview-host:wasmJsPackageJson
2026-09-11T05:54:45.3187461Z > Task :create-preview:wasmJsPackageJson
2026-09-11T05:54:45.3227455Z > Task :create-preview:wasmJsTestPackageJson
2026-09-11T05:54:45.3239374Z > Task :preview-host:wasmJsTestPackageJson
2026-09-11T05:54:45.3240497Z > Task :create-preview:wasmJsPublicPackageJson
2026-09-11T05:54:45.3297026Z > Task :create-preview:wasmJsTestPublicPackageJson
2026-09-11T05:54:45.3309183Z > Task :preview-host:wasmJsPublicPackageJson
2026-09-11T05:54:45.3337878Z > Task :preview-host:wasmJsTestPublicPackageJson
2026-09-11T05:54:45.3356668Z > Task :kotlinWasmPackageJsonUmbrella
2026-09-11T05:54:45.3374780Z > Task :wasmRootPackageJson
2026-09-11T05:54:46.1182312Z
2026-09-11T05:54:46.1205019Z (node:2293) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
2026-09-11T05:54:46.1207147Z > Task :kotlinWasmNpmInstall
2026-09-11T05:54:46.1208514Z (Use `node --trace-deprecation ...` to show where the warning was created)
2026-09-11T05:54:46.1209088Z
2026-09-11T05:54:46.1209622Z warning Ignored scripts due to flag.
2026-09-11T05:54:46.1210303Z > Task :kotlinWasmStoreYarnLock
2026-09-11T05:54:46.1211499Z Lock file was changed. Run the `kotlinWasmUpgradeYarnLock` task to actualize lock file
2026-09-11T05:54:48.1181843Z
2026-09-11T05:54:48.1183196Z > Task :kotlinWasmToolingSetup
2026-09-11T05:54:48.1187488Z (node:2308) [DEP0169] DeprecationWarning: `url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.
2026-09-11T05:54:48.1195974Z (Use `node --trace-deprecation ...` to show where the warning was created)
2026-09-11T05:55:07.6184466Z warning "webpack-dev-server > webpack-dev-middleware > [email protected]" has unmet peer dependency "tslib@2".
2026-09-11T05:55:11.0194350Z warning Ignored scripts due to flag.
2026-09-11T05:55:12.9214335Z
2026-09-11T05:55:12.9258418Z > Task :create-preview:kmpPartiallyResolvedDependenciesChecker
2026-09-11T05:55:12.9260162Z > Task :create-preview:checkKotlinGradlePluginConfigurationErrors SKIPPED
2026-09-11T05:55:13.0206326Z > Task :create-preview:checkWasmJsMainComposeLibrariesCompatibility
2026-09-11T05:55:13.0227726Z > Task :create-preview:convertXmlValueResourcesForCommonMain NO-SOURCE
2026-09-11T05:55:13.0267374Z > Task :create-preview:copyNonXmlValueResourcesForCommonMain NO-SOURCE
2026-09-11T05:55:13.0296110Z > Task :create-preview:prepareComposeResourcesTaskForCommonMain NO-SOURCE
2026-09-11T05:55:13.0327216Z > Task :create-preview:generateResourceAccessorsForCommonMain SKIPPED
2026-09-11T05:55:13.0343374Z > Task :create-preview:convertXmlValueResourcesForWasmJsMain NO-SOURCE
2026-09-11T05:55:13.0344672Z > Task :create-preview:copyNonXmlValueResourcesForWasmJsMain NO-SOURCE
2026-09-11T05:55:13.0388008Z > Task :create-preview:prepareComposeResourcesTaskForWasmJsMain NO-SOURCE
2026-09-11T05:55:13.0438194Z > Task :create-preview:generateResourceAccessorsForWasmJsMain SKIPPED
2026-09-11T05:55:13.0442004Z > Task :create-preview:convertXmlValueResourcesForWebMain NO-SOURCE
2026-09-11T05:55:13.0486939Z > Task :create-preview:copyNonXmlValueResourcesForWebMain NO-SOURCE
2026-09-11T05:55:13.0507062Z > Task :create-preview:prepareComposeResourcesTaskForWebMain NO-SOURCE
2026-09-11T05:55:13.0527130Z > Task :create-preview:generateResourceAccessorsForWebMain SKIPPED
2026-09-11T05:55:13.0563495Z > Task :create-preview:generateActualResourceCollectorsForWasmJsMain SKIPPED
2026-09-11T05:55:13.0580228Z > Task :create-preview:generateComposeResClass SKIPPED
2026-09-11T05:55:13.0594921Z > Task :create-preview:generateExpectResourceCollectorsForCommonMain SKIPPED
2026-09-11T05:55:13.0597922Z > Task :preview-host:kmpPartiallyResolvedDependenciesChecker
2026-09-11T05:55:13.0599324Z > Task :preview-host:checkKotlinGradlePluginConfigurationErrors SKIPPED
2026-09-11T05:55:13.1211330Z > Task :preview-host:checkWasmJsMainComposeLibrariesCompatibility
2026-09-11T05:55:13.1227600Z > Task :preview-host:convertXmlValueResourcesForCommonMain NO-SOURCE
2026-09-11T05:55:13.1247082Z > Task :preview-host:copyNonXmlValueResourcesForCommonMain NO-SOURCE
2026-09-11T05:55:13.1266824Z > Task :preview-host:prepareComposeResourcesTaskForCommonMain NO-SOURCE
2026-09-11T05:55:13.1286652Z > Task :preview-host:generateResourceAccessorsForCommonMain SKIPPED
2026-09-11T05:55:13.1288960Z > Task :preview-host:convertXmlValueResourcesForWasmJsMain NO-SOURCE
2026-09-11T05:55:13.1306771Z > Task :preview-host:copyNonXmlValueResourcesForWasmJsMain NO-SOURCE
2026-09-11T05:55:13.1326743Z > Task :preview-host:prepareComposeResourcesTaskForWasmJsMain NO-SOURCE
2026-09-11T05:55:13.1346674Z > Task :preview-host:generateResourceAccessorsForWasmJsMain SKIPPED
2026-09-11T05:55:13.1366542Z > Task :preview-host:convertXmlValueResourcesForWebMain NO-SOURCE
2026-09-11T05:55:13.1367700Z > Task :preview-host:copyNonXmlValueResourcesForWebMain NO-SOURCE
2026-09-11T05:55:13.1383318Z > Task :preview-host:prepareComposeResourcesTaskForWebMain NO-SOURCE
2026-09-11T05:55:13.1388116Z > Task :preview-host:generateResourceAccessorsForWebMain SKIPPED
2026-09-11T05:55:13.1403282Z > Task :preview-host:generateActualResourceCollectorsForWasmJsMain SKIPPED
2026-09-11T05:55:13.1404347Z > Task :preview-host:generateComposeResClass SKIPPED
2026-09-11T05:55:13.1405346Z > Task :preview-host:generateExpectResourceCollectorsForCommonMain SKIPPED
2026-09-11T05:55:13.8197693Z > Task :preview-host:assembleWasmJsMainResources
2026-09-11T05:55:13.8212223Z > Task :preview-host:wasmJsCopyHierarchicalMultiplatformResources
2026-09-11T05:55:13.8213782Z > Task :preview-host:wasmJsZipMultiplatformResourcesForPublication
2026-09-11T05:55:13.9223445Z > Task :create-preview:wasmJsResolveResourcesFromDependencies
2026-09-11T05:55:13.9279591Z > Task :create-preview:assembleWasmJsMainResources
2026-09-11T05:55:13.9320486Z > Task :create-preview:wasmJsResolveSelfResourcesCopyHierarchicalMultiplatformResources
2026-09-11T05:55:13.9335638Z > Task :create-preview:wasmJsAggregateResources
2026-09-11T05:55:13.9382660Z > Task :create-preview:wasmJsProcessResources
2026-09-11T05:55:14.2182629Z > Task :create-preview:unpackSkikoWasmRuntime
2026-09-11T05:55:14.3221623Z > Task :create-preview:processSkikoRuntimeForKWasm
2026-09-11T05:55:19.9209923Z > Task :preview-host:compileKotlinWasmJs
2026-09-11T05:55:21.8200574Z
2026-09-11T05:55:21.8237899Z e: file:///tmp/composables-preview/create-preview/SubmittedPreview.kt:134:28 Unresolved reference 'x'.
2026-09-11T05:55:21.8239271Z > Task :create-preview:compileKotlinWasmJs FAILED
2026-09-11T05:55:21.8317680Z e: file:///tmp/composables-preview/create-preview/SubmittedPreview.kt:134:31 Unresolved reference 'y'.
2026-09-11T05:55:21.9183535Z gradle/actions: Writing build results to /home/runner/work/_temp/.gradle-actions/build-results/__run_3-1789106071344.json
2026-09-11T05:55:21.9184815Z
2026-09-11T05:55:21.9206940Z FAILURE: Build failed with an exception.
2026-09-11T05:55:21.9207677Z 32 actionable tasks: 32 executed
2026-09-11T05:55:21.9226269Z
2026-09-11T05:55:21.9226910Z * What went wrong:
2026-09-11T05:55:21.9248250Z Execution failed for task ':create-preview:compileKotlinWasmJs'.
2026-09-11T05:55:21.9267339Z > A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
2026-09-11T05:55:21.9286587Z > Compilation error. See log for more details
2026-09-11T05:55:21.9306209Z
2026-09-11T05:55:21.9306781Z * Try:
2026-09-11T05:55:21.9322079Z > Run with --stacktrace option to get the stack trace.
2026-09-11T05:55:21.9346864Z > Run with --info or --debug option to get more log output.
2026-09-11T05:55:21.9348342Z > Run with --scan to get full insights from a Build Scan (powered by Develocity).
2026-09-11T05:55:21.9355425Z > Get more help at https://help.gradle.org.
2026-09-11T05:55:21.9373579Z
2026-09-11T05:55:21.9401731Z BUILD FAILED in 56s
2026-09-11T05:55:22.4657312Z ##[error]Process completed with exit code 1.
2026-09-11T05:55:22.4843891Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-09-11T05:55:22.4845206Z Post job cleanup.
2026-09-11T05:55:22.7778786Z In post-action step
2026-09-11T05:55:22.7792313Z ##[group]Stopping Gradle daemons
2026-09-11T05:55:22.7794079Z Stopping Gradle daemons for /home/runner/.gradle/wrapper/dists/gradle-9.4.1-bin/arn2x92ynaizyzdaamcbpbhtj/gradle-9.4.1
2026-09-11T05:55:22.7812055Z [command]/home/runner/.gradle/wrapper/dists/gradle-9.4.1-bin/arn2x92ynaizyzdaamcbpbhtj/gradle-9.4.1/bin/gradle --stop
2026-09-11T05:55:23.8420240Z Stopping Daemon(s)
2026-09-11T05:55:23.8447407Z 1 Daemon stopped
2026-09-11T05:55:23.8637943Z ##[endgroup]
2026-09-11T05:55:23.8687349Z Not performing cache-cleanup due to build failure
2026-09-11T05:55:23.8711568Z ##[group]Caching Gradle state
2026-09-11T05:55:23.8758200Z Cache hit occurred on the cache key gradle-home-v1|Linux-X64|build[cab32b19fda66fe0c63fec65878a8d0b]-17bf0f266a66032a57468093cebf42e3f42fd077, not saving cache.
2026-09-11T05:55:23.8768165Z ##[endgroup]
2026-09-11T05:55:23.8808913Z Generating Job Summary
2026-09-11T05:55:23.8846884Z Completed post-action step
2026-09-11T05:55:23.9226602Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-09-11T05:55:23.9228858Z Post job cleanup.
2026-09-11T05:55:24.0744317Z (node:2421) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
2026-09-11T05:55:24.0746449Z (Use `node --trace-deprecation ...` to show where the warning was created)
2026-09-11T05:55:24.1022830Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-09-11T05:55:24.1025038Z Post job cleanup.
2026-09-11T05:55:24.2150990Z [command]/usr/bin/git version
2026-09-11T05:55:24.2267128Z git version 2.55.0
2026-09-11T05:55:24.2426863Z Temporarily overriding HOME='/home/runner/work/_temp/c37d9ff8-3d3f-4cf8-a399-2d345e845991' before making global git config changes
2026-09-11T05:55:24.2433054Z Adding repository directory to the temporary git global config as a safe directory
2026-09-11T05:55:24.2470087Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/composables.com/composables.com
2026-09-11T05:55:24.2627057Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-09-11T05:55:24.2759647Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-09-11T05:55:24.3237413Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-09-11T05:55:24.3278710Z http.https://github.com/.extraheader
2026-09-11T05:55:24.3298858Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-09-11T05:55:24.3366870Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2026-09-11T05:55:24.3824166Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-09-11T05:55:24.3897440Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-09-11T05:55:24.4451547Z Cleaning up orphan processes
2026-09-11T05:55:24.4769721Z Terminate orphan process: pid (2329) (java)
2026-09-11T05:55:24.4784564Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-java@v4, actions/setup-node@v4, gradle/actions/setup-gradle@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.patrykandpatrick.vico.compose.cartesian.CartesianChartHost
import com.patrykandpatrick.vico.compose.cartesian.Scroll
import com.patrykandpatrick.vico.compose.cartesian.axis.HorizontalAxis
import com.patrykandpatrick.vico.compose.cartesian.axis.VerticalAxis
import com.patrykandpatrick.vico.compose.cartesian.data.CartesianChartModelProducer
import com.patrykandpatrick.vico.compose.cartesian.data.CartesianLayerRangeProvider
import com.patrykandpatrick.vico.compose.cartesian.data.CartesianValueFormatter
import com.patrykandpatrick.vico.compose.cartesian.data.ColumnCartesianLayerModel
import com.patrykandpatrick.vico.compose.cartesian.data.columnModel
import com.patrykandpatrick.vico.compose.cartesian.layer.ColumnCartesianLayer
import com.patrykandpatrick.vico.compose.cartesian.layer.rememberColumnCartesianLayer
import com.patrykandpatrick.vico.compose.cartesian.marker.DefaultCartesianMarker
import com.patrykandpatrick.vico.compose.cartesian.rememberCartesianChart
import com.patrykandpatrick.vico.compose.cartesian.rememberVicoScrollState
import com.patrykandpatrick.vico.compose.common.Fill
import com.patrykandpatrick.vico.compose.common.component.LineComponent
import com.patrykandpatrick.vico.compose.common.component.rememberLineComponent
import com.patrykandpatrick.vico.compose.common.data.ExtraStore
import kotlin.math.abs
import kotlin.math.ceil
import kotlin.math.max
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.sp
import com.patrykandpatrick.vico.compose.cartesian.axis.rememberAxisGuidelineComponent
import com.patrykandpatrick.vico.compose.cartesian.marker.CartesianMarker
import com.patrykandpatrick.vico.compose.cartesian.marker.rememberDefaultCartesianMarker
import com.patrykandpatrick.vico.compose.common.Insets
import com.patrykandpatrick.vico.compose.common.LayeredComponent
import com.patrykandpatrick.vico.compose.common.MarkerCornerBasedShape
import com.patrykandpatrick.vico.compose.common.component.ShapeComponent
import com.patrykandpatrick.vico.compose.common.component.TextComponent
import com.patrykandpatrick.vico.compose.common.component.rememberShapeComponent
import com.patrykandpatrick.vico.compose.common.component.rememberTextComponent
/*
* Copyright 2026 by Patryk Goworowski and Patrick Michalik.
*
* 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.
*/
private const val RANGE_PROVIDER_BASE = 0.1
private val RangeProvider =
object : CartesianLayerRangeProvider {
override fun getMinY(minY: Double, maxY: Double, extraStore: ExtraStore) =
-RANGE_PROVIDER_BASE * ceil(max(abs(minY), maxY) / RANGE_PROVIDER_BASE)
override fun getMaxY(minY: Double, maxY: Double, extraStore: ExtraStore) =
-getMinY(minY, maxY, extraStore)
}
private val StartAxisValueFormatter = CartesianValueFormatter.decimal(suffix = " °C")
private val MarkerValueFormatter = DefaultCartesianMarker.ValueFormatter.default(suffix = " °C")
private fun getColumnProvider(positive: LineComponent, negative: LineComponent) =
object : ColumnCartesianLayer.ColumnProvider {
override fun getColumn(entry: ColumnCartesianLayerModel.Entry, extraStore: ExtraStore) =
if (entry.y >= 0) positive else negative
override fun getWidestSeriesColumn(seriesKey: Any, seriesIndex: Int, extraStore: ExtraStore) =
positive
}
@Composable
private fun ComposeTemperatureAnomalies(
modelProducer: CartesianChartModelProducer,
modifier: Modifier = Modifier,
) {
val positiveColumn =
rememberLineComponent(
fill = Fill(Color(0xff0ac285)),
thickness = 8.dp,
shape = RoundedCornerShape(topStartPercent = 40, topEndPercent = 40),
)
val negativeColumn =
rememberLineComponent(
fill = Fill(Color(0xffe8304f)),
thickness = 8.dp,
shape = RoundedCornerShape(bottomStartPercent = 40, bottomEndPercent = 40),
)
CartesianChartHost(
chart =
rememberCartesianChart(
rememberColumnCartesianLayer(
columnProvider =
remember(positiveColumn, negativeColumn) {
getColumnProvider(positiveColumn, negativeColumn)
},
columnCollectionSpacing = 4.dp,
rangeProvider = RangeProvider,
),
startAxis = VerticalAxis.rememberStart(valueFormatter = StartAxisValueFormatter),
bottomAxis = HorizontalAxis.rememberBottom(labelRotationDegrees = 45f),
marker = rememberMarker(MarkerValueFormatter),
),
modelProducer = modelProducer,
modifier = modifier,
scrollState = rememberVicoScrollState(initialScroll = Scroll.Absolute.End),
)
}
@Composable
fun ComposeTemperatureAnomalies(modifier: Modifier = Modifier) {
val modelProducer = remember { CartesianChartModelProducer() }
LaunchedEffect(Unit) {
modelProducer.runTransaction {
// Learn more: https://patrykandpatrick.com/3aqy4o.
columnModel { series(x, y) }
}
}
ComposeTemperatureAnomalies(modelProducer, modifier)
}
/*
* Copyright 2026 by Patryk Goworowski and Patrick Michalik.
*
* 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.
*/
internal val LocalMarkersEnabled = staticCompositionLocalOf { true }
@Composable
internal fun rememberMarker(
valueFormatter: DefaultCartesianMarker.ValueFormatter =
DefaultCartesianMarker.ValueFormatter.default(),
showIndicator: Boolean = true,
): CartesianMarker? {
if (!LocalMarkersEnabled.current) return null
val labelBackgroundShape = MarkerCornerBasedShape(CircleShape)
val labelBackground =
rememberShapeComponent(
fill = Fill(MaterialTheme.colorScheme.background),
shape = labelBackgroundShape,
strokeFill = Fill(MaterialTheme.colorScheme.outline),
strokeThickness = 1.dp,
)
val label =
rememberTextComponent(
style =
TextStyle(
color = MaterialTheme.colorScheme.onSurface,
textAlign = TextAlign.Center,
fontSize = 12.sp,
),
padding = Insets(8.dp, 4.dp),
background = labelBackground,
minWidth = TextComponent.MinWidth.fixed(40.dp),
)
val indicatorFrontComponent =
rememberShapeComponent(Fill(MaterialTheme.colorScheme.surface), CircleShape)
val guideline = rememberAxisGuidelineComponent()
return rememberDefaultCartesianMarker(
label = label,
valueFormatter = valueFormatter,
indicator =
if (showIndicator) {
{ color ->
LayeredComponent(
back = ShapeComponent(Fill(color.copy(alpha = 0.15f)), CircleShape),
front =
LayeredComponent(
back = ShapeComponent(fill = Fill(color), shape = CircleShape),
front = indicatorFrontComponent,
padding = Insets(5.dp),
),
padding = Insets(10.dp),
)
}
} else {
null
},
indicatorSize = 36.dp,
guideline = guideline,
)
}
@Preview(name = "Vico temperature anomalies")
@Composable
fun CommunityComposeTemperatureAnomaliesPreview() {
ComposeTemperatureAnomalies()
}
build.gradle.kts
dependencies {
implementation("com.patrykandpatrick.vico:compose:3.3.1")
implementation("org.jetbrains.compose.runtime:runtime:1.12.0")
implementation("org.jetbrains.compose.foundation:foundation:1.12.0")
implementation("org.jetbrains.compose.ui:ui:1.12.0")
implementation("org.jetbrains.compose.material3:material3:1.9.0")
}