Vico gold prices

Preview unavailable

Your component is published, but its preview could not be generated.

…
ltcG9ydCBhbmRyb2lkeC5jb21wb3NlLnVpLnRleHQuc3R5bGUuVGV4dEFsaWduCmltcG9ydCBhbmRyb2lkeC5jb21wb3NlLnVpLnVuaXQuZHAKaW1wb3J0IGFuZHJvaWR4LmNvbXBvc2UudWkudW5pdC5zcAppbXBvcnQgY29tLnBhdHJ5a2FuZHBhdHJpY2sudmljby5jb21wb3NlLmNhcnRlc2lhbi5heGlzLnJlbWVtYmVyQXhpc0d1aWRlbGluZUNvbXBvbmVudAppbXBvcnQgY29tLnBhdHJ5a2FuZHBhdHJpY2sudmljby5jb21wb3NlLmNhcnRlc2lhbi5tYXJrZXIuQ2FydGVzaWFuTWFya2VyCmltcG9ydCBjb20ucGF0cnlrYW5kcGF0cmljay52aWNvLmNvbXBvc2UuY2FydGVzaWFuLm1hcmtlci5yZW1lbWJlckRlZmF1bHRDYXJ0ZXNpYW5NYXJrZXIKaW1wb3J0IGNvbS5wYXRyeWthbmRwYXRyaWNrLnZpY28uY29tcG9zZS5jb21tb24uRmlsbAppbXBvcnQgY29tLnBhdHJ5a2FuZHBhdHJpY2sudmljby5jb21wb3NlLmNvbW1vbi5JbnNldHMKaW1wb3J0IGNvbS5wYXRyeWthbmRwYXRyaWNrLnZpY28uY29tcG9zZS5jb21tb24uTGF5ZXJlZENvbXBvbmVudAppbXBvcnQgY29tLnBhdHJ5a2FuZHBhdHJpY2sudmljby5jb21wb3NlLmNvbW1vbi5NYXJrZXJDb3JuZXJCYXNlZFNoYXBlCmltcG9ydCBjb20ucGF0cnlrYW5kcGF0cmljay52aWNvLmNvbXBvc2UuY29tbW9uLmNvbXBvbmVudC5TaGFwZUNvbXBvbmVudAppbXBvcnQgY29tLnBhdHJ5a2FuZHBhdHJpY2sudmljby5jb21wb3NlLmNvbW1vbi5jb21wb25lbnQuVGV4dENvbXBvbmVudAppbXBvcnQgY29tLnBhdHJ5a2FuZHBhdHJpY2sudmljby5jb21wb3NlLmNvbW1vbi5jb21wb25lbnQucmVtZW1iZXJTaGFwZUNvbXBvbmVudAppbXBvcnQgY29tLnBhdHJ5a2FuZHBhdHJpY2sudmljby5jb21wb3NlLmNvbW1vbi5jb21wb25lbnQucmVtZW1iZXJUZXh0Q29tcG9uZW50CgovKgogKiBDb3B5cmlnaHQgMjAyNiBieSBQYXRyeWsgR293b3Jvd3NraSBhbmQgUGF0cmljayBNaWNoYWxpay4KICoKICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAqCiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICoKICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KICovCgoKCnByaXZhdGUgY29uc3QgdmFsIFlfU1RFUCA9IDEwLjAKCnByaXZhdGUgdmFsIFJhbmdlUHJvdmlkZXIgPQogIG9iamVjdCA6IENhcnRlc2lhbkxheWVyUmFuZ2VQcm92aWRlciB7CiAgICBvdmVycmlkZSBmdW4gZ2V0TWluWShtaW5ZOiBEb3VibGUsIG1heFk6IERvdWJsZSwgZXh0cmFTdG9yZTogRXh0cmFTdG9yZSkgPQogICAgICBZX1NURVAgKiBmbG9vcihtaW5ZIC8gWV9TVEVQKQoKICAgIG92ZXJyaWRlIGZ1biBnZXRNYXhZKG1pblk6IERvdWJsZSwgbWF4WTogRG91YmxlLCBleHRyYVN0b3JlOiBFeHRyYVN0b3JlKSA9CiAgICAgIFlfU1RFUCAqIGNlaWwobWF4WSAvIFlfU1RFUCkKICB9Cgpwcml2YXRlIHZhbCBTdGFydEF4aXNWYWx1ZUZvcm1hdHRlciA9CiAgQ2FydGVzaWFuVmFsdWVGb3JtYXR0ZXIuZGVjaW1hbCh0aG91c2FuZHNTZXBhcmF0b3IgPSAiLCIsIHByZWZpeCA9ICIkIikKCnByaXZhdGUgdmFsIFN0YXJ0QXhpc0l0ZW1QbGFjZXIgPSBWZXJ0aWNhbEF4aXMuSXRlbVBsYWNlci5zdGVwKHsgWV9TVEVQIH0pCgpwcml2YXRlIHZhbCBCb3R0b21BeGlzVmFsdWVGb3JtYXR0ZXIgPQogIG9iamVjdCA6IENhcnRlc2lhblZhbHVlRm9ybWF0dGVyIHsKICAgIHByaXZhdGUgdmFsIGRhdGVUaW1lRm9ybWF0ID0gTG9jYWxUaW1lLkZvcm1hdCB7CiAgICAgIGFtUG1Ib3VyKFBhZGRpbmcuU1BBQ0UpCiAgICAgIGFtUG1NYXJrZXIoIiBBTSIsICIgUE0iKQogICAgfQoKICAgIG92ZXJyaWRlIGZ1biBmb3JtYXQoCiAgICAgIGNvbnRleHQ6IENhcnRlc2lhbk1lYXN1cmluZ0NvbnRleHQsCiAgICAgIHZhbHVlOiBEb3VibGUsCiAgICAgIHZlcnRpY2FsQXhpc1Bvc2l0aW9uOiBBeGlzLlBvc2l0aW9uLlZlcnRpY2FsPywKICAgICkgPSBkYXRlVGltZUZvcm1hdC5mb3JtYXQoTG9jYWxUaW1lKHZhbHVlLnRvSW50KCksIDApKQogIH0KCnByaXZhdGUgdmFsIE1hcmtlclZhbHVlRm9ybWF0dGVyID0gRGVmYXVsdENhcnRlc2lhbk1hcmtlci5WYWx1ZUZvcm1hdHRlci5kZWZhdWx0KHByZWZpeCA9ICIkIikKCkBDb21wb3NhYmxlCnByaXZhdGUgZnVuIENvbXBvc2VHb2xkUHJpY2VzKAogIG1vZGVsUHJvZHVjZXI6IENhcnRlc2lhbkNoYXJ0TW9kZWxQcm9kdWNlciwKICBtb2RpZmllcjogTW9kaWZpZXIgPSBNb2RpZmllciwKKSB7CiAgQ2FydGVzaWFuQ2hhcnRIb3N0KAogICAgcmVtZW1iZXJDYXJ0ZXNpYW5DaGFydCgKICAgICAgcmVtZW1iZXJDYW5kbGVzdGlja0NhcnRlc2lhbkxheWVyKHJhbmdlUHJvdmlkZXIgPSBSYW5nZVByb3ZpZGVyKSwKICAgICAgc3RhcnRBeGlzID0KICAgICAgICBWZXJ0aWNhbEF4aXMucmVtZW1iZXJTdGFydCgKICAgICAgICAgIHZhbHVlRm9ybWF0dGVyID0gU3RhcnRBeGlzVmFsdWVGb3JtYXR0ZXIsCiAgICAgICAgICBpdGVtUGxhY2VyID0gU3RhcnRBeGlzSXRlbVBsYWNlciwKICAgICAgICApLAogICAgICBib3R0b21BeGlzID0KICAgICAgICBIb3Jpem9udGFsQXhpcy5yZW1lbWJlckJvdHRvbShndWlkZWxpbmUgPSBudWxsLCB2YWx1ZUZvcm1hdHRlciA9IEJvdHRvbUF4aXNWYWx1ZUZvcm1hdHRlciksCiAgICAgIG1hcmtlciA9IHJlbWVtYmVyTWFya2VyKHZhbHVlRm9ybWF0dGVyID0gTWFya2VyVmFsdWVGb3JtYXR0ZXIsIHNob3dJbmRpY2F0b3IgPSBmYWxzZSksCiAgICApLAogICAgbW9kZWxQcm9kdWNlciwKICAgIG1vZGlmaWVyLAogICkKfQoKQENvbXBvc2FibGUKZnVuIENvbXBvc2VHb2xkUHJpY2VzKG1vZGlmaWVyOiBNb2RpZmllciA9IE1vZGlmaWVyKSB7CiAgdmFsIG1vZGVsUHJvZHVjZXIgPSByZW1lbWJlciB7IENhcnRlc2lhbkNoYXJ0TW9kZWxQcm9kdWNlcigpIH0KICBMYXVuY2hlZEVmZmVjdChVbml0KSB7CiAgICBtb2RlbFByb2R1Y2VyLnJ1blRyYW5zYWN0aW9uIHsKICAgICAgLy8gTGVhcm4gbW9yZTogaHR0cHM6Ly9wYXRyeWthbmRwYXRyaWNrLmNvbS9yOGQyMHYuCiAgICAgIGNhbmRsZXN0aWNrTW9kZWwoeCwgb3BlbmluZywgY2xvc2luZywgbG93LCBoaWdoKQogICAgfQogIH0KICBDb21wb3NlR29sZFByaWNlcyhtb2RlbFByb2R1Y2VyLCBtb2RpZmllcikKfQoKLyoKICogQ29weXJpZ2h0IDIwMjYgYnkgUGF0cnlrIEdvd29yb3dza2kgYW5kIFBhdHJpY2sgTWljaGFsaWsuCiAqCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogKgogKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAqCiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCiAqLwoKCgppbnRlcm5hbCB2YWwgTG9jYWxNYXJrZXJzRW5hYmxlZCA9IHN0YXRpY0NvbXBvc2l0aW9uTG9jYWxPZiB7IHRydWUgfQoKQENvbXBvc2FibGUKaW50ZXJuYWwgZnVuIHJlbWVtYmVyTWFya2VyKAogIHZhbHVlRm9ybWF0dGVyOiBEZWZhdWx0Q2FydGVzaWFuTWFya2VyLlZhbHVlRm9ybWF0dGVyID0KICAgIERlZmF1bHRDYXJ0ZXNpYW5NYXJrZXIuVmFsdWVGb3JtYXR0ZXIuZGVmYXVsdCgpLAogIHNob3dJbmRpY2F0b3I6IEJvb2xlYW4gPSB0cnVlLAopOiBDYXJ0ZXNpYW5NYXJrZXI/IHsKICBpZiAoIUxvY2FsTWFya2Vyc0VuYWJsZWQuY3VycmVudCkgcmV0dXJuIG51bGwKICB2YWwgbGFiZWxCYWNrZ3JvdW5kU2hhcGUgPSBNYXJrZXJDb3JuZXJCYXNlZFNoYXBlKENpcmNsZVNoYXBlKQogIHZhbCBsYWJlbEJhY2tncm91bmQgPQogICAgcmVtZW1iZXJTaGFwZUNvbXBvbmVudCgKICAgICAgZmlsbCA9IEZpbGwoTWF0ZXJpYWxUaGVtZS5jb2xvclNjaGVtZS5iYWNrZ3JvdW5kKSwKICAgICAgc2hhcGUgPSBsYWJlbEJhY2tncm91bmRTaGFwZSwKICAgICAgc3Ryb2tlRmlsbCA9IEZpbGwoTWF0ZXJpYWxUaGVtZS5jb2xvclNjaGVtZS5vdXRsaW5lKSwKICAgICAgc3Ryb2tlVGhpY2tuZXNzID0gMS5kcCwKICAgICkKICB2YWwgbGFiZWwgPQogICAgcmVtZW1iZXJUZXh0Q29tcG9uZW50KAogICAgICBzdHlsZSA9CiAgICAgICAgVGV4dFN0eWxlKAogICAgICAgICAgY29sb3IgPSBNYXRlcmlhbFRoZW1lLmNvbG9yU2NoZW1lLm9uU3VyZmFjZSwKICAgICAgICAgIHRleHRBbGlnbiA9IFRleHRBbGlnbi5DZW50ZXIsCiAgICAgICAgICBmb250U2l6ZSA9IDEyLnNwLAogICAgICAgICksCiAgICAgIHBhZGRpbmcgPSBJbnNldHMoOC5kcCwgNC5kcCksCiAgICAgIGJhY2tncm91bmQgPSBsYWJlbEJhY2tncm91bmQsCiAgICAgIG1pbldpZHRoID0gVGV4dENvbXBvbmVudC5NaW5XaWR0aC5maXhlZCg0MC5kcCksCiAgICApCiAgdmFsIGluZGljYXRvckZyb250Q29tcG9uZW50ID0KICAgIHJlbWVtYmVyU2hhcGVDb21wb25lbnQoRmlsbChNYXRlcmlhbFRoZW1lLmNvbG9yU2NoZW1lLnN1cmZhY2UpLCBDaXJjbGVTaGFwZSkKICB2YWwgZ3VpZGVsaW5lID0gcmVtZW1iZXJBeGlzR3VpZGVsaW5lQ29tcG9uZW50KCkKICByZXR1cm4gcmVtZW1iZXJEZWZhdWx0Q2FydGVzaWFuTWFya2VyKAogICAgbGFiZWwgPSBsYWJlbCwKICAgIHZhbHVlRm9ybWF0dGVyID0gdmFsdWVGb3JtYXR0ZXIsCiAgICBpbmRpY2F0b3IgPQogICAgICBpZiAoc2hvd0luZGljYXRvcikgewogICAgICAgIHsgY29sb3IgLT4KICAgICAgICAgIExheWVyZWRDb21wb25lbnQoCiAgICAgICAgICAgIGJhY2sgPSBTaGFwZUNvbXBvbmVudChGaWxsKGNvbG9yLmNvcHkoYWxwaGEgPSAwLjE1ZikpLCBDaXJjbGVTaGFwZSksCiAgICAgICAgICAgIGZyb250ID0KICAgICAgICAgICAgICBMYXllcmVkQ29tcG9uZW50KAogICAgICAgICAgICAgICAgYmFjayA9IFNoYXBlQ29tcG9uZW50KGZpbGwgPSBGaWxsKGNvbG9yKSwgc2hhcGUgPSBDaXJjbGVTaGFwZSksCiAgICAgICAgICAgICAgICBmcm9udCA9IGluZGljYXRvckZyb250Q29tcG9uZW50LAogICAgICAgICAgICAgICAgcGFkZGluZyA9IEluc2V0cyg1LmRwKSwKICAgICAgICAgICAgICApLAogICAgICAgICAgICBwYWRkaW5nID0gSW5zZXRzKDEwLmRwKSwKICAgICAgICAgICkKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbnVsbAogICAgICB9LAogICAgaW5kaWNhdG9yU2l6ZSA9IDM2LmRwLAogICAgZ3VpZGVsaW5lID0gZ3VpZGVsaW5lLAogICkKfQoKQFByZXZpZXcobmFtZSA9ICJWaWNvIGdvbGQgcHJpY2VzIikKQENvbXBvc2FibGUKZnVuIENvbW11bml0eUNvbXBvc2VHb2xkUHJpY2VzUHJldmlldygpIHsKICAgIENvbXBvc2VHb2xkUHJpY2VzKCkKfQ==
2026-09-11T05:52:27.0729814Z   DEPENDENCIES_BASE64: Y29tLnBhdHJ5a2FuZHBhdHJpY2sudmljbzpjb21wb3NlOjMuMy4xCm9yZy5qZXRicmFpbnMuY29tcG9zZS5ydW50aW1lOnJ1bnRpbWU6MS4xMi4wCm9yZy5qZXRicmFpbnMuY29tcG9zZS5mb3VuZGF0aW9uOmZvdW5kYXRpb246MS4xMi4wCm9yZy5qZXRicmFpbnMuY29tcG9zZS51aTp1aToxLjEyLjAKb3JnLmpldGJyYWlucy5jb21wb3NlLm1hdGVyaWFsMzptYXRlcmlhbDM6MS45LjAKb3JnLmpldGJyYWlucy5rb3RsaW54OmtvdGxpbngtZGF0ZXRpbWU6MC44LjAtMC42LngtY29tcGF0
2026-09-11T05:52:27.0732043Z ##[endgroup]
2026-09-11T05:52:27.5753991Z {"entryPoint":"CommunityComposeGoldPricesPreview","title":"Vico gold prices"}
2026-09-11T05:52:27.5878129Z ##[group]Run ./gradlew -p preview-builder :create-preview:wasmJsBrowserDevelopmentExecutableDistribution --console=plain --warning-mode=none -Pkotlin.js.yarn.lock.mismatch.report=warning
2026-09-11T05:52:27.5880157Z ./gradlew -p preview-builder :create-preview:wasmJsBrowserDevelopmentExecutableDistribution --console=plain --warning-mode=none -Pkotlin.js.yarn.lock.mismatch.report=warning
2026-09-11T05:52:27.5924124Z shell: /usr/bin/bash -e {0}
2026-09-11T05:52:27.5924407Z env:
2026-09-11T05:52:27.5924649Z   APP_TMP_DIR: /tmp/composables-preview
2026-09-11T05:52:27.5924983Z   GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx4g
2026-09-11T05:52:27.5925297Z   R2_BUCKET: composables-static
2026-09-11T05:52:27.5925582Z   R2_PREFIX: community/review-previews
2026-09-11T05:52:27.5925963Z   JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.12-1/x64
2026-09-11T05:52:27.5926408Z   JAVA_HOME_21_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/21.0.12-1/x64
2026-09-11T05:52:27.5926847Z   GRADLE_ACTION_ID: gradle/actions/setup-gradle
2026-09-11T05:52:27.5927165Z   GRADLE_USER_HOME: /home/runner/.gradle
2026-09-11T05:52:27.5927457Z   GRADLE_BUILD_ACTION_SETUP_COMPLETED: true
2026-09-11T05:52:27.5927760Z   GRADLE_BUILD_ACTION_CACHE_RESTORED: true
2026-09-11T05:52:27.5928374Z   DEVELOCITY_INJECTION_INIT_SCRIPT_NAME: gradle-actions.inject-develocity.init.gradle
2026-09-11T05:52:27.5928824Z   DEVELOCITY_INJECTION_CUSTOM_VALUE: gradle-actions
2026-09-11T05:52:27.5929131Z   GITHUB_DEPENDENCY_GRAPH_ENABLED: false
2026-09-11T05:52:27.5929410Z ##[endgroup]
2026-09-11T05:52:29.7451210Z Starting a Gradle Daemon (subsequent builds will be faster)
2026-09-11T05:52:43.8660180Z > Task :kotlinWasmKotlinNpmCachesSetup
2026-09-11T05:52:46.8447727Z > Task :kotlinWasmNodeJsSetup
2026-09-11T05:52:46.8478745Z > Task :kotlinWasmRestoreYarnLock
2026-09-11T05:52:46.9447643Z > Task :kotlinWasmYarnSetup
2026-09-11T05:52:47.8479297Z > Task :preview-host:wasmJsPackageJson
2026-09-11T05:52:48.1472818Z > Task :create-preview:wasmJsPackageJson
2026-09-11T05:52:48.1473597Z > Task :create-preview:wasmJsTestPackageJson
2026-09-11T05:52:48.1499654Z > Task :preview-host:wasmJsTestPackageJson
2026-09-11T05:52:48.1528548Z > Task :create-preview:wasmJsPublicPackageJson
2026-09-11T05:52:48.1548662Z > Task :create-preview:wasmJsTestPublicPackageJson
2026-09-11T05:52:48.1564299Z > Task :preview-host:wasmJsPublicPackageJson
2026-09-11T05:52:48.1565238Z > Task :preview-host:wasmJsTestPublicPackageJson
2026-09-11T05:52:48.1566083Z > Task :kotlinWasmPackageJsonUmbrella
2026-09-11T05:52:48.2446737Z > Task :wasmRootPackageJson
2026-09-11T05:52:48.9476667Z (node:2199) [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:52:48.9478402Z 
2026-09-11T05:52:48.9478969Z (Use `node --trace-deprecation ...` to show where the warning was created)
2026-09-11T05:52:48.9501040Z > Task :kotlinWasmNpmInstall
2026-09-11T05:52:48.9518821Z warning Ignored scripts due to flag.
2026-09-11T05:52:48.9519152Z 
2026-09-11T05:52:48.9538421Z > Task :kotlinWasmStoreYarnLock
2026-09-11T05:52:48.9545210Z Lock file was changed. Run the `kotlinWasmUpgradeYarnLock` task to actualize lock file
2026-09-11T05:52:50.9444586Z 
2026-09-11T05:52:50.9445675Z > Task :kotlinWasmToolingSetup
2026-09-11T05:52:50.9448074Z (node:2214) [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:52:50.9449652Z (Use `node --trace-deprecation ...` to show where the warning was created)
2026-09-11T05:53:05.7452748Z warning "webpack-dev-server > webpack-dev-middleware > [email protected]" has unmet peer dependency "tslib@2".
2026-09-11T05:53:10.0452580Z warning Ignored scripts due to flag.
2026-09-11T05:53:11.5474888Z 
2026-09-11T05:53:11.5519927Z > Task :create-preview:kmpPartiallyResolvedDependenciesChecker
2026-09-11T05:53:11.5558743Z > Task :create-preview:checkKotlinGradlePluginConfigurationErrors SKIPPED
2026-09-11T05:53:11.6469611Z > Task :create-preview:checkWasmJsMainComposeLibrariesCompatibility
2026-09-11T05:53:11.6470546Z > Task :create-preview:convertXmlValueResourcesForCommonMain NO-SOURCE
2026-09-11T05:53:11.6471330Z > Task :create-preview:copyNonXmlValueResourcesForCommonMain NO-SOURCE
2026-09-11T05:53:11.6472083Z > Task :create-preview:prepareComposeResourcesTaskForCommonMain NO-SOURCE
2026-09-11T05:53:11.6472860Z > Task :create-preview:generateResourceAccessorsForCommonMain SKIPPED
2026-09-11T05:53:11.6493248Z > Task :create-preview:convertXmlValueResourcesForWasmJsMain NO-SOURCE
2026-09-11T05:53:11.6506597Z > Task :create-preview:copyNonXmlValueResourcesForWasmJsMain NO-SOURCE
2026-09-11T05:53:11.6507647Z > Task :create-preview:prepareComposeResourcesTaskForWasmJsMain NO-SOURCE
2026-09-11T05:53:11.6540303Z > Task :create-preview:generateResourceAccessorsForWasmJsMain SKIPPED
2026-09-11T05:53:11.6560050Z > Task :create-preview:convertXmlValueResourcesForWebMain NO-SOURCE
2026-09-11T05:53:11.6560962Z > Task :create-preview:copyNonXmlValueResourcesForWebMain NO-SOURCE
2026-09-11T05:53:11.6561957Z > Task :create-preview:prepareComposeResourcesTaskForWebMain NO-SOURCE
2026-09-11T05:53:11.6571915Z > Task :create-preview:generateResourceAccessorsForWebMain SKIPPED
2026-09-11T05:53:11.6572951Z > Task :create-preview:generateActualResourceCollectorsForWasmJsMain SKIPPED
2026-09-11T05:53:11.6573814Z > Task :create-preview:generateComposeResClass SKIPPED
2026-09-11T05:53:11.6574683Z > Task :create-preview:generateExpectResourceCollectorsForCommonMain SKIPPED
2026-09-11T05:53:11.6575602Z > Task :preview-host:kmpPartiallyResolvedDependenciesChecker
2026-09-11T05:53:11.6576462Z > Task :preview-host:checkKotlinGradlePluginConfigurationErrors SKIPPED
2026-09-11T05:53:11.7469457Z > Task :preview-host:checkWasmJsMainComposeLibrariesCompatibility
2026-09-11T05:53:11.7509829Z > Task :preview-host:convertXmlValueResourcesForCommonMain NO-SOURCE
2026-09-11T05:53:11.7568951Z > Task :preview-host:copyNonXmlValueResourcesForCommonMain NO-SOURCE
2026-09-11T05:53:11.7581056Z > Task :preview-host:prepareComposeResourcesTaskForCommonMain NO-SOURCE
2026-09-11T05:53:11.7598641Z > Task :preview-host:generateResourceAccessorsForCommonMain SKIPPED
2026-09-11T05:53:11.7608686Z > Task :preview-host:convertXmlValueResourcesForWasmJsMain NO-SOURCE
2026-09-11T05:53:11.7633485Z > Task :preview-host:copyNonXmlValueResourcesForWasmJsMain NO-SOURCE
2026-09-11T05:53:11.7648773Z > Task :preview-host:prepareComposeResourcesTaskForWasmJsMain NO-SOURCE
2026-09-11T05:53:11.7658734Z > Task :preview-host:generateResourceAccessorsForWasmJsMain SKIPPED
2026-09-11T05:53:11.7678702Z > Task :preview-host:convertXmlValueResourcesForWebMain NO-SOURCE
2026-09-11T05:53:11.7694231Z > Task :preview-host:copyNonXmlValueResourcesForWebMain NO-SOURCE
2026-09-11T05:53:11.7708764Z > Task :preview-host:prepareComposeResourcesTaskForWebMain NO-SOURCE
2026-09-11T05:53:11.7718613Z > Task :preview-host:generateResourceAccessorsForWebMain SKIPPED
2026-09-11T05:53:11.7738701Z > Task :preview-host:generateActualResourceCollectorsForWasmJsMain SKIPPED
2026-09-11T05:53:11.7758535Z > Task :preview-host:generateComposeResClass SKIPPED
2026-09-11T05:53:11.7778630Z > Task :preview-host:generateExpectResourceCollectorsForCommonMain SKIPPED
2026-09-11T05:53:12.3448473Z > Task :preview-host:assembleWasmJsMainResources
2026-09-11T05:53:12.3458753Z > Task :preview-host:wasmJsCopyHierarchicalMultiplatformResources
2026-09-11T05:53:12.3538625Z > Task :preview-host:wasmJsZipMultiplatformResourcesForPublication
2026-09-11T05:53:12.3539595Z > Task :create-preview:wasmJsResolveResourcesFromDependencies
2026-09-11T05:53:12.3598740Z > Task :create-preview:assembleWasmJsMainResources
2026-09-11T05:53:12.3624421Z > Task :create-preview:wasmJsResolveSelfResourcesCopyHierarchicalMultiplatformResources
2026-09-11T05:53:12.3679318Z > Task :create-preview:wasmJsAggregateResources
2026-09-11T05:53:12.3749137Z > Task :create-preview:wasmJsProcessResources
2026-09-11T05:53:12.5445520Z > Task :create-preview:unpackSkikoWasmRuntime
2026-09-11T05:53:12.6450170Z > Task :create-preview:processSkikoRuntimeForKWasm
2026-09-11T05:53:17.2445946Z > Task :preview-host:compileKotlinWasmJs
2026-09-11T05:53:18.4469795Z e: file:///tmp/composables-preview/create-preview/SubmittedPreview.kt:121:24 Unresolved reference 'x'.
2026-09-11T05:53:18.4470533Z 
2026-09-11T05:53:18.4475002Z e: file:///tmp/composables-preview/create-preview/SubmittedPreview.kt:121:27 Unresolved reference 'opening'.
2026-09-11T05:53:18.4476041Z > Task :create-preview:compileKotlinWasmJs FAILED
2026-09-11T05:53:18.4482098Z e: file:///tmp/composables-preview/create-preview/SubmittedPreview.kt:121:36 Unresolved reference 'closing'.
2026-09-11T05:53:18.4499115Z e: file:///tmp/composables-preview/create-preview/SubmittedPreview.kt:121:45 Unresolved reference 'low'.
2026-09-11T05:53:18.4519151Z e: file:///tmp/composables-preview/create-preview/SubmittedPreview.kt:121:50 Unresolved reference 'high'.
2026-09-11T05:53:18.5483160Z 
2026-09-11T05:53:18.5484513Z gradle/actions: Writing build results to /home/runner/work/_temp/.gradle-actions/build-results/__run_3-1789105954762.json
2026-09-11T05:53:18.5528559Z FAILURE: Build failed with an exception.
2026-09-11T05:53:18.5529150Z 32 actionable tasks: 32 executed
2026-09-11T05:53:18.5558053Z 
2026-09-11T05:53:18.5561143Z * What went wrong:
2026-09-11T05:53:18.5568624Z Execution failed for task ':create-preview:compileKotlinWasmJs'.
2026-09-11T05:53:18.5584728Z > A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
2026-09-11T05:53:18.5586065Z    > Compilation error. See log for more details
2026-09-11T05:53:18.5586565Z 
2026-09-11T05:53:18.5586823Z * Try:
2026-09-11T05:53:18.5590410Z > Run with --stacktrace option to get the stack trace.
2026-09-11T05:53:18.5591325Z > Run with --info or --debug option to get more log output.
2026-09-11T05:53:18.5592310Z > Run with --scan to get full insights from a Build Scan (powered by Develocity).
2026-09-11T05:53:18.5593197Z > Get more help at https://help.gradle.org.
2026-09-11T05:53:18.5593659Z 
2026-09-11T05:53:18.5593974Z BUILD FAILED in 50s
2026-09-11T05:53:18.9838762Z ##[error]Process completed with exit code 1.
2026-09-11T05:53:18.9986580Z 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:53:18.9988020Z Post job cleanup.
2026-09-11T05:53:19.1924542Z In post-action step
2026-09-11T05:53:19.1935460Z ##[group]Stopping Gradle daemons
2026-09-11T05:53:19.1936802Z Stopping Gradle daemons for /home/runner/.gradle/wrapper/dists/gradle-9.4.1-bin/arn2x92ynaizyzdaamcbpbhtj/gradle-9.4.1
2026-09-11T05:53:19.1951392Z [command]/home/runner/.gradle/wrapper/dists/gradle-9.4.1-bin/arn2x92ynaizyzdaamcbpbhtj/gradle-9.4.1/bin/gradle --stop
2026-09-11T05:53:19.9463267Z Stopping Daemon(s)
2026-09-11T05:53:19.9488930Z 1 Daemon stopped
2026-09-11T05:53:19.9969334Z ##[endgroup]
2026-09-11T05:53:19.9978887Z Not performing cache-cleanup due to build failure
2026-09-11T05:53:19.9980084Z ##[group]Caching Gradle state
2026-09-11T05:53:19.9981596Z Cache hit occurred on the cache key gradle-home-v1|Linux-X64|build[cab32b19fda66fe0c63fec65878a8d0b]-17bf0f266a66032a57468093cebf42e3f42fd077, not saving cache.
2026-09-11T05:53:19.9983048Z ##[endgroup]
2026-09-11T05:53:19.9985400Z Generating Job Summary
2026-09-11T05:53:20.0023083Z Completed post-action step
2026-09-11T05:53:20.0247352Z 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:53:20.0248573Z Post job cleanup.
2026-09-11T05:53:20.1376321Z (node:2322) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
2026-09-11T05:53:20.1377951Z (Use `node --trace-deprecation ...` to show where the warning was created)
2026-09-11T05:53:20.1620086Z 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:53:20.1621815Z Post job cleanup.
2026-09-11T05:53:20.2558894Z [command]/usr/bin/git version
2026-09-11T05:53:20.2609709Z git version 2.55.0
2026-09-11T05:53:20.2663339Z Temporarily overriding HOME='/home/runner/work/_temp/b6c5dca0-9ff6-4a72-84d5-ee5f1bdfe731' before making global git config changes
2026-09-11T05:53:20.2664715Z Adding repository directory to the temporary git global config as a safe directory
2026-09-11T05:53:20.2665989Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/composables.com/composables.com
2026-09-11T05:53:20.2710058Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-09-11T05:53:20.2769843Z [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:53:20.3071772Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-09-11T05:53:20.3108675Z http.https://github.com/.extraheader
2026-09-11T05:53:20.3118817Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-09-11T05:53:20.3159771Z [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:53:20.3862655Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-09-11T05:53:20.3974422Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-09-11T05:53:20.4493481Z Cleaning up orphan processes
2026-09-11T05:53:20.4738316Z Terminate orphan process: pid (2232) (java)
2026-09-11T05:53:20.4750520Z ##[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/
CommunityComposeGoldPricesPreview.kt
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.patrykandpatrick.vico.compose.cartesian.CartesianChartHost
import com.patrykandpatrick.vico.compose.cartesian.CartesianMeasuringContext
import com.patrykandpatrick.vico.compose.cartesian.axis.Axis
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.candlestickModel
import com.patrykandpatrick.vico.compose.cartesian.layer.rememberCandlestickCartesianLayer
import com.patrykandpatrick.vico.compose.cartesian.marker.DefaultCartesianMarker
import com.patrykandpatrick.vico.compose.cartesian.rememberCartesianChart
import com.patrykandpatrick.vico.compose.common.data.ExtraStore
import kotlin.math.ceil
import kotlin.math.floor
import kotlinx.datetime.LocalTime
import kotlinx.datetime.format.Padding
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.dp
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.Fill
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 Y_STEP = 10.0

private val RangeProvider =
  object : CartesianLayerRangeProvider {
    override fun getMinY(minY: Double, maxY: Double, extraStore: ExtraStore) =
      Y_STEP * floor(minY / Y_STEP)

    override fun getMaxY(minY: Double, maxY: Double, extraStore: ExtraStore) =
      Y_STEP * ceil(maxY / Y_STEP)
  }

private val StartAxisValueFormatter =
  CartesianValueFormatter.decimal(thousandsSeparator = ",", prefix = "$")

private val StartAxisItemPlacer = VerticalAxis.ItemPlacer.step({ Y_STEP })

private val BottomAxisValueFormatter =
  object : CartesianValueFormatter {
    private val dateTimeFormat = LocalTime.Format {
      amPmHour(Padding.SPACE)
      amPmMarker(" AM", " PM")
    }

    override fun format(
      context: CartesianMeasuringContext,
      value: Double,
      verticalAxisPosition: Axis.Position.Vertical?,
    ) = dateTimeFormat.format(LocalTime(value.toInt(), 0))
  }

private val MarkerValueFormatter = DefaultCartesianMarker.ValueFormatter.default(prefix = "$")

@Composable
private fun ComposeGoldPrices(
  modelProducer: CartesianChartModelProducer,
  modifier: Modifier = Modifier,
) {
  CartesianChartHost(
    rememberCartesianChart(
      rememberCandlestickCartesianLayer(rangeProvider = RangeProvider),
      startAxis =
        VerticalAxis.rememberStart(
          valueFormatter = StartAxisValueFormatter,
          itemPlacer = StartAxisItemPlacer,
        ),
      bottomAxis =
        HorizontalAxis.rememberBottom(guideline = null, valueFormatter = BottomAxisValueFormatter),
      marker = rememberMarker(valueFormatter = MarkerValueFormatter, showIndicator = false),
    ),
    modelProducer,
    modifier,
  )
}

@Composable
fun ComposeGoldPrices(modifier: Modifier = Modifier) {
  val modelProducer = remember { CartesianChartModelProducer() }
  LaunchedEffect(Unit) {
    modelProducer.runTransaction {
      // Learn more: https://patrykandpatrick.com/r8d20v.
      candlestickModel(x, opening, closing, low, high)
    }
  }
  ComposeGoldPrices(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 gold prices")
@Composable
fun CommunityComposeGoldPricesPreview() {
    ComposeGoldPrices()
}
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")
    implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.8.0-0.6.x-compat")
}

MIT License

MIT License

Copyright (c) 2026 Patryk & Patrick

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.