diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f0b5f9d039..5f7f7563d2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -223,6 +223,12 @@ jobs: name: perspective-python-dist-${{ matrix.arch}}-${{ matrix.os }}-${{ matrix.python-version }} path: rust/target/wheels/*.whl + # ,-,---. . . .-,--. . . + # '|___/ . . . | ,-| '|__/ . . ,-. ,-| . ,-| ,-. + # ,| \ | | | | | | .| | | | | | | | | | |-' + # `-^---' `-' ' `' `-' `' `-| `-' `-' ' `-' `-' + # /| + # `-' build_emscripten_wheel: runs-on: ${{ matrix.os }} strategy: @@ -249,7 +255,7 @@ jobs: with: javascript: "false" arch: ${{ matrix.arch }} - manylinux: ${{ matrix.container && 'true' || 'false' }} + manylinux: "false" skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} - name: Python Build Pyodide @@ -571,6 +577,10 @@ jobs: with: name: perspective-python-dist-x86_64-ubuntu-22.04-3.9 + - uses: actions/download-artifact@v4 + with: + name: perspective-python-dist-wasm32-emscripten-3.9 + - uses: actions/download-artifact@v4 with: name: perspective-python-sdist diff --git a/docs/docs/js.md b/docs/docs/js.md index 6090d2b015..373f3183c1 100644 --- a/docs/docs/js.md +++ b/docs/docs/js.md @@ -61,8 +61,8 @@ performance, as the plugin-assisted bundle version of Perspective: Perspective comes with bundler plugins for: -- Webpack via `@finos/perspective-webpack-plugin` - `esbuild` via `@finos/perspective-esbuild-plugin` +- Webpack via `@finos/perspective-webpack-plugin` ##### Webpack @@ -243,15 +243,16 @@ It exports Perspective's data interfaces: `@finos/perspective` also exports process management functions, such as `worker()` and `websocket()` (in the browser) and `WebSocketServer()` (in -Node.js). See the [API documentation](/obj/perspective.md) for a complete -reference on all exported methods. This module is a dependency of +Node.js). See the +[API documentation](<[/obj/perspective.md](https://docs.rs/perspective-js/latest/perspective_js/)>) +for a complete reference on all exported methods. This module is a dependency of `@finos/perspective-viewer`, and is not needed if you only intend to use `` to visualize simple data. ### Importing in the browser `perspective` can be imported as an ES6 module and/or `require` syntax if you're -using a bundler such as Webpack (and the `@finos/perspective-webpack-plugin`): +using a bundler such as ESBuild (and the `@finos/perspective-esbuild-plugin`): ```javascript import perspective from "@finos/perspective"; @@ -311,7 +312,7 @@ view.to_csv().then((csv) => console.log(csv)); view.to_arrow().then((arrow) => console.log(arrow)); ``` -Via ES6 `await`/`async` +Via `await`/`async` ```javascript async function print_data() { diff --git a/rust/perspective-viewer/Cargo.toml b/rust/perspective-viewer/Cargo.toml index df7284aa6f..4b4cf07e87 100644 --- a/rust/perspective-viewer/Cargo.toml +++ b/rust/perspective-viewer/Cargo.toml @@ -21,7 +21,7 @@ license = "Apache-2.0" homepage = "https://perspective.finos.org" keywords = ["experimental"] build = "build.rs" -include = ["build.rs", "src/**/*", "Cargo.toml", "package.json"] +include = ["build.rs", "src/**/*", "Cargo.toml", "package.json", "docs/**/*"] [package.metadata.docs.rs] rustc-args = ["--cfg", "web_sys_unstable_apis"] diff --git a/rust/perspective-viewer/src/less/status-bar.less b/rust/perspective-viewer/src/less/status-bar.less index 91ffd3b484..c2348400ba 100644 --- a/rust/perspective-viewer/src/less/status-bar.less +++ b/rust/perspective-viewer/src/less/status-bar.less @@ -346,7 +346,7 @@ } &:hover .button, - .modal-target .button { + &.modal-target .button { position: relative; min-width: var(--button--min-width, 33px); color: inherit; diff --git a/rust/perspective-viewer/src/themes/icons.less b/rust/perspective-viewer/src/themes/icons.less index 48902edf98..50c7e4ee78 100644 --- a/rust/perspective-viewer/src/themes/icons.less +++ b/rust/perspective-viewer/src/themes/icons.less @@ -72,6 +72,8 @@ perspective-string-column-style { --close-icon--mask-image: url("../svg/close-icon.svg"); --inactive-column-selector--content: url("../svg/checkbox-unchecked-icon.svg"); --active-column-selector--content: url("../svg/checkbox-checked-icon.svg"); + --select-arrow-light--background-image: url("../svg/dropdown-selector-light.svg"); + --select-arrow-dark--background-image: url("../svg/dropdown-selector.svg"); --overflow-hint-icon--content: "!"; --reset-button-icon--content: "refresh"; --save-button-icon--content: "save"; diff --git a/rust/perspective-viewer/src/themes/pro-dark.less b/rust/perspective-viewer/src/themes/pro-dark.less index 4a0e24e878..f5bc73135f 100644 --- a/rust/perspective-viewer/src/themes/pro-dark.less +++ b/rust/perspective-viewer/src/themes/pro-dark.less @@ -68,7 +68,9 @@ perspective-string-column-style[theme="Pro Dark"] { --warning--color: #242526; --warning--background: var(--icon--color); - --select-arrow--background-image: url("../svg/dropdown-selector.svg"); + --select-arrow--background-image: var( + --select-arrow-light--background-image + ); // Column type indicators --float--column-type--color: #7dc3f0; diff --git a/rust/perspective-viewer/src/themes/pro.less b/rust/perspective-viewer/src/themes/pro.less index fd32444cd2..67bd8111fa 100644 --- a/rust/perspective-viewer/src/themes/pro.less +++ b/rust/perspective-viewer/src/themes/pro.less @@ -94,7 +94,9 @@ perspective-string-column-style[theme="Pro Light"] { --warning--background: #042121; --warning--color: #fdfffd; - --select-arrow--background-image: url("../svg/dropdown-selector-light.svg"); + --select-arrow--background-image: var( + --select-arrow-dark--background-image + ); // TODO deprecate me --overflow-hint-icon--color: #fdfffd; diff --git a/rust/perspective-viewer/src/themes/solarized-dark.less b/rust/perspective-viewer/src/themes/solarized-dark.less index 2fb234ac13..9194d32edc 100644 --- a/rust/perspective-viewer/src/themes/solarized-dark.less +++ b/rust/perspective-viewer/src/themes/solarized-dark.less @@ -48,7 +48,9 @@ perspective-string-column-style[theme="Solarized Dark"] { --inactive--border-color: var(--inactive--color); --plugin--background: #073642; - --select-arrow--background-image: url("../svg/dropdown-selector.svg"); + --select-arrow--background-image: var( + --select-arrow-light--background-image + ); } // @mixin perspective-viewer-solarized-dark--datagrid {} @@ -61,9 +63,11 @@ perspective-string-column-style[theme="Solarized Dark"] { --d3fc-gridline--color: #002b36; --d3fc-legend--text: #93a1a1; - --d3fc-full--gradient: linear-gradient(#cb4b16 0%, - #073642 50%, - #268bd2 100%); + --d3fc-full--gradient: linear-gradient( + #cb4b16 0%, + #073642 50%, + #268bd2 100% + ); // --d3fc-positive--gradient: linear-gradient(#073642 0%, #268bd2 100%); --d3fc-negative--gradient: linear-gradient(#cb4b16 0%, #073642 100%);