diff --git a/CHANGELOG.md b/CHANGELOG.md index ac6c57b612..940afabdbe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,24 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.58.0](https://github.com/deephaven/web-client-ui/compare/v0.57.1...v0.58.0) (2023-12-22) + + +### Bug Fixes + +* `figure_title` and `chart_title` were not mapped up correctly ([#1676](https://github.com/deephaven/web-client-ui/issues/1676)) ([73e0b65](https://github.com/deephaven/web-client-ui/commit/73e0b658edffc7ef89b3b786f3fe30c0e64c96f9)), closes [#1674](https://github.com/deephaven/web-client-ui/issues/1674) [#1675](https://github.com/deephaven/web-client-ui/issues/1675) + + +### Features + +* "Group" column for rollup/tree tables ([#1636](https://github.com/deephaven/web-client-ui/issues/1636)) ([ba1d51b](https://github.com/deephaven/web-client-ui/commit/ba1d51baf20d5426746243ed0022848747dc44f8)), closes [#1555](https://github.com/deephaven/web-client-ui/issues/1555) +* Add alt+click shortcut to copy cell and column headers ([#1694](https://github.com/deephaven/web-client-ui/issues/1694)) ([4a8a81a](https://github.com/deephaven/web-client-ui/commit/4a8a81a3185af45a265c2e7b489e4a40180c66c0)), closes [deephaven/web-client-ui#1585](https://github.com/deephaven/web-client-ui/issues/1585) +* Theming - Spectrum variable mapping and light theme ([#1680](https://github.com/deephaven/web-client-ui/issues/1680)) ([2278697](https://github.com/deephaven/web-client-ui/commit/2278697b8c0f62f4294c261f6f6de608fea3d2d5)), closes [#1669](https://github.com/deephaven/web-client-ui/issues/1669) [#1539](https://github.com/deephaven/web-client-ui/issues/1539) + + + + + ## [0.57.1](https://github.com/deephaven/web-client-ui/compare/v0.57.0...v0.57.1) (2023-12-14) diff --git a/lerna.json b/lerna.json index 776e6d2c13..a31c3a6ce5 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "useNx": false, - "version": "0.57.1", + "version": "0.58.0", "command": { "publish": { "distTag": "latest" diff --git a/package-lock.json b/package-lock.json index 49e189a008..98700b5b56 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9671,13 +9671,6 @@ "node": ">=6.0" } }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/array-bounds": { "version": "1.0.1", "license": "MIT" @@ -9871,10 +9864,6 @@ "node": ">= 4.5.0" } }, - "node_modules/atob-lite": { - "version": "2.0.0", - "license": "MIT" - }, "node_modules/available-typed-arrays": { "version": "1.0.5", "license": "MIT", @@ -11487,7 +11476,8 @@ }, "node_modules/color-id": { "version": "1.1.0", - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", + "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", "dependencies": { "clamp": "^1.0.1" } @@ -11613,17 +11603,6 @@ "dot-prop": "^5.1.0" } }, - "node_modules/compute-dims": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "utils-copy": "^1.0.0", - "validate.io-array": "^1.0.6", - "validate.io-matrix-like": "^1.0.2", - "validate.io-ndarray-like": "^1.0.0", - "validate.io-positive-integer": "^1.0.0" - } - }, "node_modules/concat-map": { "version": "0.0.1", "license": "MIT" @@ -11700,14 +11679,6 @@ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, - "node_modules/const-max-uint32": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/const-pinf-float64": { - "version": "1.0.0", - "license": "MIT" - }, "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -14762,10 +14733,6 @@ "dtype": "^2.0.0" } }, - "node_modules/flip-pixels": { - "version": "1.0.2", - "license": "MIT" - }, "node_modules/follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", @@ -16003,14 +15970,6 @@ "node": ">=10" } }, - "node_modules/image-palette": { - "version": "2.1.0", - "dependencies": { - "color-id": "^1.1.0", - "pxls": "^2.0.0", - "quantize": "^1.0.2" - } - }, "node_modules/immediate": { "version": "3.0.6", "license": "MIT" @@ -16386,10 +16345,6 @@ "version": "0.2.1", "license": "MIT" }, - "node_modules/is-base64": { - "version": "0.1.0", - "license": "MIT" - }, "node_modules/is-bigint": { "version": "1.0.4", "license": "MIT", @@ -16411,16 +16366,6 @@ "node": ">=8" } }, - "node_modules/is-blob": { - "version": "2.1.0", - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-boolean-object": { "version": "1.1.2", "license": "MIT", @@ -16551,10 +16496,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-float-array": { - "version": "1.0.0", - "license": "MIT" - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "license": "MIT", @@ -16633,9 +16574,9 @@ } }, "node_modules/is-mobile": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-3.1.1.tgz", - "integrity": "sha512-RRoXXR2HNFxNkUnxtaBdGBXtFlUMFa06S0NUKf/LCF+MuGLu13gi9iBCkoEmc6+rpXuwi5Mso5V8Zf7mNynMBQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", + "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==" }, "node_modules/is-negative-zero": { "version": "2.0.2", @@ -23193,9 +23134,9 @@ } }, "node_modules/plotly.js": { - "version": "2.18.2", - "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.18.2.tgz", - "integrity": "sha512-Z8ZgWNfjeIEYxt/PCfpKZoWMxWylGYiuz28W2frUwEeTEcnnspi+JveC3IWYGmlq6dS3AWlJiZOJWJgdrJjCmA==", + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.27.1.tgz", + "integrity": "sha512-XeE0zTJWTxURYrUJqzf73l8lTb+HnyRvvhHkoSIEvWf58ins4saopo9l25kCm+xHAGz8E/2EOncE4DyXsJ34kA==", "dependencies": { "@plotly/d3": "3.8.1", "@plotly/d3-sankey": "0.7.2", @@ -23223,7 +23164,7 @@ "glslify": "^7.1.1", "has-hover": "^1.0.1", "has-passive-events": "^1.0.0", - "is-mobile": "^3.1.1", + "is-mobile": "^4.0.0", "mapbox-gl": "1.10.1", "mouse-change": "^1.4.0", "mouse-event-offset": "^3.0.2", @@ -23236,7 +23177,7 @@ "regl": "npm:@plotly/regl@^2.1.2", "regl-error2d": "^2.0.12", "regl-line2d": "^3.1.2", - "regl-scatter2d": "^3.2.8", + "regl-scatter2d": "^3.2.9", "regl-splom": "^1.0.14", "strongly-connected-components": "^1.0.1", "superscript-text": "^1.0.0", @@ -23653,18 +23594,6 @@ "node": ">=6" } }, - "node_modules/pxls": { - "version": "2.3.2", - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "compute-dims": "^1.1.0", - "flip-pixels": "^1.0.2", - "is-browser": "^2.1.0", - "is-buffer": "^2.0.3", - "to-uint8": "^1.4.1" - } - }, "node_modules/qjobs": { "version": "1.2.0", "dev": true, @@ -23673,13 +23602,6 @@ "node": ">=0.9" } }, - "node_modules/quantize": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.21" - } - }, "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -24474,10 +24396,6 @@ "@babel/runtime": "^7.8.4" } }, - "node_modules/regex-regex": { - "version": "1.0.0", - "license": "MIT" - }, "node_modules/regexp.prototype.flags": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", @@ -24581,8 +24499,9 @@ } }, "node_modules/regl-scatter2d": { - "version": "3.2.8", - "license": "MIT", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.3.1.tgz", + "integrity": "sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ==", "dependencies": { "@plotly/point-cluster": "^3.1.9", "array-range": "^1.0.1", @@ -24593,7 +24512,6 @@ "color-rgba": "^2.1.1", "flatten-vertex-data": "^1.0.2", "glslify": "^7.0.0", - "image-palette": "^2.1.0", "is-iexplorer": "^1.0.0", "object-assign": "^4.1.1", "parse-rect": "^1.2.0", @@ -25724,14 +25642,6 @@ "parenthesis": "^3.1.5" } }, - "node_modules/string-to-arraybuffer": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "atob-lite": "^2.0.0", - "is-base64": "^0.1.0" - } - }, "node_modules/string-width": { "version": "4.2.3", "license": "MIT", @@ -26624,15 +26534,6 @@ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" }, - "node_modules/to-array-buffer": { - "version": "3.2.0", - "license": "MIT", - "dependencies": { - "flatten-vertex-data": "^1.0.2", - "is-blob": "^2.0.1", - "string-to-arraybuffer": "^1.0.0" - } - }, "node_modules/to-fast-properties": { "version": "2.0.0", "license": "MIT", @@ -26661,17 +26562,6 @@ "node": ">=8.0" } }, - "node_modules/to-uint8": { - "version": "1.4.1", - "license": "MIT", - "dependencies": { - "arr-flatten": "^1.1.0", - "clamp": "^1.0.1", - "is-base64": "^0.1.0", - "is-float-array": "^1.0.0", - "to-array-buffer": "^3.0.0" - } - }, "node_modules/toidentifier": { "version": "1.0.1", "dev": true, @@ -26860,10 +26750,6 @@ "node": ">= 0.6" } }, - "node_modules/type-name": { - "version": "2.0.2", - "license": "MIT" - }, "node_modules/typedarray": { "version": "0.0.6", "license": "MIT" @@ -27232,37 +27118,6 @@ "version": "1.0.2", "license": "MIT" }, - "node_modules/utils-copy": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "const-pinf-float64": "^1.0.0", - "object-keys": "^1.0.9", - "type-name": "^2.0.0", - "utils-copy-error": "^1.0.0", - "utils-indexof": "^1.0.0", - "utils-regex-from-string": "^1.0.0", - "validate.io-array": "^1.0.3", - "validate.io-buffer": "^1.0.1", - "validate.io-nonnegative-integer": "^1.0.0" - } - }, - "node_modules/utils-copy-error": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "object-keys": "^1.0.9", - "utils-copy": "^1.1.0" - } - }, - "node_modules/utils-indexof": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "validate.io-array-like": "^1.0.1", - "validate.io-integer-primitive": "^1.0.0" - } - }, "node_modules/utils-merge": { "version": "1.0.1", "dev": true, @@ -27271,14 +27126,6 @@ "node": ">= 0.4.0" } }, - "node_modules/utils-regex-from-string": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "regex-regex": "^1.0.0", - "validate.io-string-primitive": "^1.0.0" - } - }, "node_modules/uuid": { "version": "8.3.2", "license": "MIT", @@ -27323,64 +27170,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/validate.io-array": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/validate.io-array-like": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "const-max-uint32": "^1.0.2", - "validate.io-integer-primitive": "^1.0.0" - } - }, - "node_modules/validate.io-buffer": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/validate.io-integer": { - "version": "1.0.5", - "dependencies": { - "validate.io-number": "^1.0.3" - } - }, - "node_modules/validate.io-integer-primitive": { - "version": "1.0.0", - "dependencies": { - "validate.io-number-primitive": "^1.0.0" - } - }, - "node_modules/validate.io-matrix-like": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/validate.io-ndarray-like": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/validate.io-nonnegative-integer": { - "version": "1.0.0", - "dependencies": { - "validate.io-integer": "^1.0.5" - } - }, - "node_modules/validate.io-number": { - "version": "1.0.3" - }, - "node_modules/validate.io-number-primitive": { - "version": "1.0.0" - }, - "node_modules/validate.io-positive-integer": { - "version": "1.0.0", - "dependencies": { - "validate.io-integer": "^1.0.5" - } - }, - "node_modules/validate.io-string-primitive": { - "version": "1.0.1", - "license": "MIT" - }, "node_modules/value-equal": { "version": "1.0.1", "license": "MIT" @@ -27948,7 +27737,7 @@ }, "packages/app-utils": { "name": "@deephaven/app-utils", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@adobe/react-spectrum": "^3.29.0", @@ -28033,7 +27822,7 @@ }, "packages/auth-plugins": { "name": "@deephaven/auth-plugins", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/components": "file:../components", @@ -28061,7 +27850,7 @@ }, "packages/babel-preset": { "name": "@deephaven/babel-preset", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@babel/core": "^7.20.0", @@ -28076,7 +27865,7 @@ }, "packages/chart": { "name": "@deephaven/chart", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/components": "file:../components", @@ -28109,7 +27898,7 @@ }, "packages/code-studio": { "name": "@deephaven/code-studio", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@adobe/react-spectrum": "^3.29.0", @@ -28203,7 +27992,7 @@ }, "packages/components": { "name": "@deephaven/components", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@adobe/react-spectrum": "^3.29.0", @@ -28242,7 +28031,7 @@ }, "packages/console": { "name": "@deephaven/console", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/chart": "file:../chart", @@ -28282,7 +28071,7 @@ }, "packages/dashboard": { "name": "@deephaven/dashboard", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/components": "file:../components", @@ -28313,7 +28102,7 @@ }, "packages/dashboard-core-plugins": { "name": "@deephaven/dashboard-core-plugins", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/chart": "file:../chart", @@ -28385,7 +28174,7 @@ }, "packages/embed-chart": { "name": "@deephaven/embed-chart", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/app-utils": "file:../app-utils", @@ -28409,7 +28198,7 @@ }, "packages/embed-grid": { "name": "@deephaven/embed-grid", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/app-utils": "file:../app-utils", @@ -28433,7 +28222,7 @@ }, "packages/embed-widget": { "name": "@deephaven/embed-widget", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/app-utils": "file:../app-utils", @@ -28458,7 +28247,7 @@ }, "packages/eslint-config": { "name": "@deephaven/eslint-config", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "eslint-config-airbnb": "^19.0.4", @@ -28477,7 +28266,7 @@ }, "packages/file-explorer": { "name": "@deephaven/file-explorer", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/components": "file:../components", @@ -28503,7 +28292,7 @@ }, "packages/filters": { "name": "@deephaven/filters", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "engines": { "node": ">=16" @@ -28511,7 +28300,7 @@ }, "packages/golden-layout": { "name": "@deephaven/golden-layout", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/components": "file:../components", @@ -28530,7 +28319,7 @@ }, "packages/grid": { "name": "@deephaven/grid", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/utils": "file:../utils", @@ -28552,7 +28341,7 @@ }, "packages/icons": { "name": "@deephaven/icons", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@fortawesome/fontawesome-common-types": "^6.1.1" @@ -28569,7 +28358,7 @@ }, "packages/iris-grid": { "name": "@deephaven/iris-grid", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/components": "file:../components", @@ -28615,7 +28404,7 @@ }, "packages/jsapi-bootstrap": { "name": "@deephaven/jsapi-bootstrap", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/components": "file:../components", @@ -28635,7 +28424,7 @@ }, "packages/jsapi-components": { "name": "@deephaven/jsapi-components", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/components": "file:../components", @@ -28664,7 +28453,7 @@ }, "packages/jsapi-shim": { "name": "@deephaven/jsapi-shim", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/jsapi-types": "file:../jsapi-types", @@ -28676,7 +28465,7 @@ }, "packages/jsapi-types": { "name": "@deephaven/jsapi-types", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "engines": { "node": ">=16" @@ -28684,7 +28473,7 @@ }, "packages/jsapi-utils": { "name": "@deephaven/jsapi-utils", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/filters": "file:../filters", @@ -28703,7 +28492,7 @@ }, "packages/log": { "name": "@deephaven/log", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "event-target-shim": "^6.0.2" @@ -28714,7 +28503,7 @@ }, "packages/mocks": { "name": "@deephaven/mocks", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "peerDependencies": { "jest": "29.x" @@ -28722,7 +28511,7 @@ }, "packages/plugin": { "name": "@deephaven/plugin", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/components": "file:../components", @@ -28772,7 +28561,7 @@ }, "packages/pouch-storage": { "name": "@deephaven/pouch-storage", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/console": "file:../console", @@ -28793,7 +28582,7 @@ }, "packages/prettier-config": { "name": "@deephaven/prettier-config", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "peerDependencies": { "prettier": "^3.0.0" @@ -28801,7 +28590,7 @@ }, "packages/react-hooks": { "name": "@deephaven/react-hooks", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@adobe/react-spectrum": "^3.29.0", @@ -28819,7 +28608,7 @@ }, "packages/redux": { "name": "@deephaven/redux", - "version": "0.57.1", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/jsapi-types": "file:../jsapi-types", @@ -28838,7 +28627,7 @@ }, "packages/storage": { "name": "@deephaven/storage", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "@deephaven/filters": "file:../filters", @@ -28854,7 +28643,7 @@ }, "packages/stylelint-config": { "name": "@deephaven/stylelint-config", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "dependencies": { "stylelint-config-prettier-scss": "^0.0.1", @@ -28866,13 +28655,13 @@ }, "packages/tsconfig": { "name": "@deephaven/tsconfig", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0" }, "packages/util": {}, "packages/utils": { "name": "@deephaven/utils", - "version": "0.57.0", + "version": "0.58.0", "license": "Apache-2.0", "engines": { "node": ">=16" @@ -36257,9 +36046,6 @@ "version": "5.0.0", "dev": true }, - "arr-flatten": { - "version": "1.1.0" - }, "array-bounds": { "version": "1.0.1" }, @@ -36406,9 +36192,6 @@ "version": "2.1.2", "dev": true }, - "atob-lite": { - "version": "2.0.0" - }, "available-typed-arrays": { "version": "1.0.5" }, @@ -37616,6 +37399,8 @@ }, "color-id": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", + "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", "requires": { "clamp": "^1.0.1" } @@ -37719,16 +37504,6 @@ "dot-prop": "^5.1.0" } }, - "compute-dims": { - "version": "1.1.0", - "requires": { - "utils-copy": "^1.0.0", - "validate.io-array": "^1.0.6", - "validate.io-matrix-like": "^1.0.2", - "validate.io-ndarray-like": "^1.0.0", - "validate.io-positive-integer": "^1.0.0" - } - }, "concat-map": { "version": "0.0.1" }, @@ -37795,12 +37570,6 @@ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, - "const-max-uint32": { - "version": "1.0.2" - }, - "const-pinf-float64": { - "version": "1.0.0" - }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -39987,9 +39756,6 @@ "dtype": "^2.0.0" } }, - "flip-pixels": { - "version": "1.0.2" - }, "follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", @@ -40889,14 +40655,6 @@ } } }, - "image-palette": { - "version": "2.1.0", - "requires": { - "color-id": "^1.1.0", - "pxls": "^2.0.0", - "quantize": "^1.0.2" - } - }, "immediate": { "version": "3.0.6" }, @@ -41176,9 +40934,6 @@ "is-arrayish": { "version": "0.2.1" }, - "is-base64": { - "version": "0.1.0" - }, "is-bigint": { "version": "1.0.4", "requires": { @@ -41192,9 +40947,6 @@ "binary-extensions": "^2.0.0" } }, - "is-blob": { - "version": "2.1.0" - }, "is-boolean-object": { "version": "1.1.2", "requires": { @@ -41249,9 +41001,6 @@ "is-firefox": { "version": "1.0.3" }, - "is-float-array": { - "version": "1.0.0" - }, "is-fullwidth-code-point": { "version": "3.0.0" }, @@ -41297,9 +41046,9 @@ "version": "2.0.2" }, "is-mobile": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-3.1.1.tgz", - "integrity": "sha512-RRoXXR2HNFxNkUnxtaBdGBXtFlUMFa06S0NUKf/LCF+MuGLu13gi9iBCkoEmc6+rpXuwi5Mso5V8Zf7mNynMBQ==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", + "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==" }, "is-negative-zero": { "version": "2.0.2" @@ -45918,9 +45667,9 @@ "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" }, "plotly.js": { - "version": "2.18.2", - "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.18.2.tgz", - "integrity": "sha512-Z8ZgWNfjeIEYxt/PCfpKZoWMxWylGYiuz28W2frUwEeTEcnnspi+JveC3IWYGmlq6dS3AWlJiZOJWJgdrJjCmA==", + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.27.1.tgz", + "integrity": "sha512-XeE0zTJWTxURYrUJqzf73l8lTb+HnyRvvhHkoSIEvWf58ins4saopo9l25kCm+xHAGz8E/2EOncE4DyXsJ34kA==", "requires": { "@plotly/d3": "3.8.1", "@plotly/d3-sankey": "0.7.2", @@ -45948,7 +45697,7 @@ "glslify": "^7.1.1", "has-hover": "^1.0.1", "has-passive-events": "^1.0.0", - "is-mobile": "^3.1.1", + "is-mobile": "^4.0.0", "mapbox-gl": "1.10.1", "mouse-change": "^1.4.0", "mouse-event-offset": "^3.0.2", @@ -45961,7 +45710,7 @@ "regl": "npm:@plotly/regl@^2.1.2", "regl-error2d": "^2.0.12", "regl-line2d": "^3.1.2", - "regl-scatter2d": "^3.2.8", + "regl-scatter2d": "^3.2.9", "regl-splom": "^1.0.14", "strongly-connected-components": "^1.0.1", "superscript-text": "^1.0.0", @@ -46273,24 +46022,10 @@ "punycode": { "version": "2.1.1" }, - "pxls": { - "version": "2.3.2", - "requires": { - "arr-flatten": "^1.1.0", - "compute-dims": "^1.1.0", - "flip-pixels": "^1.0.2", - "is-browser": "^2.1.0", - "is-buffer": "^2.0.3", - "to-uint8": "^1.4.1" - } - }, "qjobs": { "version": "1.2.0", "dev": true }, - "quantize": { - "version": "1.0.2" - }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -46857,9 +46592,6 @@ "@babel/runtime": "^7.8.4" } }, - "regex-regex": { - "version": "1.0.0" - }, "regexp.prototype.flags": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", @@ -46939,7 +46671,9 @@ } }, "regl-scatter2d": { - "version": "3.2.8", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.3.1.tgz", + "integrity": "sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ==", "requires": { "@plotly/point-cluster": "^3.1.9", "array-range": "^1.0.1", @@ -46950,7 +46684,6 @@ "color-rgba": "^2.1.1", "flatten-vertex-data": "^1.0.2", "glslify": "^7.0.0", - "image-palette": "^2.1.0", "is-iexplorer": "^1.0.0", "object-assign": "^4.1.1", "parse-rect": "^1.2.0", @@ -47745,13 +47478,6 @@ "parenthesis": "^3.1.5" } }, - "string-to-arraybuffer": { - "version": "1.0.2", - "requires": { - "atob-lite": "^2.0.0", - "is-base64": "^0.1.0" - } - }, "string-width": { "version": "4.2.3", "requires": { @@ -48384,14 +48110,6 @@ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" }, - "to-array-buffer": { - "version": "3.2.0", - "requires": { - "flatten-vertex-data": "^1.0.2", - "is-blob": "^2.0.1", - "string-to-arraybuffer": "^1.0.0" - } - }, "to-fast-properties": { "version": "2.0.0" }, @@ -48410,16 +48128,6 @@ "is-number": "^7.0.0" } }, - "to-uint8": { - "version": "1.4.1", - "requires": { - "arr-flatten": "^1.1.0", - "clamp": "^1.0.1", - "is-base64": "^0.1.0", - "is-float-array": "^1.0.0", - "to-array-buffer": "^3.0.0" - } - }, "toidentifier": { "version": "1.0.1", "dev": true @@ -48550,9 +48258,6 @@ "mime-types": "~2.1.24" } }, - "type-name": { - "version": "2.0.2" - }, "typedarray": { "version": "0.0.6" }, @@ -48791,45 +48496,10 @@ "util-deprecate": { "version": "1.0.2" }, - "utils-copy": { - "version": "1.1.1", - "requires": { - "const-pinf-float64": "^1.0.0", - "object-keys": "^1.0.9", - "type-name": "^2.0.0", - "utils-copy-error": "^1.0.0", - "utils-indexof": "^1.0.0", - "utils-regex-from-string": "^1.0.0", - "validate.io-array": "^1.0.3", - "validate.io-buffer": "^1.0.1", - "validate.io-nonnegative-integer": "^1.0.0" - } - }, - "utils-copy-error": { - "version": "1.0.1", - "requires": { - "object-keys": "^1.0.9", - "utils-copy": "^1.1.0" - } - }, - "utils-indexof": { - "version": "1.0.0", - "requires": { - "validate.io-array-like": "^1.0.1", - "validate.io-integer-primitive": "^1.0.0" - } - }, "utils-merge": { "version": "1.0.1", "dev": true }, - "utils-regex-from-string": { - "version": "1.0.0", - "requires": { - "regex-regex": "^1.0.0", - "validate.io-string-primitive": "^1.0.0" - } - }, "uuid": { "version": "8.3.2" }, @@ -48862,58 +48532,6 @@ "builtins": "^5.0.0" } }, - "validate.io-array": { - "version": "1.0.6" - }, - "validate.io-array-like": { - "version": "1.0.2", - "requires": { - "const-max-uint32": "^1.0.2", - "validate.io-integer-primitive": "^1.0.0" - } - }, - "validate.io-buffer": { - "version": "1.0.2" - }, - "validate.io-integer": { - "version": "1.0.5", - "requires": { - "validate.io-number": "^1.0.3" - } - }, - "validate.io-integer-primitive": { - "version": "1.0.0", - "requires": { - "validate.io-number-primitive": "^1.0.0" - } - }, - "validate.io-matrix-like": { - "version": "1.0.2" - }, - "validate.io-ndarray-like": { - "version": "1.0.0" - }, - "validate.io-nonnegative-integer": { - "version": "1.0.0", - "requires": { - "validate.io-integer": "^1.0.5" - } - }, - "validate.io-number": { - "version": "1.0.3" - }, - "validate.io-number-primitive": { - "version": "1.0.0" - }, - "validate.io-positive-integer": { - "version": "1.0.0", - "requires": { - "validate.io-integer": "^1.0.5" - } - }, - "validate.io-string-primitive": { - "version": "1.0.1" - }, "value-equal": { "version": "1.0.1" }, diff --git a/packages/app-utils/CHANGELOG.md b/packages/app-utils/CHANGELOG.md index 9a314a457a..e4479fb904 100644 --- a/packages/app-utils/CHANGELOG.md +++ b/packages/app-utils/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.58.0](https://github.com/deephaven/web-client-ui/compare/v0.57.1...v0.58.0) (2023-12-22) + +**Note:** Version bump only for package @deephaven/app-utils + + + + + ## [0.57.1](https://github.com/deephaven/web-client-ui/compare/v0.57.0...v0.57.1) (2023-12-14) **Note:** Version bump only for package @deephaven/app-utils diff --git a/packages/app-utils/package.json b/packages/app-utils/package.json index be1ca16014..2c89ba239b 100644 --- a/packages/app-utils/package.json +++ b/packages/app-utils/package.json @@ -1,6 +1,6 @@ { "name": "@deephaven/app-utils", - "version": "0.57.1", + "version": "0.58.0", "description": "Deephaven App Utils", "author": "Deephaven Data Labs LLC", "license": "Apache-2.0", diff --git a/packages/auth-plugins/CHANGELOG.md b/packages/auth-plugins/CHANGELOG.md index ea23fa102d..08a8dbe3ff 100644 --- a/packages/auth-plugins/CHANGELOG.md +++ b/packages/auth-plugins/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.58.0](https://github.com/deephaven/web-client-ui/compare/v0.57.1...v0.58.0) (2023-12-22) + +**Note:** Version bump only for package @deephaven/auth-plugins + + + + + ## [0.57.1](https://github.com/deephaven/web-client-ui/compare/v0.57.0...v0.57.1) (2023-12-14) **Note:** Version bump only for package @deephaven/auth-plugins diff --git a/packages/auth-plugins/package.json b/packages/auth-plugins/package.json index befa597ed9..9794cc7569 100644 --- a/packages/auth-plugins/package.json +++ b/packages/auth-plugins/package.json @@ -1,6 +1,6 @@ { "name": "@deephaven/auth-plugins", - "version": "0.57.1", + "version": "0.58.0", "description": "Deephaven Auth Plugins", "keywords": [ "Deephaven", diff --git a/packages/babel-preset/CHANGELOG.md b/packages/babel-preset/CHANGELOG.md index a3ad62aacb..091f5875d9 100644 --- a/packages/babel-preset/CHANGELOG.md +++ b/packages/babel-preset/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.58.0](https://github.com/deephaven/web-client-ui/compare/v0.57.1...v0.58.0) (2023-12-22) + +**Note:** Version bump only for package @deephaven/babel-preset + + + + + # [0.57.0](https://github.com/deephaven/web-client-ui/compare/v0.56.0...v0.57.0) (2023-12-13) **Note:** Version bump only for package @deephaven/babel-preset diff --git a/packages/babel-preset/package.json b/packages/babel-preset/package.json index ab7a88b420..ca7467dead 100644 --- a/packages/babel-preset/package.json +++ b/packages/babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@deephaven/babel-preset", - "version": "0.57.0", + "version": "0.58.0", "description": "Deephaven Babel preset", "repository": { "type": "git", diff --git a/packages/chart/CHANGELOG.md b/packages/chart/CHANGELOG.md index 050bc1a3ae..ce85bb84e7 100644 --- a/packages/chart/CHANGELOG.md +++ b/packages/chart/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.58.0](https://github.com/deephaven/web-client-ui/compare/v0.57.1...v0.58.0) (2023-12-22) + + +### Bug Fixes + +* `figure_title` and `chart_title` were not mapped up correctly ([#1676](https://github.com/deephaven/web-client-ui/issues/1676)) ([73e0b65](https://github.com/deephaven/web-client-ui/commit/73e0b658edffc7ef89b3b786f3fe30c0e64c96f9)), closes [#1674](https://github.com/deephaven/web-client-ui/issues/1674) [#1675](https://github.com/deephaven/web-client-ui/issues/1675) + + + + + ## [0.57.1](https://github.com/deephaven/web-client-ui/compare/v0.57.0...v0.57.1) (2023-12-14) **Note:** Version bump only for package @deephaven/chart diff --git a/packages/chart/package.json b/packages/chart/package.json index fe1e5707be..08877bb1be 100644 --- a/packages/chart/package.json +++ b/packages/chart/package.json @@ -1,6 +1,6 @@ { "name": "@deephaven/chart", - "version": "0.57.1", + "version": "0.58.0", "description": "Deephaven Chart", "author": "Deephaven Data Labs LLC", "license": "Apache-2.0", diff --git a/packages/chart/src/ChartTestUtils.ts b/packages/chart/src/ChartTestUtils.ts index 406f15a199..dc7591c942 100644 --- a/packages/chart/src/ChartTestUtils.ts +++ b/packages/chart/src/ChartTestUtils.ts @@ -11,6 +11,8 @@ import type { } from '@deephaven/jsapi-types'; class ChartTestUtils { + static DEFAULT_FIGURE_TITLE = 'Figure Title'; + static DEFAULT_CHART_TITLE = 'Chart Title'; static DEFAULT_X_TITLE = 'X Axis'; @@ -127,7 +129,7 @@ class ChartTestUtils { } makeFigure({ - title = 'Figure', + title = ChartTestUtils.DEFAULT_FIGURE_TITLE, charts = [this.makeChart()], rows = 1, cols = 1, diff --git a/packages/chart/src/ChartUtils.ts b/packages/chart/src/ChartUtils.ts index eb5973ad39..25bb1c0df0 100644 --- a/packages/chart/src/ChartUtils.ts +++ b/packages/chart/src/ChartUtils.ts @@ -421,6 +421,16 @@ class ChartUtils { ); } + /** + * Get the axis type map for the figure provided + * @param figure Figure to get the type map for + * @returns Axis type map for the figure provided + */ + static getAxisTypeMap(figure: Figure): AxisTypeMap { + const axes = ChartUtils.getAllAxes(figure); + return ChartUtils.groupArray(axes, 'type'); + } + /** * Retrieve the chart that contains the passed in series from the figure * @param figure The figure to retrieve the chart from diff --git a/packages/chart/src/FigureChartModel.test.ts b/packages/chart/src/FigureChartModel.test.ts index 2993f981f9..de7f4a5275 100644 --- a/packages/chart/src/FigureChartModel.test.ts +++ b/packages/chart/src/FigureChartModel.test.ts @@ -26,7 +26,7 @@ it('populates the layout properly', () => { expect(model.getLayout()).toEqual( expect.objectContaining({ title: expect.objectContaining({ - text: ChartTestUtils.DEFAULT_CHART_TITLE, + text: ChartTestUtils.DEFAULT_FIGURE_TITLE, }), xaxis: expect.objectContaining({ title: expect.objectContaining({ @@ -38,6 +38,13 @@ it('populates the layout properly', () => { text: ChartTestUtils.DEFAULT_Y_TITLE, }), }), + annotations: expect.arrayContaining([ + expect.objectContaining({ + text: ChartTestUtils.DEFAULT_CHART_TITLE, + xref: 'x1 domain', + yref: 'y1 domain', + }), + ]), }) ); }); diff --git a/packages/chart/src/FigureChartModel.ts b/packages/chart/src/FigureChartModel.ts index 8b04260398..19ac5c25f1 100644 --- a/packages/chart/src/FigureChartModel.ts +++ b/packages/chart/src/FigureChartModel.ts @@ -13,7 +13,14 @@ import type { } from '@deephaven/jsapi-types'; import Log from '@deephaven/log'; import { Range } from '@deephaven/utils'; -import type { Layout, Data, PlotData } from 'plotly.js'; +import type { + Annotations, + Layout, + Data, + PlotData, + XAxisName, + YAxisName, +} from 'plotly.js'; import type { DateTimeColumnFormatter, Formatter, @@ -134,11 +141,12 @@ class FigureChartModel extends ChartModel { } getDefaultTitle(): string { - if (this.figure.charts.length > 0) { - const chart = this.figure.charts[0]; - return chart.title; + if (this.figure.title != null && this.figure.title.length > 0) { + return this.figure.title; + } + if (this.figure.charts.length === 1) { + return this.figure.charts[0].title ?? ''; } - return ''; } @@ -147,7 +155,7 @@ class FigureChartModel extends ChartModel { this.filterColumnMap.clear(); const { charts } = this.figure; - const axes = ChartUtils.getAllAxes(this.figure); + const axisTypeMap = ChartUtils.getAxisTypeMap(this.figure); const activeSeriesNames: string[] = []; for (let i = 0; i < charts.length; i += 1) { const chart = charts[i]; @@ -155,7 +163,47 @@ class FigureChartModel extends ChartModel { for (let j = 0; j < chart.series.length; j += 1) { const series = chart.series[j]; activeSeriesNames.push(series.name); - this.addSeries(series, axes, chart.showLegend); + this.addSeries(series, axisTypeMap, chart.showLegend); + } + + // Need to add the chart titles as annotations if they are set + const { axes, title } = chart; + if ( + title != null && + title.length > 0 && + (charts.length > 1 || this.figure.title != null) + ) { + const xAxis = axes.find(axis => axis.type === this.dh.plot.AxisType.X); + const yAxis = axes.find(axis => axis.type === this.dh.plot.AxisType.Y); + if (xAxis == null || yAxis == null) { + log.warn( + 'Chart title provided, but unknown how to map to the correct axes for this chart type', + chart + ); + } else { + const xAxisIndex = + (axisTypeMap.get(xAxis.type)?.findIndex(a => a === xAxis) ?? 0) + 1; + const yAxisIndex = + (axisTypeMap.get(yAxis.type)?.findIndex(a => a === yAxis) ?? 0) + 1; + + const annotation: Partial = { + align: 'center', + x: 0.5, + y: 1, + yshift: 17, + text: title, + showarrow: false, + + // Typing is incorrect in Plotly for this, as it doesn't seem to be typed for the "domain" part: https://plotly.com/javascript/reference/layout/annotations/#layout-annotations-items-annotation-xref + xref: `x${xAxisIndex} domain` as XAxisName, + yref: `y${yAxisIndex} domain` as YAxisName, + }; + if (this.layout.annotations == null) { + this.layout.annotations = [annotation]; + } else { + this.layout.annotations.push(annotation); + } + } } } @@ -174,12 +222,15 @@ class FigureChartModel extends ChartModel { /** * Add a series to the model * @param series Series object to add - * @param axes All the axis in this figure + * @param axisTypeMap Map of axis type to the axes in this Figure * @param showLegend Whether this series should show the legend or not */ - addSeries(series: Series, axes: Axis[], showLegend: boolean | null): void { + addSeries( + series: Series, + axisTypeMap: AxisTypeMap, + showLegend: boolean | null + ): void { const { dh } = this; - const axisTypeMap: AxisTypeMap = ChartUtils.groupArray(axes, 'type'); const seriesData = this.chartUtils.makeSeriesDataFromSeries( series, @@ -223,12 +274,12 @@ class FigureChartModel extends ChartModel { // We need to debounce adding series so we subscribe to them all in the same tick // This should no longer be necessary after IDS-5049 lands addPendingSeries = debounce(() => { - const axes = ChartUtils.getAllAxes(this.figure); + const axisTypeMap = ChartUtils.getAxisTypeMap(this.figure); const { pendingSeries } = this; for (let i = 0; i < pendingSeries.length; i += 1) { const series = pendingSeries[i]; const chart = this.figure.charts.find(c => c.series.includes(series)); - this.addSeries(series, axes, chart?.showLegend ?? null); + this.addSeries(series, axisTypeMap, chart?.showLegend ?? null); series.subscribe(); // We'll get an update with the data after subscribing diff --git a/packages/code-studio/CHANGELOG.md b/packages/code-studio/CHANGELOG.md index 787b75d6d3..9000e18317 100644 --- a/packages/code-studio/CHANGELOG.md +++ b/packages/code-studio/CHANGELOG.md @@ -3,6 +3,18 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.58.0](https://github.com/deephaven/web-client-ui/compare/v0.57.1...v0.58.0) (2023-12-22) + + +### Features + +* Add alt+click shortcut to copy cell and column headers ([#1694](https://github.com/deephaven/web-client-ui/issues/1694)) ([4a8a81a](https://github.com/deephaven/web-client-ui/commit/4a8a81a3185af45a265c2e7b489e4a40180c66c0)), closes [deephaven/web-client-ui#1585](https://github.com/deephaven/web-client-ui/issues/1585) +* Theming - Spectrum variable mapping and light theme ([#1680](https://github.com/deephaven/web-client-ui/issues/1680)) ([2278697](https://github.com/deephaven/web-client-ui/commit/2278697b8c0f62f4294c261f6f6de608fea3d2d5)), closes [#1669](https://github.com/deephaven/web-client-ui/issues/1669) [#1539](https://github.com/deephaven/web-client-ui/issues/1539) + + + + + ## [0.57.1](https://github.com/deephaven/web-client-ui/compare/v0.57.0...v0.57.1) (2023-12-14) diff --git a/packages/code-studio/package.json b/packages/code-studio/package.json index 92cc6702f9..a6159d6393 100644 --- a/packages/code-studio/package.json +++ b/packages/code-studio/package.json @@ -1,6 +1,6 @@ { "name": "@deephaven/code-studio", - "version": "0.57.1", + "version": "0.58.0", "description": "Deephaven Code Studio", "author": "Deephaven Data Labs LLC", "license": "Apache-2.0", diff --git a/packages/code-studio/src/assets/svg/cursor-copy.svg b/packages/code-studio/src/assets/svg/cursor-copy.svg new file mode 100644 index 0000000000..28421e86b4 --- /dev/null +++ b/packages/code-studio/src/assets/svg/cursor-copy.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/packages/code-studio/src/main/AppMainContainer.scss b/packages/code-studio/src/main/AppMainContainer.scss index b45dd6e8ee..450484b2a2 100644 --- a/packages/code-studio/src/main/AppMainContainer.scss +++ b/packages/code-studio/src/main/AppMainContainer.scss @@ -1,251 +1,18 @@ @import '@deephaven/components/scss/custom.scss'; $tab-height: 32px; -$tab-drag-border-width: 1px; $tab-font-size: 1rem; -$tab-link-max-width: 200px; - -$tab-link-side-padding: 24px; -$tab-link-underline-spacing: 6px; - -$tab-close-right: 0.25rem; -$tab-close-bottom: 6px; -$tab-close-padding-x: 1px; -$tab-close-padding-y: 2px; -$tab-close-color: $gray-500; -$tab-close-hover-color: $gray-200; $tab-button-side-padding: 9px; -$tab-button-separator-height: 16px; - -$tab-link-color: $gray-400; - -$tab-link-hover-color: $gray-300; -$tab-link-hover-underline-color: $gray-400; - -$tab-link-active-color: $gray-200; -$tab-link-active-underline-color: $primary; - -$tab-link-active-hover-color: $gray-200; -$tab-link-active-hover-underline-color: $primary; $tab-link-disabled-color: $gray-600; -$tab-button-hover-color: $gray-200; -$tab-button-separator-color: $gray-600; - -$tab-dragging-bg-color: $primary-dark; -$tab-dragging-ant-color: $gray-300; - -$tab-control-btn-width: 25px; -$tab-control-btn-offset: -8px; -$tab-control-gradient-width: 12px; - $nav-space: 4px; // give a gap around some buttons for focus area that are in nav bar -@mixin underlined-nav-link($pseudo-element, $underline-color) { - &::#{$pseudo-element} { - content: ''; - position: absolute; - height: 1px; - left: $tab-link-side-padding; - right: $tab-link-side-padding; - bottom: $tab-link-underline-spacing; - background: $underline-color; - transition: all $transition-mid ease-out; - @content; - } -} - -.nav-container { - display: flex; - flex-shrink: 0; - - .nav-tabs { - border: none; - height: $tab-height; - font-size: $tab-font-size; - flex-wrap: nowrap; - overflow-x: hidden; - position: relative; - - &.dragging { - @include ants-base($tab-dragging-ant-color, $background); - } - - .btn-nav-tab { - color: $tab-link-color; - border: $tab-drag-border-width solid transparent; - line-height: $tab-height - $tab-drag-border-width * 2; // subtract top and bottom borders, and focus border - width: auto; - max-width: $tab-link-max-width; - overflow: hidden; - padding: 0 $tab-link-side-padding; - position: relative; - text-overflow: ellipsis; - user-select: none; - white-space: nowrap; - flex-shrink: 0; - background: none; - background-clip: padding-box; - - .btn-nav-tab-close { - position: absolute; - line-height: $tab-font-size; - right: $tab-close-right; - bottom: $tab-close-bottom; - padding: $tab-close-padding-y $tab-close-padding-x; - color: $tab-close-color; - opacity: 0; - transition: opacity $transition ease-out; - - &:hover { - color: $tab-button-hover-color; - } - - &:focus { - opacity: 1; - color: $tab-button-hover-color; - } - } - - //hover line is drawn as a before element - @include underlined-nav-link(before, transparent) { - transform: translateY($tab-link-underline-spacing); - } - - //active is drawn animated overtop as after element - @include underlined-nav-link(after, $tab-link-active-underline-color) { - transform: scaleX(0); - } - - &:focus { - // these seem like something that shouldn't have a regular focus state - box-shadow: none; - border-color: transparent; - &::before { - box-shadow: 0 1px 0 1px $input-btn-focus-color; - } - } - - &:hover, - &:focus { - color: $tab-link-hover-color; - text-decoration: none; - - .btn-nav-tab-close { - opacity: 1; - } - - &::before { - background: $tab-link-hover-underline-color; - transform: translateY(0); - } - } - - &.active { - color: $tab-link-active-color; - - .btn-nav-tab-close { - opacity: 1; - } - - &::after { - background: $tab-link-active-underline-color; - transform: scaleX(1); - } - &::before { - transform: translateY(0); - } - } - - &.dragging { - color: $tab-link-active-color; - background-color: $tab-dragging-bg-color; - - .btn-nav-tab-close { - opacity: 0; - } - - &::before { - box-shadow: none; - } - - &::after { - background: $tab-dragging-bg-color; - } - } - } - } - - .tab-controls-backward { - flex-shrink: 0; - background-image: linear-gradient( - 270deg, - hsla(var(--dh-color-bg-hsl), 0) 0%, - $background $tab-control-gradient-width - ); - background-clip: content-box; - height: auto; - width: $tab-control-btn-width; - padding: 0; - margin-right: $tab-control-btn-offset; - border-radius: $border-radius; - border: 0; - min-width: unset; - z-index: 2; - } - - .tab-controls-forward { - background-image: linear-gradient( - 90deg, - hsla(var(--dh-color-bg-hsl), 0) 0%, - $background $tab-control-gradient-width - ); - background-clip: content-box; - height: 100%; - border-radius: $border-radius; - width: $tab-control-btn-width; - padding: 0; - margin-left: $tab-control-btn-offset; - } - - .tab-controls { - margin-right: auto; - white-space: nowrap; - z-index: 2; - - .btn { - min-width: unset; - height: $tab-height; - } - - .btn-new-tab { - min-width: auto; - padding: 0 $tab-button-side-padding; - position: relative; - white-space: nowrap; - height: $tab-height - $nav-space; - line-height: $tab-height - $nav-space - $input-border-width * 2; - margin: $nav-space * 0.5 0 $nav-space * 0.5 $tab-button-side-padding; - - &::before { - content: ''; - position: absolute; - left: -$tab-button-side-padding; - width: 1px; - top: ($tab-height - $tab-button-separator-height) * 0.5 - $nav-space * - 0.5 - $input-border-width; - height: $tab-button-separator-height; - background: $tab-button-separator-color; - } - &:hover, - &:focus { - color: $tab-button-hover-color; - text-decoration: none; - } - } - } +.grid-cursor-copy { + cursor: + url('../assets/svg/cursor-copy.svg') 8 8, + copy; } .grid-cursor-linker { @@ -274,6 +41,7 @@ $nav-space: 4px; // give a gap around some buttons for focus area that are in na display: flex; width: 100%; justify-content: space-between; + align-items: center; .btn-link { font-size: $tab-font-size; diff --git a/packages/code-studio/src/main/AppMainContainer.tsx b/packages/code-studio/src/main/AppMainContainer.tsx index 156f102821..f08e334c9b 100644 --- a/packages/code-studio/src/main/AppMainContainer.tsx +++ b/packages/code-studio/src/main/AppMainContainer.tsx @@ -20,6 +20,7 @@ import { Button, InfoModal, LoadingSpinner, + Logo, BasicModal, DebouncedModal, } from '@deephaven/components'; @@ -91,7 +92,6 @@ import JSZip from 'jszip'; import SettingsMenu from '../settings/SettingsMenu'; import AppControlsMenu from './AppControlsMenu'; import { getLayoutStorage, getServerConfigValues } from '../redux'; -import Logo from '../settings/community-wordmark-app.svg'; import './AppMainContainer.scss'; import WidgetList, { WindowMouseEvent } from './WidgetList'; import EmptyDashboard from './EmptyDashboard'; @@ -740,12 +740,7 @@ export class AppMainContainer extends Component< >