From 1fb246b3afaf63fd8ea3d97e5b30fb39150a3ec7 Mon Sep 17 00:00:00 2001 From: Steven Wu Date: Mon, 23 Sep 2024 12:26:04 -0400 Subject: [PATCH 1/8] md component spec --- plugins/ui/DESIGN.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/plugins/ui/DESIGN.md b/plugins/ui/DESIGN.md index af28d9266..28400ef37 100644 --- a/plugins/ui/DESIGN.md +++ b/plugins/ui/DESIGN.md @@ -115,6 +115,32 @@ st.write("Result:", res) - Re-running everything can be costly, need to be conscious with caching/memoization - Does not achieve composability +### Markdown Component + +The markdown component should take a string and render it with Markdown formatting. The component should also support LaTeX with MathJax, and use all the props in the Layout, Spacing, Sizing, Positioning, Accessibility, and Advanced categories from Spectrum. + +```python +from deephaven import ui + +md_example = ui.markdown( + """ + # Heading 1 + + ## Heading 2 + + Text **bold** + + $$ + \eqalign{ + (a+b)^2 &= (a+b)(a+b) \\ + &= a^2 + ab + ba + b^2 \\ + &= a^2 + 2ab + b^2 + } + $$ + """ +) +``` + ## Proposed Syntaxes ### Interactive Query From d6c5e0b2f1ffc98391ea91994a30094a8df4d480 Mon Sep 17 00:00:00 2001 From: Steven Wu Date: Tue, 24 Sep 2024 15:12:15 -0400 Subject: [PATCH 2/8] md component --- package-lock.json | 879 +++++++++++++++++- plugins/ui/DESIGN.md | 24 +- .../src/deephaven/ui/components/__init__.py | 2 + .../src/deephaven/ui/components/markdown.py | 245 +++++ plugins/ui/src/js/package.json | 5 +- plugins/ui/src/js/src/elements/Markdown.tsx | 26 + plugins/ui/src/js/src/elements/index.ts | 1 + .../js/src/elements/model/ElementConstants.ts | 1 + plugins/ui/src/js/src/widget/WidgetUtils.tsx | 2 + 9 files changed, 1168 insertions(+), 17 deletions(-) create mode 100644 plugins/ui/src/deephaven/ui/components/markdown.py create mode 100644 plugins/ui/src/js/src/elements/Markdown.tsx diff --git a/package-lock.json b/package-lock.json index 0124c9306..438fd90b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12711,6 +12711,12 @@ "node": ">=8" } }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "license": "BSD-2-Clause" + }, "node_modules/browserslist": { "version": "4.22.1", "dev": true, @@ -21723,7 +21729,6 @@ }, "node_modules/lodash": { "version": "4.17.21", - "dev": true, "license": "MIT" }, "node_modules/lodash.clamp": { @@ -27397,6 +27402,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, "node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -30152,6 +30166,16 @@ "pbf": "^3.2.1" } }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "license": "MIT", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "license": "MIT", @@ -32197,7 +32221,10 @@ "classnames": "^2.5.1", "json-rpc-2.0": "^1.6.0", "nanoid": "^5.0.7", - "react-redux": "^7.x" + "react-markdown": "^8.0.7", + "react-redux": "^7.x", + "rehype-mathjax": "^3.1.0", + "remark-math": "^5.1.1" }, "devDependencies": { "@types/react": "^17.0.2", @@ -32433,6 +32460,42 @@ "react": ">=16.8.0" } }, + "plugins/ui/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/rehype-mathjax": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-4.0.3.tgz", + "integrity": "sha512-QIwWH9U+r54nMQklVkT1qluxhKyzdPWz9dFwgel3BrseQsWZafRTDTUj8VR8/14nFuRIV2ChuCMz4zpACPoYvg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mathjax": "^0.0.37", + "hast-util-from-dom": "^4.0.0", + "hast-util-to-text": "^3.1.0", + "jsdom": "^20.0.0", + "mathjax-full": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/remark-math": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-5.1.1.tgz", + "integrity": "sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-math": "^2.0.0", + "micromark-extension-math": "^2.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "plugins/ui/src/js/node_modules/@deephaven/filters": { "version": "0.91.0", "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.91.0.tgz", @@ -32728,6 +32791,46 @@ "node": ">=16" } }, + "plugins/ui/src/js/node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "plugins/ui/src/js/node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "plugins/ui/src/js/node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "plugins/ui/src/js/node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "plugins/ui/src/js/node_modules/buffer": { "version": "6.0.3", "funding": [ @@ -32766,6 +32869,58 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "plugins/ui/src/js/node_modules/comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "plugins/ui/src/js/node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "license": "MIT" + }, + "plugins/ui/src/js/node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "plugins/ui/src/js/node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "license": "MIT", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "plugins/ui/src/js/node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, "plugins/ui/src/js/node_modules/event-target-shim": { "version": "6.0.2", "license": "MIT", @@ -32776,6 +32931,250 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "plugins/ui/src/js/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "plugins/ui/src/js/node_modules/hast-util-is-element": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", + "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "plugins/ui/src/js/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "plugins/ui/src/js/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT" + }, + "plugins/ui/src/js/node_modules/property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "plugins/ui/src/js/node_modules/rehype-mathjax": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-3.1.0.tgz", + "integrity": "sha512-Pmz92Y56lBFmDjFc9nIdrKu1xzKSBYevcwKiKiG7b5JJg74q1E62nRSbPEm37vXaXn7Bn25iRsWcP39bJKkMxg==", + "license": "MIT", + "dependencies": { + "@types/mathjax": "^0.0.36", + "hast-util-from-dom": "^3.0.0", + "hast-util-to-text": "^2.0.0", + "jsdom": "^16.0.0", + "mathjax-full": "^3.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/@types/mathjax": { + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@types/mathjax/-/mathjax-0.0.36.tgz", + "integrity": "sha512-TqDJc2GWuTqd/m+G/FbNkN+/TF2OCCHvcawmhIrUaZkdVquMdNZmNiNUkupNg9qctorXXkVLVSogZv1DhmgLmg==", + "license": "MIT" + }, + "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/hast-util-from-dom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-3.0.0.tgz", + "integrity": "sha512-4vQuGiD5Y/wlD7fZiY4mZML/6oh0GOnH38UNyeDFcSTE4AHF0zjKHZfbd+ekVwPvsZXRl8choc99INHUwSPJlg==", + "license": "ISC", + "dependencies": { + "hastscript": "^6.0.0", + "web-namespaces": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/hast-util-to-text": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz", + "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==", + "license": "MIT", + "dependencies": { + "hast-util-is-element": "^1.0.0", + "repeat-string": "^1.0.0", + "unist-util-find-after": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "plugins/ui/src/js/node_modules/space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "plugins/ui/src/js/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, "plugins/ui/src/js/node_modules/typescript": { "version": "4.9.5", "dev": true, @@ -32787,6 +33186,130 @@ "engines": { "node": ">=4.2.0" } + }, + "plugins/ui/src/js/node_modules/unist-util-find-after": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz", + "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==", + "license": "MIT", + "dependencies": { + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "plugins/ui/src/js/node_modules/web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "plugins/ui/src/js/node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "plugins/ui/src/js/node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "plugins/ui/src/js/node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "license": "MIT" + }, + "plugins/ui/src/js/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "license": "MIT", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "plugins/ui/src/js/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "plugins/ui/src/js/node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "license": "Apache-2.0" } }, "dependencies": { @@ -35839,7 +36362,10 @@ "nanoid": "^5.0.7", "react": "^17.0.2", "react-dom": "^17.0.2", + "react-markdown": "^8.0.7", "react-redux": "^7.x", + "rehype-mathjax": "^3.1.0", + "remark-math": "^5.1.1", "typescript": "^4.5.4" }, "dependencies": { @@ -36016,6 +36542,32 @@ "@deephaven/log": "^0.91.0", "lodash.throttle": "^4.1.1" } + }, + "rehype-mathjax": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-4.0.3.tgz", + "integrity": "sha512-QIwWH9U+r54nMQklVkT1qluxhKyzdPWz9dFwgel3BrseQsWZafRTDTUj8VR8/14nFuRIV2ChuCMz4zpACPoYvg==", + "requires": { + "@types/hast": "^2.0.0", + "@types/mathjax": "^0.0.37", + "hast-util-from-dom": "^4.0.0", + "hast-util-to-text": "^3.1.0", + "jsdom": "^20.0.0", + "mathjax-full": "^3.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + } + }, + "remark-math": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-5.1.1.tgz", + "integrity": "sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==", + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-math": "^2.0.0", + "micromark-extension-math": "^2.0.0", + "unified": "^10.0.0" + } } } }, @@ -36240,6 +36792,32 @@ "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.91.0.tgz", "integrity": "sha512-MQAnLvJux9N6ZeCdxWle6NEJ8dqrpxVtkMd9oVqqa0mjmRVPjz6UuT8Hl10VagrYJya1TjKHizW3BrDyhYPQ1w==" }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, "buffer": { "version": "6.0.3", "requires": { @@ -36260,12 +36838,288 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, "event-target-shim": { "version": "6.0.2" }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "hast-util-is-element": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", + "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==" + }, + "hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" + }, + "hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "requires": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + } + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "requires": { + "xtend": "^4.0.0" + } + }, + "rehype-mathjax": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-3.1.0.tgz", + "integrity": "sha512-Pmz92Y56lBFmDjFc9nIdrKu1xzKSBYevcwKiKiG7b5JJg74q1E62nRSbPEm37vXaXn7Bn25iRsWcP39bJKkMxg==", + "requires": { + "@types/mathjax": "^0.0.36", + "hast-util-from-dom": "^3.0.0", + "hast-util-to-text": "^2.0.0", + "jsdom": "^16.0.0", + "mathjax-full": "^3.0.0", + "unist-util-visit": "^2.0.0" + }, + "dependencies": { + "@types/mathjax": { + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@types/mathjax/-/mathjax-0.0.36.tgz", + "integrity": "sha512-TqDJc2GWuTqd/m+G/FbNkN+/TF2OCCHvcawmhIrUaZkdVquMdNZmNiNUkupNg9qctorXXkVLVSogZv1DhmgLmg==" + }, + "hast-util-from-dom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-3.0.0.tgz", + "integrity": "sha512-4vQuGiD5Y/wlD7fZiY4mZML/6oh0GOnH38UNyeDFcSTE4AHF0zjKHZfbd+ekVwPvsZXRl8choc99INHUwSPJlg==", + "requires": { + "hastscript": "^6.0.0", + "web-namespaces": "^1.0.0" + } + }, + "hast-util-to-text": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz", + "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==", + "requires": { + "hast-util-is-element": "^1.0.0", + "repeat-string": "^1.0.0", + "unist-util-find-after": "^3.0.0" + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + } + }, + "unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + } + } + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, "typescript": { "version": "4.9.5", "dev": true + }, + "unist-util-find-after": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz", + "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==", + "requires": { + "unist-util-is": "^4.0.0" + } + }, + "unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==" + }, + "unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, + "ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "requires": {} + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" } } }, @@ -42597,6 +43451,11 @@ "fill-range": "^7.1.1" } }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, "browserslist": { "version": "4.22.1", "dev": true, @@ -48361,8 +49220,7 @@ } }, "lodash": { - "version": "4.17.21", - "dev": true + "version": "4.17.21" }, "lodash.clamp": { "version": "4.0.3" @@ -51895,6 +52753,11 @@ "unified": "^10.0.0" } }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" + }, "require-directory": { "version": "2.1.1", "dev": true @@ -53619,6 +54482,14 @@ "pbf": "^3.2.1" } }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, "w3c-xmlserializer": { "version": "4.0.0", "requires": { diff --git a/plugins/ui/DESIGN.md b/plugins/ui/DESIGN.md index 28400ef37..11bea4a8a 100644 --- a/plugins/ui/DESIGN.md +++ b/plugins/ui/DESIGN.md @@ -117,26 +117,26 @@ st.write("Result:", res) ### Markdown Component -The markdown component should take a string and render it with Markdown formatting. The component should also support LaTeX with MathJax, and use all the props in the Layout, Spacing, Sizing, Positioning, Accessibility, and Advanced categories from Spectrum. +The markdown component should take a string and render it with the CommonMark formatting spec. The component should also support LaTeX with `remark-math` and `rehype-mathjax`. Other plugins and markdown components are not supported. The markdown is wrapped in a `View`, which all props are passed to except for `children`. ```python from deephaven import ui md_example = ui.markdown( - """ - # Heading 1 + r""" +# Heading 1 - ## Heading 2 +## Heading 2 - Text **bold** +Text **bold** - $$ - \eqalign{ - (a+b)^2 &= (a+b)(a+b) \\ - &= a^2 + ab + ba + b^2 \\ - &= a^2 + 2ab + b^2 - } - $$ +$$ +\eqalign{ +(a+b)^2 &= (a+b)(a+b) \\ +&= a^2 + ab + ba + b^2 \\ +&= a^2 + 2ab + b^2 +} +$$ """ ) ``` diff --git a/plugins/ui/src/deephaven/ui/components/__init__.py b/plugins/ui/src/deephaven/ui/components/__init__.py index 9c81acfb5..4088a4c57 100644 --- a/plugins/ui/src/deephaven/ui/components/__init__.py +++ b/plugins/ui/src/deephaven/ui/components/__init__.py @@ -29,6 +29,7 @@ from .list_action_menu import list_action_menu from .list_view import list_view from .make_component import make_component as component +from .markdown import markdown from .number_field import number_field from .panel import panel from .picker import picker @@ -86,6 +87,7 @@ "list_action_group", "list_action_menu", "html", + "markdown", "number_field", "panel", "picker", diff --git a/plugins/ui/src/deephaven/ui/components/markdown.py b/plugins/ui/src/deephaven/ui/components/markdown.py new file mode 100644 index 000000000..5e58a51b8 --- /dev/null +++ b/plugins/ui/src/deephaven/ui/components/markdown.py @@ -0,0 +1,245 @@ +from __future__ import annotations +from typing import Any +from .types import ( + ElementTypes, + AlignSelf, + BorderRadius, + BorderSize, + CSSProperties, + DimensionValue, + JustifySelf, + LayoutFlex, + Position, +) +from .basic import component_element +from ..elements import Element +from ..types import Color + + +def markdown( + children: str, + *, + element_type: ElementTypes | None = None, + flex: LayoutFlex | None = None, + flex_grow: float | None = None, + flex_shrink: float | None = None, + flex_basis: DimensionValue | None = None, + align_self: AlignSelf | None = None, + justify_self: JustifySelf | None = None, + order: int | None = None, + grid_area: str | None = None, + grid_row: str | None = None, + grid_row_start: str | None = None, + grid_row_end: str | None = None, + grid_column: str | None = None, + grid_column_start: str | None = None, + grid_column_end: str | None = None, + overflow: str | None = None, + margin: DimensionValue | None = None, + margin_top: DimensionValue | None = None, + margin_bottom: DimensionValue | None = None, + margin_start: DimensionValue | None = None, + margin_end: DimensionValue | None = None, + margin_x: DimensionValue | None = None, + margin_y: DimensionValue | None = None, + padding: DimensionValue | None = None, + padding_top: DimensionValue | None = None, + padding_bottom: DimensionValue | None = None, + padding_start: DimensionValue | None = None, + padding_end: DimensionValue | None = None, + padding_x: DimensionValue | None = None, + padding_y: DimensionValue | None = None, + width: DimensionValue | None = None, + height: DimensionValue | None = None, + min_width: DimensionValue | None = None, + min_height: DimensionValue | None = None, + max_width: DimensionValue | None = None, + max_height: DimensionValue | None = None, + background_color: Color | None = None, + border_width: BorderSize | None = None, + border_start_width: BorderSize | None = None, + border_end_width: BorderSize | None = None, + border_top_width: BorderSize | None = None, + border_bottom_width: BorderSize | None = None, + border_x_width: BorderSize | None = None, + border_y_width: BorderSize | None = None, + border_color: Color | None = None, + border_start_color: Color | None = None, + border_end_color: Color | None = None, + border_top_color: Color | None = None, + border_bottom_color: Color | None = None, + border_x_color: Color | None = None, + border_y_color: Color | None = None, + border_radius: BorderRadius | None = None, + border_top_start_radius: BorderRadius | None = None, + border_top_end_radius: BorderRadius | None = None, + border_bottom_start_radius: BorderRadius | None = None, + border_bottom_end_radius: BorderRadius | None = None, + position: Position | None = None, + top: DimensionValue | None = None, + bottom: DimensionValue | None = None, + start: DimensionValue | None = None, + end: DimensionValue | None = None, + left: DimensionValue | None = None, + right: DimensionValue | None = None, + z_index: int | None = None, + is_hidden: bool | None = None, + id: str | None = None, + UNSAFE_class_name: str | None = None, + UNSAFE_style: CSSProperties | None = None, + key: str | None = None, +) -> Element: + """ + View is a general purpose container with no specific semantics that can be used for custom styling purposes. It supports Spectrum style props to ensure consistency with other Spectrum components. + + Args: + children: The markdown string. + element_type: The type of element to render. + flex: When used in a flex layout, specifies how the element will grow or shrink to fit the space available. + flex_grow: When used in a flex layout, specifies how the element will grow to fit the space available. + flex_shrink: When used in a flex layout, specifies how the element will shrink to fit the space available. + flex_basis: When used in a flex layout, specifies the initial main size of the element. + align_self: Overrides the alignItems property of a flex or grid container. + justify_self: Species how the element is justified inside a flex or grid container. + order: The layout order for the element within a flex or grid container. + grid_area: When used in a grid layout specifies, specifies the named grid area that the element should be placed in within the grid. + grid_row: When used in a grid layout, specifies the row the element should be placed in within the grid. + grid_column: When used in a grid layout, specifies the column the element should be placed in within the grid. + grid_row_start: When used in a grid layout, specifies the starting row to span within the grid. + grid_row_end: When used in a grid layout, specifies the ending row to span within the grid. + grid_column_start: When used in a grid layout, specifies the starting column to span within the grid. + grid_column_end: When used in a grid layout, specifies the ending column to span within the grid. + overflow: Specifies what to do when the elment's content is too long to fit its size. + margin: The margin for all four sides of the element. + margin_top: The margin for the top side of the element. + margin_bottom: The margin for the bottom side of the element. + margin_start: The margin for the logical start side of the element, depending on layout direction. + margin_end: The margin for the logical end side of the element, depending on layout direction. + margin_x: The margin for the left and right sides of the element. + margin_y: The margin for the top and bottom sides of the element. + padding: The padding for all four sides of the element. + padding_top: The padding for the top side of the element. + padding_bottom: The padding for the bottom side of the element. + padding_start: The padding for the logical start side of the element, depending on layout direction. + padding_end: The padding for the logical end side of the element, depending on layout direction. + padding_x: The padding for the left and right sides of the element. + padding_y: The padding for the top and bottom sides of the element. + width: The width of the element. + min_width: The minimum width of the element. + max_width: The maximum width of the element. + height: The height of the element. + min_height: The minimum height of the element. + max_height: The maximum height of the element. + background_color: The background color of the element. + border_width: The width of the border for all four sides of the element. + border_start_width: The width of the border for the start side of the element, depending on layout direction. + border_end_width: The width of the border for the end side of the element, depending on layout direction. + border_top_width: The width of the border for the top side of the element. + border_bottom_width: The width of the border for the bottom side of the element. + border_x_width: The width of the border for the left and right sides of the element. + border_y_width: The width of the border for the top and bottom sides of the element. + + border_color: The color of the border for all four sides of the element. + border_start_color: The color of the border for the start side of the element, depending on layout direction. + border_end_color: The color of the border for the end side of the element, depending on layout direction. + border_top_color: The color of the border for the top side of the element. + border_bottom_color: The color of the border for the bottom side of the element. + border_x_color: The color of the border for the left and right sides of the element. + border_y_color: The color of the border for the top and bottom sides of the element. + + border_radius: The radius of the border for all four corners of the element. + border_top_start_radius: The radius of the border for the top start corner of the element. + border_top_end_radius: The radius of the border for the top end corner of the element. + border_bottom_start_radius: The radius of the border for the bottom start corner of the element. + border_bottom_end_radius: The radius of the border for the bottom end corner of the element. + position: The position of the element. + top: The distance from the top of the containing element. + bottom: The distance from the bottom of the containing element. + left: The distance from the left of the containing element. + right: The distance from the right of the containing element. + start: The distance from the start of the containing element, depending on layout direction. + end: The distance from the end of the containing element, depending on layout direction. + z_index: The stack order of the element. + is_hidden: Whether the element is hidden. + id: The unique identifier of the element. + UNSAFE_class_name: A CSS class to apply to the element. + UNSAFE_style: A CSS style to apply to the element. + key: A unique identifier used by React to render elements in a list. + + Returns: + The rendered view. + """ + + return component_element( + "Markdown", + children=children, + element_type=element_type, + flex=flex, + flex_grow=flex_grow, + flex_shrink=flex_shrink, + flex_basis=flex_basis, + align_self=align_self, + justify_self=justify_self, + order=order, + grid_area=grid_area, + grid_row=grid_row, + grid_row_start=grid_row_start, + grid_row_end=grid_row_end, + grid_column=grid_column, + grid_column_start=grid_column_start, + grid_column_end=grid_column_end, + overflow=overflow, + margin=margin, + margin_top=margin_top, + margin_bottom=margin_bottom, + margin_start=margin_start, + margin_end=margin_end, + margin_x=margin_x, + margin_y=margin_y, + padding=padding, + padding_top=padding_top, + padding_bottom=padding_bottom, + padding_start=padding_start, + padding_end=padding_end, + padding_x=padding_x, + padding_y=padding_y, + width=width, + height=height, + min_width=min_width, + min_height=min_height, + max_width=max_width, + max_height=max_height, + background_color=background_color, + border_width=border_width, + border_start_width=border_start_width, + border_end_width=border_end_width, + border_top_width=border_top_width, + border_bottom_width=border_bottom_width, + border_x_width=border_x_width, + border_y_width=border_y_width, + border_color=border_color, + border_start_color=border_start_color, + border_end_color=border_end_color, + border_top_color=border_top_color, + border_bottom_color=border_bottom_color, + border_x_color=border_x_color, + border_y_color=border_y_color, + border_radius=border_radius, + border_top_start_radius=border_top_start_radius, + border_top_end_radius=border_top_end_radius, + border_bottom_start_radius=border_bottom_start_radius, + border_bottom_end_radius=border_bottom_end_radius, + position=position, + top=top, + bottom=bottom, + start=start, + end=end, + left=left, + right=right, + z_index=z_index, + is_hidden=is_hidden, + id=id, + UNSAFE_class_name=UNSAFE_class_name, + UNSAFE_style=UNSAFE_style, + key=key, + ) diff --git a/plugins/ui/src/js/package.json b/plugins/ui/src/js/package.json index f1c84fc46..2f3e03c79 100644 --- a/plugins/ui/src/js/package.json +++ b/plugins/ui/src/js/package.json @@ -61,7 +61,10 @@ "classnames": "^2.5.1", "json-rpc-2.0": "^1.6.0", "nanoid": "^5.0.7", - "react-redux": "^7.x" + "react-markdown": "^8.0.7", + "react-redux": "^7.x", + "rehype-mathjax": "^3.1.0", + "remark-math": "^5.1.1" }, "publishConfig": { "access": "public" diff --git a/plugins/ui/src/js/src/elements/Markdown.tsx b/plugins/ui/src/js/src/elements/Markdown.tsx new file mode 100644 index 000000000..1f850287e --- /dev/null +++ b/plugins/ui/src/js/src/elements/Markdown.tsx @@ -0,0 +1,26 @@ +import remarkMath from 'remark-math'; +import rehypeMathjax from 'rehype-mathjax'; +import ReactMarkdown from 'react-markdown'; +import { View, ViewProps } from '@deephaven/components'; + +type MarkdownProps = Omit & { + children: string; +}; + +export function Markdown({ children, ...props }: MarkdownProps): JSX.Element { + return ( + // eslint-disable-next-line react/jsx-props-no-spreading + + + {children} + + + ); +} + +Markdown.displayName = 'Markdown'; + +export default Markdown; diff --git a/plugins/ui/src/js/src/elements/index.ts b/plugins/ui/src/js/src/elements/index.ts index cd0502066..407009c69 100644 --- a/plugins/ui/src/js/src/elements/index.ts +++ b/plugins/ui/src/js/src/elements/index.ts @@ -12,6 +12,7 @@ export * from './IconElementView'; export * from './IllustratedMessage'; export * from './Image'; export * from './ListView'; +export * from './Markdown'; export * from './model'; export * from './ObjectView'; export * from './Picker'; diff --git a/plugins/ui/src/js/src/elements/model/ElementConstants.ts b/plugins/ui/src/js/src/elements/model/ElementConstants.ts index 737e2072a..1afeb642e 100644 --- a/plugins/ui/src/js/src/elements/model/ElementConstants.ts +++ b/plugins/ui/src/js/src/elements/model/ElementConstants.ts @@ -46,6 +46,7 @@ export const ELEMENT_NAME = { listActionGroup: uiComponentName('ListActionGroup'), listActionMenu: uiComponentName('ListActionMenu'), listView: uiComponentName('ListView'), + markdown: uiComponentName('Markdown'), numberField: uiComponentName('NumberField'), picker: uiComponentName('Picker'), radio: uiComponentName('Radio'), diff --git a/plugins/ui/src/js/src/widget/WidgetUtils.tsx b/plugins/ui/src/js/src/widget/WidgetUtils.tsx index 56f7f43f2..1d203b780 100644 --- a/plugins/ui/src/js/src/widget/WidgetUtils.tsx +++ b/plugins/ui/src/js/src/widget/WidgetUtils.tsx @@ -58,6 +58,7 @@ import { IllustratedMessage, Image, ListView, + Markdown, Picker, Radio, RadioGroup, @@ -122,6 +123,7 @@ export const elementComponentMap = { [ELEMENT_NAME.listActionGroup]: ListActionGroup, [ELEMENT_NAME.listActionMenu]: ListActionMenu, [ELEMENT_NAME.listView]: ListView, + [ELEMENT_NAME.markdown]: Markdown, [ELEMENT_NAME.numberField]: NumberField, [ELEMENT_NAME.picker]: Picker, [ELEMENT_NAME.radio]: Radio, From 5236a172996ac41bc089e0de365142904cab1753 Mon Sep 17 00:00:00 2001 From: Steven Wu Date: Tue, 24 Sep 2024 16:55:51 -0400 Subject: [PATCH 3/8] update jest transform --- jest.config.base.cjs | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/jest.config.base.cjs b/jest.config.base.cjs index cf5744ce0..ff3a78698 100644 --- a/jest.config.base.cjs +++ b/jest.config.base.cjs @@ -1,11 +1,48 @@ const path = require('path'); +// List of node_modules that need to be transformed from ESM to CJS for jest to work +const nodeModulesToTransform = [ + '@deephaven', + 'nanoid', + // monaco + 'monaco-editor', + // plotly.js dependencies + 'd3-interpolate', + 'd3-color', + // react-markdown and its dependencies + 'react-markdown', + 'vfile', + 'vfile-message', + 'unist-util.*', + 'unified', + 'bail', + 'is-plain-obj', + 'trough', + 'remark.*', + 'mdast-util.*', + 'micromark.*', + 'decode-named-character-reference', + 'trim-lines', + 'property-information', + 'hast-util.*', + '.*separated-tokens', + 'ccount', + 'devlop', + 'escape-string-regexp', + 'markdown-table', + 'zwitch', + 'longest-streak', + 'rehype.*', + 'web-namespaces', + 'hastscript', +]; + module.exports = { transform: { '^.+\\.(ts|tsx|js|jsx)$': ['babel-jest', { rootMode: 'upward' }], }, transformIgnorePatterns: [ - '/node_modules/(?!(@deephaven|monaco-editor|d3-interpolate|d3-color|nanoid)/)', + `node_modules/(?!(${nodeModulesToTransform.join('|')})/)`, ], moduleNameMapper: { 'theme-([^/]+?)\\.css(\\?(?:inline|raw))?$': path.join( From 85b7edf918d5ee439ed12b43c4774e775602b2dd Mon Sep 17 00:00:00 2001 From: Steven Wu Date: Thu, 26 Sep 2024 10:55:00 -0400 Subject: [PATCH 4/8] add code component --- package-lock.json | 1741 +++++-------------- plugins/ui/src/js/package.json | 33 +- plugins/ui/src/js/src/elements/Markdown.tsx | 23 + plugins/ui/src/js/vite.config.ts | 1 + 4 files changed, 492 insertions(+), 1306 deletions(-) diff --git a/package-lock.json b/package-lock.json index 438fd90b6..a0d9f1d0d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12711,12 +12711,6 @@ "node": ">=8" } }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "license": "BSD-2-Clause" - }, "node_modules/browserslist": { "version": "4.22.1", "dev": true, @@ -21729,6 +21723,7 @@ }, "node_modules/lodash": { "version": "4.17.21", + "dev": true, "license": "MIT" }, "node_modules/lodash.clamp": { @@ -27402,15 +27397,6 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, "node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -30166,16 +30152,6 @@ "pbf": "^3.2.1" } }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "license": "MIT", @@ -32199,23 +32175,24 @@ "version": "0.21.0", "license": "Apache-2.0", "dependencies": { - "@deephaven/chart": "^0.91.0", - "@deephaven/components": "^0.91.0", - "@deephaven/dashboard": "^0.91.0", - "@deephaven/dashboard-core-plugins": "^0.91.0", - "@deephaven/golden-layout": "^0.91.0", - "@deephaven/grid": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/iris-grid": "^0.91.0", - "@deephaven/jsapi-bootstrap": "^0.91.0", - "@deephaven/jsapi-components": "^0.91.0", + "@deephaven/chart": "^0.95.0", + "@deephaven/components": "^0.95.0", + "@deephaven/console": "^0.95.0", + "@deephaven/dashboard": "^0.95.0", + "@deephaven/dashboard-core-plugins": "^0.95.0", + "@deephaven/golden-layout": "^0.95.0", + "@deephaven/grid": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/iris-grid": "^0.95.0", + "@deephaven/jsapi-bootstrap": "^0.95.0", + "@deephaven/jsapi-components": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.35.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/plugin": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/redux": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/plugin": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/redux": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@fortawesome/react-fontawesome": "^0.2.0", "@internationalized/date": "^3.5.5", "classnames": "^2.5.1", @@ -32223,7 +32200,8 @@ "nanoid": "^5.0.7", "react-markdown": "^8.0.7", "react-redux": "^7.x", - "rehype-mathjax": "^3.1.0", + "rehype-mathjax": "^4.0.3", + "remark-gfm": "^3.0.1", "remark-math": "^5.1.1" }, "devDependencies": { @@ -32238,17 +32216,18 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/chart": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.91.0.tgz", - "integrity": "sha512-UfZY3tPn+RrCYyNfH0DWnmUmvL0LRO0QuALT56GQTTZoWrGlZbsYUsk91sZW2u+KMLxHXkvKQTfLsuJmxP2y+w==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.95.0.tgz", + "integrity": "sha512-1yB+qc8GtpM4XokT2l4NCLsWlHPSvy3smdSL9al7hvr1N20jwlGPfiNEVgals/HH+FDptw1E/qVSkVwPzKf3hg==", + "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^0.91.0", - "@deephaven/icons": "^0.91.0", + "@deephaven/components": "^0.95.0", + "@deephaven/icons": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/utils": "^0.95.0", "buffer": "^6.0.3", "fast-deep-equal": "^3.1.3", "lodash.debounce": "^4.0.8", @@ -32267,15 +32246,16 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/components": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.91.0.tgz", - "integrity": "sha512-GmEmOqw/njgPtHnC7i09c2q9Og7qFFKqfqklJvoha6kOZwiVjAPaign2ifmy388vvWMRhtwF8pK3mzjegj1xrQ==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.95.0.tgz", + "integrity": "sha512-LRLV+HMnd18KlJyNR1p5eWZiu1PnCfQUW0WQDes7sgtj/vaVN11xiVWQJxc09RITw4CxBvElC9HZ+/JQOHZnGQ==", + "license": "Apache-2.0", "dependencies": { "@adobe/react-spectrum": "3.35.1", - "@deephaven/icons": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", "@internationalized/date": "^3.5.5", @@ -32308,17 +32288,72 @@ "react-is": ">=16.8.0" } }, + "plugins/ui/src/js/node_modules/@deephaven/console": { + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.95.0.tgz", + "integrity": "sha512-JSM6w7iH0Pxbl1AMQyz54vyRch+d3HD2PGDfrhdc+ezvTv5aGqLD7THStGGe1y1byig0OE4SBwR48crlHpNBIA==", + "license": "Apache-2.0", + "dependencies": { + "@deephaven/chart": "^0.95.0", + "@deephaven/components": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/jsapi-bootstrap": "^0.95.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/storage": "^0.95.0", + "@deephaven/utils": "^0.95.0", + "@fortawesome/react-fontawesome": "^0.2.0", + "classnames": "^2.3.1", + "linkifyjs": "^4.1.0", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "memoize-one": "^5.1.1", + "memoizee": "^0.4.15", + "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", + "papaparse": "5.3.2", + "popper.js": "^1.16.1", + "prop-types": "^15.7.2", + "shell-quote": "^1.7.2" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "plugins/ui/src/js/node_modules/@deephaven/console/node_modules/@deephaven/storage": { + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.95.0.tgz", + "integrity": "sha512-Gsc/p9fHrrSdzMtZ/a6/IpSzs2VT3WTOBSspWD0G7P0v682adXl7d25YFdl6uYIQSMq/tBU+JtTgAegMN5zfGg==", + "license": "Apache-2.0", + "dependencies": { + "@deephaven/filters": "^0.95.0", + "@deephaven/log": "^0.95.0", + "lodash.throttle": "^4.1.1" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, "plugins/ui/src/js/node_modules/@deephaven/dashboard": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.91.0.tgz", - "integrity": "sha512-A8L2emY3o2qYmUdh0O3j7y5Za/gF912+bP0gVxDnGG5ayMuWUVJAl8Mtluj5Coz/MxP48VdyEGQGuNNh2ggnvw==", - "dependencies": { - "@deephaven/components": "^0.91.0", - "@deephaven/golden-layout": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/redux": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.95.0.tgz", + "integrity": "sha512-ehecVa92ZplXX31AWiWaT29BWuvOZq/Mr0fRhHOgtvFvjMyfl+u9bIZ8xmBguVbjn2ZhMdDwygVzw1uvUx7Yiw==", + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.95.0", + "@deephaven/golden-layout": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/redux": "^0.95.0", + "@deephaven/utils": "^0.95.0", "fast-deep-equal": "^3.1.3", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", @@ -32335,30 +32370,31 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/dashboard-core-plugins": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/dashboard-core-plugins/-/dashboard-core-plugins-0.91.0.tgz", - "integrity": "sha512-Y7mBd5feexOi5Q6Os/3YNXTSShIEzmw2TMdvDnup+6WEHx29xuw0RVRXI0Ru52MKTB7mdkNAwHXerYGGXy3zrg==", - "dependencies": { - "@deephaven/chart": "^0.91.0", - "@deephaven/components": "^0.91.0", - "@deephaven/console": "^0.91.0", - "@deephaven/dashboard": "^0.91.0", - "@deephaven/file-explorer": "^0.91.0", - "@deephaven/filters": "^0.91.0", - "@deephaven/golden-layout": "^0.91.0", - "@deephaven/grid": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/iris-grid": "^0.91.0", - "@deephaven/jsapi-bootstrap": "^0.91.0", - "@deephaven/jsapi-components": "^0.91.0", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard-core-plugins/-/dashboard-core-plugins-0.95.0.tgz", + "integrity": "sha512-+a2MEYZ2e/63MWN8PHd+a+evXZbjfBxD4ltIJ89A65zKdS94RGLvevoUHuFpGCOlDmA/7JTjBHPZbgEyaFbw1A==", + "license": "Apache-2.0", + "dependencies": { + "@deephaven/chart": "^0.95.0", + "@deephaven/components": "^0.95.0", + "@deephaven/console": "^0.95.0", + "@deephaven/dashboard": "^0.95.0", + "@deephaven/file-explorer": "^0.95.0", + "@deephaven/filters": "^0.95.0", + "@deephaven/golden-layout": "^0.95.0", + "@deephaven/grid": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/iris-grid": "^0.95.0", + "@deephaven/jsapi-bootstrap": "^0.95.0", + "@deephaven/jsapi-components": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/plugin": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/redux": "^0.91.0", - "@deephaven/storage": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/plugin": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/redux": "^0.95.0", + "@deephaven/storage": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", "fast-deep-equal": "^3.1.3", @@ -32385,52 +32421,17 @@ "react-redux": "^7.2.4" } }, - "plugins/ui/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/console": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.91.0.tgz", - "integrity": "sha512-9jdvLDiygaJKf4dC6O5Zg5gZ7SVg2Y+hhhmwdALCfFU3oP56d8/ABCpzOqQ/EFpUw9u9M5o+scKKfD4knHjYZg==", - "dependencies": { - "@deephaven/chart": "^0.91.0", - "@deephaven/components": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/jsapi-bootstrap": "^0.91.0", - "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/storage": "^0.91.0", - "@deephaven/utils": "^0.91.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "linkifyjs": "^4.1.0", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "nanoid": "^5.0.7", - "papaparse": "5.3.2", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "shell-quote": "^1.7.2" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, "plugins/ui/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/file-explorer": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/file-explorer/-/file-explorer-0.91.0.tgz", - "integrity": "sha512-nj9xk1Sc4q9MPbUSnFcOylgPTdhIhY8nopoaV9kKcqP1F7GfS86B83DSeILVc59OQDHeB9/+CLIb5kdhVrJglA==", - "dependencies": { - "@deephaven/components": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/storage": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/file-explorer/-/file-explorer-0.95.0.tgz", + "integrity": "sha512-7fuE6aVEuMVDTPaM1Z3S1EdzdeQg/hSW9Xjtt8IUJkYgqMlx77hPy+Dv4ob3YxImhDYVkzVXujiLyypk/Gl5lA==", + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/storage": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", @@ -32445,12 +32446,13 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/@deephaven/storage": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.91.0.tgz", - "integrity": "sha512-eEEj0UAJOSosad8kxuENbP2ByIyr1IBMHtWvu8sJ4TX2s3VphNunFnHgwP5ekA3UpjvwtxhoUvCRXc2iaNVxEQ==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.95.0.tgz", + "integrity": "sha512-Gsc/p9fHrrSdzMtZ/a6/IpSzs2VT3WTOBSspWD0G7P0v682adXl7d25YFdl6uYIQSMq/tBU+JtTgAegMN5zfGg==", + "license": "Apache-2.0", "dependencies": { - "@deephaven/filters": "^0.91.0", - "@deephaven/log": "^0.91.0", + "@deephaven/filters": "^0.95.0", + "@deephaven/log": "^0.95.0", "lodash.throttle": "^4.1.1" }, "engines": { @@ -32480,36 +32482,22 @@ "url": "https://opencollective.com/unified" } }, - "plugins/ui/src/js/node_modules/@deephaven/dashboard-core-plugins/node_modules/remark-math": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-5.1.1.tgz", - "integrity": "sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-math": "^2.0.0", - "micromark-extension-math": "^2.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "plugins/ui/src/js/node_modules/@deephaven/filters": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.91.0.tgz", - "integrity": "sha512-ELWgt6m98+OGoRdvjhhTXUUSzo1ry/h9RTVDnmRK9qwGoT3rnqYvrqyFaOzaVLhsrK/3iYZoM2yLQkq0dPikVA==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.95.0.tgz", + "integrity": "sha512-eU5VtrCJgdPzikML5Y4mW3tkuPIxs99+OTZent22gH6Dm3PBt+gjPrjpLpm4IHTdtR1SL2TSDi1ETf2j5+eO9Q==", + "license": "Apache-2.0", "engines": { "node": ">=16" } }, "plugins/ui/src/js/node_modules/@deephaven/golden-layout": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.91.0.tgz", - "integrity": "sha512-WzoIhOp1aENZJrVagE8W4M1zEc76rkTm0MxYIduBO1RtqRjpunoAR+RWUmMwfPaOIp8dxX+RfJz+YFlKdZEs6A==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.95.0.tgz", + "integrity": "sha512-OyKW/v+KK9QiRLMJMOcv+49z3UjW8BO2xnPdJN2Nt1Aep18QUIFdFK/nm45SqfL7gkecOrOEDcElyD4aWz0tcw==", + "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^0.91.0", + "@deephaven/components": "^0.95.0", "jquery": "^3.6.0", "nanoid": "^5.0.7" }, @@ -32519,11 +32507,12 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/grid": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.91.0.tgz", - "integrity": "sha512-fOv2RrXKWIpwH4G+6pypFE1WIbYYjz8K4PcRvwPdob8RRI2C83HpIWQS/XSot0WqzITu2rqOYwWxfHu7+BGcyg==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.95.0.tgz", + "integrity": "sha512-iODcW/uRLqh85MsC6QCnYVCoPzsBZNs6wN1Kjb71XR/AhtrMskgfJb3kJasysfKLEC5Prk8BwvGu8jdIyNs8qw==", + "license": "Apache-2.0", "dependencies": { - "@deephaven/utils": "^0.91.0", + "@deephaven/utils": "^0.95.0", "classnames": "^2.3.1", "color-convert": "^2.0.1", "event-target-shim": "^6.0.2", @@ -32541,9 +32530,10 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/icons": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.91.0.tgz", - "integrity": "sha512-b+b//+gk8ZJz+JXURCw99FSQlExN89V3+F+LWVHJc+L3bzMa7pR2vhMVTKG0hG2tqF9ZDU8cYWGIS6o+6uiv2w==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.95.0.tgz", + "integrity": "sha512-BJ0SS7GbJYJ2V0u5on1VDx2v+DZ77t18MqvfXWvYuV5DjODwMRjP8XsEKyH05c+jdXMZsyB+gv2+jysPTGcSBw==", + "license": "Apache-2.0", "dependencies": { "@fortawesome/fontawesome-common-types": "^6.1.1" }, @@ -32553,22 +32543,23 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/iris-grid": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.91.0.tgz", - "integrity": "sha512-OgJvZg9z0KBbVoAXgPQiuJDScOrtfn8CouWd7G2WkJtVxK3OC3Rdeg5QLv8n54Lg2nwtrhuow6DV4oxybAv8gA==", - "dependencies": { - "@deephaven/components": "^0.91.0", - "@deephaven/console": "^0.91.0", - "@deephaven/filters": "^0.91.0", - "@deephaven/grid": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/jsapi-components": "^0.91.0", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.95.0.tgz", + "integrity": "sha512-wOs66BHXR0GPBAe2UIEQIG/Av8/Ju+96+u6+1dzS5afFfiKSoIxNxTi+HOklj9QkCDcAbPQ/pg6/eZThWfZS4g==", + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.95.0", + "@deephaven/console": "^0.95.0", + "@deephaven/filters": "^0.95.0", + "@deephaven/grid": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/jsapi-components": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/storage": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/storage": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@dnd-kit/core": "^6.1.0", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.2", @@ -32594,49 +32585,14 @@ "react-dom": ">=16.8.0" } }, - "plugins/ui/src/js/node_modules/@deephaven/iris-grid/node_modules/@deephaven/console": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.91.0.tgz", - "integrity": "sha512-9jdvLDiygaJKf4dC6O5Zg5gZ7SVg2Y+hhhmwdALCfFU3oP56d8/ABCpzOqQ/EFpUw9u9M5o+scKKfD4knHjYZg==", - "dependencies": { - "@deephaven/chart": "^0.91.0", - "@deephaven/components": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/jsapi-bootstrap": "^0.91.0", - "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/storage": "^0.91.0", - "@deephaven/utils": "^0.91.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "linkifyjs": "^4.1.0", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "nanoid": "^5.0.7", - "papaparse": "5.3.2", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "shell-quote": "^1.7.2" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, "plugins/ui/src/js/node_modules/@deephaven/iris-grid/node_modules/@deephaven/storage": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.91.0.tgz", - "integrity": "sha512-eEEj0UAJOSosad8kxuENbP2ByIyr1IBMHtWvu8sJ4TX2s3VphNunFnHgwP5ekA3UpjvwtxhoUvCRXc2iaNVxEQ==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.95.0.tgz", + "integrity": "sha512-Gsc/p9fHrrSdzMtZ/a6/IpSzs2VT3WTOBSspWD0G7P0v682adXl7d25YFdl6uYIQSMq/tBU+JtTgAegMN5zfGg==", + "license": "Apache-2.0", "dependencies": { - "@deephaven/filters": "^0.91.0", - "@deephaven/log": "^0.91.0", + "@deephaven/filters": "^0.95.0", + "@deephaven/log": "^0.95.0", "lodash.throttle": "^4.1.1" }, "engines": { @@ -32647,15 +32603,16 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/jsapi-bootstrap": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.91.0.tgz", - "integrity": "sha512-00irzZyhEIqRn000ZH38+zk1tOjBsaWhn35/weg5HNL4gbBtW4sg5+hsDHRzYhbEqbJDErvgNUPml23Rll732g==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.95.0.tgz", + "integrity": "sha512-UJ9akQyFFRJKpf9vm0o9jp3JZWjjOXIR6KHUXAUgNoEccTTSdH1xMkHFrfTGuXYFtnSC3L7HCSzW07EcEXoZtQ==", + "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^0.91.0", + "@deephaven/components": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/utils": "^0.91.0" + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/utils": "^0.95.0" }, "engines": { "node": ">=16" @@ -32665,17 +32622,18 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/jsapi-components": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.91.0.tgz", - "integrity": "sha512-h5pgltU/S5+NoaYKdOJbCyLvx+6zmakiXIVS4GXo5P+mnOHyALvylxDT29jkGcgbPjNLLejWwjaIGHSSWWGG8w==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.95.0.tgz", + "integrity": "sha512-9WCbJHEcblUXHOMThHxHrb4FFZQ8EZeQlPJc0vK1aTTi5m4S/rIkGMiCD2maJyi5wDlDj9q9syUl1qLDCl2qtQ==", + "license": "Apache-2.0", "dependencies": { - "@deephaven/components": "^0.91.0", - "@deephaven/jsapi-bootstrap": "^0.91.0", + "@deephaven/components": "^0.95.0", + "@deephaven/jsapi-bootstrap": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@types/js-cookie": "^3.0.3", "classnames": "^2.3.2", "js-cookie": "^3.0.5", @@ -32695,14 +32653,15 @@ "integrity": "sha512-X35g2ktmXbiTwjMNF20IkuNawJJ6Tlvrv23VuUVIjWHkpWcmyCYWIBle2zo7QAF6nnJpkccwFKJiC+TIkWl7hg==" }, "plugins/ui/src/js/node_modules/@deephaven/jsapi-utils": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.91.0.tgz", - "integrity": "sha512-7+52u4fGeCU5Zy+bUi+uqv/tNujq1fdaBw4XjEcC+KSW3ojPo+xzpdl8E0L7IPYgD2ep/IPosaq/kbLp6JU3+g==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.95.0.tgz", + "integrity": "sha512-nr0MK33wDl9deaO2909BV538APzd8teMPDeXkmySM3ayEFVXjAFFDqONTY5ysLFcEtMSDiSXZBizWrKtpsjtaA==", + "license": "Apache-2.0", "dependencies": { - "@deephaven/filters": "^0.91.0", + "@deephaven/filters": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/log": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/log": "^0.95.0", + "@deephaven/utils": "^0.95.0", "lodash.clamp": "^4.0.3", "nanoid": "^5.0.7" }, @@ -32711,9 +32670,10 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/log": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.91.0.tgz", - "integrity": "sha512-IXT6+0XiR+5bhm5+3XELZFMTKPMZBmdckhswdJibrID0l79wgGiqKiqSnBjn1mFOGuOO+JYqU4KzoaIRJXZdyA==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.95.0.tgz", + "integrity": "sha512-2p3X+FlSDOlBVCBMy8N1hL6wU4akIDHY1yhJ0mrUkHEwPn3ESAGpLlWWvjY7wHt9mvgFGbjIjpgsQPA9x06EnA==", + "license": "Apache-2.0", "dependencies": { "event-target-shim": "^6.0.2" }, @@ -32722,18 +32682,19 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/plugin": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.91.0.tgz", - "integrity": "sha512-ip2b2VG8wus88ySOUaKg4XfrCtgLd7eH6f8CswuFnSNbYVcg+UurbGJRvBAvX1F8JYgwJeWIzyiEHkYKYT1i4g==", - "dependencies": { - "@deephaven/components": "^0.91.0", - "@deephaven/golden-layout": "^0.91.0", - "@deephaven/grid": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/iris-grid": "^0.91.0", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.95.0.tgz", + "integrity": "sha512-yUHkEzgT6JtbLfOhbMPOoQLbi8/TrZ+/pHo2FG84sOmv4nGAcXsuBw9yjcrzRF17nLoRT7sihXIayAvlghZ1wQ==", + "license": "Apache-2.0", + "dependencies": { + "@deephaven/components": "^0.95.0", + "@deephaven/golden-layout": "^0.95.0", + "@deephaven/grid": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/iris-grid": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", "@fortawesome/fontawesome-common-types": "^6.1.1", "@fortawesome/react-fontawesome": "^0.2.0" }, @@ -32745,13 +32706,14 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/react-hooks": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.91.0.tgz", - "integrity": "sha512-G08G2RBPREpQIEYJ0FelvwqzsSqaq5/uG36kFspyxa8pkxQ5Lf9Bxqsnx/McR4sRYzVlbr1ADcL7r2Ecl19Ddg==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.95.0.tgz", + "integrity": "sha512-bC0gAgZcl5GrjSThdtUNMeXrjhE4z6iZk9YgVo6QqINq0BCMEo4C8ZmAozWxyJoiyDMhmALXI2MaQ7uaoTfgyQ==", + "license": "Apache-2.0", "dependencies": { "@adobe/react-spectrum": "3.35.1", - "@deephaven/log": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/log": "^0.95.0", + "@deephaven/utils": "^0.95.0", "lodash.debounce": "^4.0.8", "lodash.throttle": "^4.1.1", "nanoid": "^5.0.7" @@ -32764,14 +32726,15 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/redux": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.91.0.tgz", - "integrity": "sha512-1JnXcBUpxQDLT65S2SPA4hkoKc0tCkThzTV28zKQy+4pqGP5oD5QmlcgtUkeTqQPsNqEf8ZO9XZjkZHpQ0xqVQ==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.95.0.tgz", + "integrity": "sha512-8sI3J0G3FDyIudOiBKTyhbfe2srRC77/QsSHF/zuQJbBF7K4RB8JIbiZktY9HBf6kMv1RnCab0fZlzxtSRGOyQ==", + "license": "Apache-2.0", "dependencies": { "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/plugin": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/plugin": "^0.95.0", "fast-deep-equal": "^3.1.3", "proxy-memoize": "^3.0.0", "redux-thunk": "2.4.1" @@ -32784,53 +32747,14 @@ } }, "plugins/ui/src/js/node_modules/@deephaven/utils": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.91.0.tgz", - "integrity": "sha512-MQAnLvJux9N6ZeCdxWle6NEJ8dqrpxVtkMd9oVqqa0mjmRVPjz6UuT8Hl10VagrYJya1TjKHizW3BrDyhYPQ1w==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.95.0.tgz", + "integrity": "sha512-knAh6xxNl1b2dqsCv6Jv87+3gC2OmGqCW/Ub7FXSsoY+qRWO7r5LG7DkVi9S2kLxVgzNH2tWSqSOA7AUt+wLyQ==", + "license": "Apache-2.0", "engines": { "node": ">=16" } }, - "plugins/ui/src/js/node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "plugins/ui/src/js/node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "plugins/ui/src/js/node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "plugins/ui/src/js/node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "plugins/ui/src/js/node_modules/buffer": { "version": "6.0.3", "funding": [ @@ -32857,6 +32781,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -32867,60 +32792,9 @@ "plugins/ui/src/js/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "plugins/ui/src/js/node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "plugins/ui/src/js/node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, - "plugins/ui/src/js/node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "license": "MIT", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "plugins/ui/src/js/node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "deprecated": "Use your platform's native DOMException instead", - "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "plugins/ui/src/js/node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, "plugins/ui/src/js/node_modules/event-target-shim": { "version": "6.0.2", "license": "MIT", @@ -32931,250 +32805,6 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "plugins/ui/src/js/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "plugins/ui/src/js/node_modules/hast-util-is-element": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", - "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "plugins/ui/src/js/node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "plugins/ui/src/js/node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "license": "MIT", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "plugins/ui/src/js/node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "plugins/ui/src/js/node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "plugins/ui/src/js/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "license": "MIT" - }, - "plugins/ui/src/js/node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "plugins/ui/src/js/node_modules/rehype-mathjax": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-3.1.0.tgz", - "integrity": "sha512-Pmz92Y56lBFmDjFc9nIdrKu1xzKSBYevcwKiKiG7b5JJg74q1E62nRSbPEm37vXaXn7Bn25iRsWcP39bJKkMxg==", - "license": "MIT", - "dependencies": { - "@types/mathjax": "^0.0.36", - "hast-util-from-dom": "^3.0.0", - "hast-util-to-text": "^2.0.0", - "jsdom": "^16.0.0", - "mathjax-full": "^3.0.0", - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/@types/mathjax": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@types/mathjax/-/mathjax-0.0.36.tgz", - "integrity": "sha512-TqDJc2GWuTqd/m+G/FbNkN+/TF2OCCHvcawmhIrUaZkdVquMdNZmNiNUkupNg9qctorXXkVLVSogZv1DhmgLmg==", - "license": "MIT" - }, - "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/hast-util-from-dom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-3.0.0.tgz", - "integrity": "sha512-4vQuGiD5Y/wlD7fZiY4mZML/6oh0GOnH38UNyeDFcSTE4AHF0zjKHZfbd+ekVwPvsZXRl8choc99INHUwSPJlg==", - "license": "ISC", - "dependencies": { - "hastscript": "^6.0.0", - "web-namespaces": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/hast-util-to-text": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz", - "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==", - "license": "MIT", - "dependencies": { - "hast-util-is-element": "^1.0.0", - "repeat-string": "^1.0.0", - "unist-util-find-after": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "plugins/ui/src/js/node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "plugins/ui/src/js/node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "plugins/ui/src/js/node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, "plugins/ui/src/js/node_modules/typescript": { "version": "4.9.5", "dev": true, @@ -33186,130 +32816,6 @@ "engines": { "node": ">=4.2.0" } - }, - "plugins/ui/src/js/node_modules/unist-util-find-after": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz", - "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==", - "license": "MIT", - "dependencies": { - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "plugins/ui/src/js/node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "plugins/ui/src/js/node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "plugins/ui/src/js/node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "plugins/ui/src/js/node_modules/web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "plugins/ui/src/js/node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "plugins/ui/src/js/node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "plugins/ui/src/js/node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "license": "MIT" - }, - "plugins/ui/src/js/node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "plugins/ui/src/js/node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "plugins/ui/src/js/node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "license": "Apache-2.0" } }, "dependencies": { @@ -36337,23 +35843,24 @@ "@deephaven/js-plugin-ui": { "version": "file:plugins/ui/src/js", "requires": { - "@deephaven/chart": "^0.91.0", - "@deephaven/components": "^0.91.0", - "@deephaven/dashboard": "^0.91.0", - "@deephaven/dashboard-core-plugins": "^0.91.0", - "@deephaven/golden-layout": "^0.91.0", - "@deephaven/grid": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/iris-grid": "^0.91.0", - "@deephaven/jsapi-bootstrap": "^0.91.0", - "@deephaven/jsapi-components": "^0.91.0", + "@deephaven/chart": "^0.95.0", + "@deephaven/components": "^0.95.0", + "@deephaven/console": "^0.95.0", + "@deephaven/dashboard": "^0.95.0", + "@deephaven/dashboard-core-plugins": "^0.95.0", + "@deephaven/golden-layout": "^0.95.0", + "@deephaven/grid": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/iris-grid": "^0.95.0", + "@deephaven/jsapi-bootstrap": "^0.95.0", + "@deephaven/jsapi-components": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.35.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/plugin": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/redux": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/plugin": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/redux": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@fortawesome/react-fontawesome": "^0.2.0", "@internationalized/date": "^3.5.5", "@types/react": "^17.0.2", @@ -36364,23 +35871,24 @@ "react-dom": "^17.0.2", "react-markdown": "^8.0.7", "react-redux": "^7.x", - "rehype-mathjax": "^3.1.0", + "rehype-mathjax": "^4.0.3", + "remark-gfm": "^3.0.1", "remark-math": "^5.1.1", "typescript": "^4.5.4" }, "dependencies": { "@deephaven/chart": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.91.0.tgz", - "integrity": "sha512-UfZY3tPn+RrCYyNfH0DWnmUmvL0LRO0QuALT56GQTTZoWrGlZbsYUsk91sZW2u+KMLxHXkvKQTfLsuJmxP2y+w==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/chart/-/chart-0.95.0.tgz", + "integrity": "sha512-1yB+qc8GtpM4XokT2l4NCLsWlHPSvy3smdSL9al7hvr1N20jwlGPfiNEVgals/HH+FDptw1E/qVSkVwPzKf3hg==", "requires": { - "@deephaven/components": "^0.91.0", - "@deephaven/icons": "^0.91.0", + "@deephaven/components": "^0.95.0", + "@deephaven/icons": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/utils": "^0.95.0", "buffer": "^6.0.3", "fast-deep-equal": "^3.1.3", "lodash.debounce": "^4.0.8", @@ -36393,15 +35901,15 @@ } }, "@deephaven/components": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.91.0.tgz", - "integrity": "sha512-GmEmOqw/njgPtHnC7i09c2q9Og7qFFKqfqklJvoha6kOZwiVjAPaign2ifmy388vvWMRhtwF8pK3mzjegj1xrQ==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/components/-/components-0.95.0.tgz", + "integrity": "sha512-LRLV+HMnd18KlJyNR1p5eWZiu1PnCfQUW0WQDes7sgtj/vaVN11xiVWQJxc09RITw4CxBvElC9HZ+/JQOHZnGQ==", "requires": { "@adobe/react-spectrum": "3.35.1", - "@deephaven/icons": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", "@internationalized/date": "^3.5.5", @@ -36426,17 +35934,58 @@ "react-window": "^1.8.6" } }, + "@deephaven/console": { + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.95.0.tgz", + "integrity": "sha512-JSM6w7iH0Pxbl1AMQyz54vyRch+d3HD2PGDfrhdc+ezvTv5aGqLD7THStGGe1y1byig0OE4SBwR48crlHpNBIA==", + "requires": { + "@deephaven/chart": "^0.95.0", + "@deephaven/components": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/jsapi-bootstrap": "^0.95.0", + "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/storage": "^0.95.0", + "@deephaven/utils": "^0.95.0", + "@fortawesome/react-fontawesome": "^0.2.0", + "classnames": "^2.3.1", + "linkifyjs": "^4.1.0", + "lodash.debounce": "^4.0.8", + "lodash.throttle": "^4.1.1", + "memoize-one": "^5.1.1", + "memoizee": "^0.4.15", + "monaco-editor": "^0.41.0", + "nanoid": "^5.0.7", + "papaparse": "5.3.2", + "popper.js": "^1.16.1", + "prop-types": "^15.7.2", + "shell-quote": "^1.7.2" + }, + "dependencies": { + "@deephaven/storage": { + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.95.0.tgz", + "integrity": "sha512-Gsc/p9fHrrSdzMtZ/a6/IpSzs2VT3WTOBSspWD0G7P0v682adXl7d25YFdl6uYIQSMq/tBU+JtTgAegMN5zfGg==", + "requires": { + "@deephaven/filters": "^0.95.0", + "@deephaven/log": "^0.95.0", + "lodash.throttle": "^4.1.1" + } + } + } + }, "@deephaven/dashboard": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.91.0.tgz", - "integrity": "sha512-A8L2emY3o2qYmUdh0O3j7y5Za/gF912+bP0gVxDnGG5ayMuWUVJAl8Mtluj5Coz/MxP48VdyEGQGuNNh2ggnvw==", - "requires": { - "@deephaven/components": "^0.91.0", - "@deephaven/golden-layout": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/redux": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard/-/dashboard-0.95.0.tgz", + "integrity": "sha512-ehecVa92ZplXX31AWiWaT29BWuvOZq/Mr0fRhHOgtvFvjMyfl+u9bIZ8xmBguVbjn2ZhMdDwygVzw1uvUx7Yiw==", + "requires": { + "@deephaven/components": "^0.95.0", + "@deephaven/golden-layout": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/redux": "^0.95.0", + "@deephaven/utils": "^0.95.0", "fast-deep-equal": "^3.1.3", "lodash.ismatch": "^4.1.1", "lodash.throttle": "^4.1.1", @@ -36445,30 +35994,30 @@ } }, "@deephaven/dashboard-core-plugins": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/dashboard-core-plugins/-/dashboard-core-plugins-0.91.0.tgz", - "integrity": "sha512-Y7mBd5feexOi5Q6Os/3YNXTSShIEzmw2TMdvDnup+6WEHx29xuw0RVRXI0Ru52MKTB7mdkNAwHXerYGGXy3zrg==", - "requires": { - "@deephaven/chart": "^0.91.0", - "@deephaven/components": "^0.91.0", - "@deephaven/console": "^0.91.0", - "@deephaven/dashboard": "^0.91.0", - "@deephaven/file-explorer": "^0.91.0", - "@deephaven/filters": "^0.91.0", - "@deephaven/golden-layout": "^0.91.0", - "@deephaven/grid": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/iris-grid": "^0.91.0", - "@deephaven/jsapi-bootstrap": "^0.91.0", - "@deephaven/jsapi-components": "^0.91.0", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/dashboard-core-plugins/-/dashboard-core-plugins-0.95.0.tgz", + "integrity": "sha512-+a2MEYZ2e/63MWN8PHd+a+evXZbjfBxD4ltIJ89A65zKdS94RGLvevoUHuFpGCOlDmA/7JTjBHPZbgEyaFbw1A==", + "requires": { + "@deephaven/chart": "^0.95.0", + "@deephaven/components": "^0.95.0", + "@deephaven/console": "^0.95.0", + "@deephaven/dashboard": "^0.95.0", + "@deephaven/file-explorer": "^0.95.0", + "@deephaven/filters": "^0.95.0", + "@deephaven/golden-layout": "^0.95.0", + "@deephaven/grid": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/iris-grid": "^0.95.0", + "@deephaven/jsapi-bootstrap": "^0.95.0", + "@deephaven/jsapi-components": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/plugin": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/redux": "^0.91.0", - "@deephaven/storage": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/plugin": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/redux": "^0.95.0", + "@deephaven/storage": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", "fast-deep-equal": "^3.1.3", @@ -36487,45 +36036,16 @@ "remark-math": "^5.1.1" }, "dependencies": { - "@deephaven/console": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.91.0.tgz", - "integrity": "sha512-9jdvLDiygaJKf4dC6O5Zg5gZ7SVg2Y+hhhmwdALCfFU3oP56d8/ABCpzOqQ/EFpUw9u9M5o+scKKfD4knHjYZg==", - "requires": { - "@deephaven/chart": "^0.91.0", - "@deephaven/components": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/jsapi-bootstrap": "^0.91.0", - "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/storage": "^0.91.0", - "@deephaven/utils": "^0.91.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "linkifyjs": "^4.1.0", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "nanoid": "^5.0.7", - "papaparse": "5.3.2", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "shell-quote": "^1.7.2" - } - }, "@deephaven/file-explorer": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/file-explorer/-/file-explorer-0.91.0.tgz", - "integrity": "sha512-nj9xk1Sc4q9MPbUSnFcOylgPTdhIhY8nopoaV9kKcqP1F7GfS86B83DSeILVc59OQDHeB9/+CLIb5kdhVrJglA==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/file-explorer/-/file-explorer-0.95.0.tgz", + "integrity": "sha512-7fuE6aVEuMVDTPaM1Z3S1EdzdeQg/hSW9Xjtt8IUJkYgqMlx77hPy+Dv4ob3YxImhDYVkzVXujiLyypk/Gl5lA==", "requires": { - "@deephaven/components": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/storage": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/components": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/storage": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@fortawesome/fontawesome-svg-core": "^6.2.1", "@fortawesome/react-fontawesome": "^0.2.0", "classnames": "^2.3.1", @@ -36534,12 +36054,12 @@ } }, "@deephaven/storage": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.91.0.tgz", - "integrity": "sha512-eEEj0UAJOSosad8kxuENbP2ByIyr1IBMHtWvu8sJ4TX2s3VphNunFnHgwP5ekA3UpjvwtxhoUvCRXc2iaNVxEQ==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.95.0.tgz", + "integrity": "sha512-Gsc/p9fHrrSdzMtZ/a6/IpSzs2VT3WTOBSspWD0G7P0v682adXl7d25YFdl6uYIQSMq/tBU+JtTgAegMN5zfGg==", "requires": { - "@deephaven/filters": "^0.91.0", - "@deephaven/log": "^0.91.0", + "@deephaven/filters": "^0.95.0", + "@deephaven/log": "^0.95.0", "lodash.throttle": "^4.1.1" } }, @@ -36557,41 +36077,30 @@ "unified": "^10.0.0", "unist-util-visit": "^4.0.0" } - }, - "remark-math": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-5.1.1.tgz", - "integrity": "sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==", - "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-math": "^2.0.0", - "micromark-extension-math": "^2.0.0", - "unified": "^10.0.0" - } } } }, "@deephaven/filters": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.91.0.tgz", - "integrity": "sha512-ELWgt6m98+OGoRdvjhhTXUUSzo1ry/h9RTVDnmRK9qwGoT3rnqYvrqyFaOzaVLhsrK/3iYZoM2yLQkq0dPikVA==" + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/filters/-/filters-0.95.0.tgz", + "integrity": "sha512-eU5VtrCJgdPzikML5Y4mW3tkuPIxs99+OTZent22gH6Dm3PBt+gjPrjpLpm4IHTdtR1SL2TSDi1ETf2j5+eO9Q==" }, "@deephaven/golden-layout": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.91.0.tgz", - "integrity": "sha512-WzoIhOp1aENZJrVagE8W4M1zEc76rkTm0MxYIduBO1RtqRjpunoAR+RWUmMwfPaOIp8dxX+RfJz+YFlKdZEs6A==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/golden-layout/-/golden-layout-0.95.0.tgz", + "integrity": "sha512-OyKW/v+KK9QiRLMJMOcv+49z3UjW8BO2xnPdJN2Nt1Aep18QUIFdFK/nm45SqfL7gkecOrOEDcElyD4aWz0tcw==", "requires": { - "@deephaven/components": "^0.91.0", + "@deephaven/components": "^0.95.0", "jquery": "^3.6.0", "nanoid": "^5.0.7" } }, "@deephaven/grid": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.91.0.tgz", - "integrity": "sha512-fOv2RrXKWIpwH4G+6pypFE1WIbYYjz8K4PcRvwPdob8RRI2C83HpIWQS/XSot0WqzITu2rqOYwWxfHu7+BGcyg==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/grid/-/grid-0.95.0.tgz", + "integrity": "sha512-iODcW/uRLqh85MsC6QCnYVCoPzsBZNs6wN1Kjb71XR/AhtrMskgfJb3kJasysfKLEC5Prk8BwvGu8jdIyNs8qw==", "requires": { - "@deephaven/utils": "^0.91.0", + "@deephaven/utils": "^0.95.0", "classnames": "^2.3.1", "color-convert": "^2.0.1", "event-target-shim": "^6.0.2", @@ -36603,30 +36112,30 @@ } }, "@deephaven/icons": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.91.0.tgz", - "integrity": "sha512-b+b//+gk8ZJz+JXURCw99FSQlExN89V3+F+LWVHJc+L3bzMa7pR2vhMVTKG0hG2tqF9ZDU8cYWGIS6o+6uiv2w==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/icons/-/icons-0.95.0.tgz", + "integrity": "sha512-BJ0SS7GbJYJ2V0u5on1VDx2v+DZ77t18MqvfXWvYuV5DjODwMRjP8XsEKyH05c+jdXMZsyB+gv2+jysPTGcSBw==", "requires": { "@fortawesome/fontawesome-common-types": "^6.1.1" } }, "@deephaven/iris-grid": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.91.0.tgz", - "integrity": "sha512-OgJvZg9z0KBbVoAXgPQiuJDScOrtfn8CouWd7G2WkJtVxK3OC3Rdeg5QLv8n54Lg2nwtrhuow6DV4oxybAv8gA==", - "requires": { - "@deephaven/components": "^0.91.0", - "@deephaven/console": "^0.91.0", - "@deephaven/filters": "^0.91.0", - "@deephaven/grid": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/jsapi-components": "^0.91.0", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/iris-grid/-/iris-grid-0.95.0.tgz", + "integrity": "sha512-wOs66BHXR0GPBAe2UIEQIG/Av8/Ju+96+u6+1dzS5afFfiKSoIxNxTi+HOklj9QkCDcAbPQ/pg6/eZThWfZS4g==", + "requires": { + "@deephaven/components": "^0.95.0", + "@deephaven/console": "^0.95.0", + "@deephaven/filters": "^0.95.0", + "@deephaven/grid": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/jsapi-components": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/storage": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/storage": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@dnd-kit/core": "^6.1.0", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.2", @@ -36645,71 +36154,42 @@ "react-transition-group": "^4.4.2" }, "dependencies": { - "@deephaven/console": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/console/-/console-0.91.0.tgz", - "integrity": "sha512-9jdvLDiygaJKf4dC6O5Zg5gZ7SVg2Y+hhhmwdALCfFU3oP56d8/ABCpzOqQ/EFpUw9u9M5o+scKKfD4knHjYZg==", - "requires": { - "@deephaven/chart": "^0.91.0", - "@deephaven/components": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/jsapi-bootstrap": "^0.91.0", - "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/storage": "^0.91.0", - "@deephaven/utils": "^0.91.0", - "@fortawesome/react-fontawesome": "^0.2.0", - "classnames": "^2.3.1", - "linkifyjs": "^4.1.0", - "lodash.debounce": "^4.0.8", - "lodash.throttle": "^4.1.1", - "memoize-one": "^5.1.1", - "memoizee": "^0.4.15", - "monaco-editor": "^0.41.0", - "nanoid": "^5.0.7", - "papaparse": "5.3.2", - "popper.js": "^1.16.1", - "prop-types": "^15.7.2", - "shell-quote": "^1.7.2" - } - }, "@deephaven/storage": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.91.0.tgz", - "integrity": "sha512-eEEj0UAJOSosad8kxuENbP2ByIyr1IBMHtWvu8sJ4TX2s3VphNunFnHgwP5ekA3UpjvwtxhoUvCRXc2iaNVxEQ==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/storage/-/storage-0.95.0.tgz", + "integrity": "sha512-Gsc/p9fHrrSdzMtZ/a6/IpSzs2VT3WTOBSspWD0G7P0v682adXl7d25YFdl6uYIQSMq/tBU+JtTgAegMN5zfGg==", "requires": { - "@deephaven/filters": "^0.91.0", - "@deephaven/log": "^0.91.0", + "@deephaven/filters": "^0.95.0", + "@deephaven/log": "^0.95.0", "lodash.throttle": "^4.1.1" } } } }, "@deephaven/jsapi-bootstrap": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.91.0.tgz", - "integrity": "sha512-00irzZyhEIqRn000ZH38+zk1tOjBsaWhn35/weg5HNL4gbBtW4sg5+hsDHRzYhbEqbJDErvgNUPml23Rll732g==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-bootstrap/-/jsapi-bootstrap-0.95.0.tgz", + "integrity": "sha512-UJ9akQyFFRJKpf9vm0o9jp3JZWjjOXIR6KHUXAUgNoEccTTSdH1xMkHFrfTGuXYFtnSC3L7HCSzW07EcEXoZtQ==", "requires": { - "@deephaven/components": "^0.91.0", + "@deephaven/components": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/utils": "^0.91.0" + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/utils": "^0.95.0" } }, "@deephaven/jsapi-components": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.91.0.tgz", - "integrity": "sha512-h5pgltU/S5+NoaYKdOJbCyLvx+6zmakiXIVS4GXo5P+mnOHyALvylxDT29jkGcgbPjNLLejWwjaIGHSSWWGG8w==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-components/-/jsapi-components-0.95.0.tgz", + "integrity": "sha512-9WCbJHEcblUXHOMThHxHrb4FFZQ8EZeQlPJc0vK1aTTi5m4S/rIkGMiCD2maJyi5wDlDj9q9syUl1qLDCl2qtQ==", "requires": { - "@deephaven/components": "^0.91.0", - "@deephaven/jsapi-bootstrap": "^0.91.0", + "@deephaven/components": "^0.95.0", + "@deephaven/jsapi-bootstrap": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@types/js-cookie": "^3.0.3", "classnames": "^2.3.2", "js-cookie": "^3.0.5", @@ -36723,100 +36203,74 @@ "integrity": "sha512-X35g2ktmXbiTwjMNF20IkuNawJJ6Tlvrv23VuUVIjWHkpWcmyCYWIBle2zo7QAF6nnJpkccwFKJiC+TIkWl7hg==" }, "@deephaven/jsapi-utils": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.91.0.tgz", - "integrity": "sha512-7+52u4fGeCU5Zy+bUi+uqv/tNujq1fdaBw4XjEcC+KSW3ojPo+xzpdl8E0L7IPYgD2ep/IPosaq/kbLp6JU3+g==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/jsapi-utils/-/jsapi-utils-0.95.0.tgz", + "integrity": "sha512-nr0MK33wDl9deaO2909BV538APzd8teMPDeXkmySM3ayEFVXjAFFDqONTY5ysLFcEtMSDiSXZBizWrKtpsjtaA==", "requires": { - "@deephaven/filters": "^0.91.0", + "@deephaven/filters": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/log": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/log": "^0.95.0", + "@deephaven/utils": "^0.95.0", "lodash.clamp": "^4.0.3", "nanoid": "^5.0.7" } }, "@deephaven/log": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.91.0.tgz", - "integrity": "sha512-IXT6+0XiR+5bhm5+3XELZFMTKPMZBmdckhswdJibrID0l79wgGiqKiqSnBjn1mFOGuOO+JYqU4KzoaIRJXZdyA==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/log/-/log-0.95.0.tgz", + "integrity": "sha512-2p3X+FlSDOlBVCBMy8N1hL6wU4akIDHY1yhJ0mrUkHEwPn3ESAGpLlWWvjY7wHt9mvgFGbjIjpgsQPA9x06EnA==", "requires": { "event-target-shim": "^6.0.2" } }, "@deephaven/plugin": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.91.0.tgz", - "integrity": "sha512-ip2b2VG8wus88ySOUaKg4XfrCtgLd7eH6f8CswuFnSNbYVcg+UurbGJRvBAvX1F8JYgwJeWIzyiEHkYKYT1i4g==", - "requires": { - "@deephaven/components": "^0.91.0", - "@deephaven/golden-layout": "^0.91.0", - "@deephaven/grid": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/iris-grid": "^0.91.0", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/plugin/-/plugin-0.95.0.tgz", + "integrity": "sha512-yUHkEzgT6JtbLfOhbMPOoQLbi8/TrZ+/pHo2FG84sOmv4nGAcXsuBw9yjcrzRF17nLoRT7sihXIayAvlghZ1wQ==", + "requires": { + "@deephaven/components": "^0.95.0", + "@deephaven/golden-layout": "^0.95.0", + "@deephaven/grid": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/iris-grid": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/log": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", + "@deephaven/log": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", "@fortawesome/fontawesome-common-types": "^6.1.1", "@fortawesome/react-fontawesome": "^0.2.0" } }, "@deephaven/react-hooks": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.91.0.tgz", - "integrity": "sha512-G08G2RBPREpQIEYJ0FelvwqzsSqaq5/uG36kFspyxa8pkxQ5Lf9Bxqsnx/McR4sRYzVlbr1ADcL7r2Ecl19Ddg==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/react-hooks/-/react-hooks-0.95.0.tgz", + "integrity": "sha512-bC0gAgZcl5GrjSThdtUNMeXrjhE4z6iZk9YgVo6QqINq0BCMEo4C8ZmAozWxyJoiyDMhmALXI2MaQ7uaoTfgyQ==", "requires": { "@adobe/react-spectrum": "3.35.1", - "@deephaven/log": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/log": "^0.95.0", + "@deephaven/utils": "^0.95.0", "lodash.debounce": "^4.0.8", "lodash.throttle": "^4.1.1", "nanoid": "^5.0.7" } }, "@deephaven/redux": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.91.0.tgz", - "integrity": "sha512-1JnXcBUpxQDLT65S2SPA4hkoKc0tCkThzTV28zKQy+4pqGP5oD5QmlcgtUkeTqQPsNqEf8ZO9XZjkZHpQ0xqVQ==", + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/redux/-/redux-0.95.0.tgz", + "integrity": "sha512-8sI3J0G3FDyIudOiBKTyhbfe2srRC77/QsSHF/zuQJbBF7K4RB8JIbiZktY9HBf6kMv1RnCab0fZlzxtSRGOyQ==", "requires": { "@deephaven/jsapi-types": "^1.0.0-dev0.34.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/plugin": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/plugin": "^0.95.0", "fast-deep-equal": "^3.1.3", "proxy-memoize": "^3.0.0", "redux-thunk": "2.4.1" } }, "@deephaven/utils": { - "version": "0.91.0", - "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.91.0.tgz", - "integrity": "sha512-MQAnLvJux9N6ZeCdxWle6NEJ8dqrpxVtkMd9oVqqa0mjmRVPjz6UuT8Hl10VagrYJya1TjKHizW3BrDyhYPQ1w==" - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + "version": "0.95.0", + "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.95.0.tgz", + "integrity": "sha512-knAh6xxNl1b2dqsCv6Jv87+3gC2OmGqCW/Ub7FXSsoY+qRWO7r5LG7DkVi9S2kLxVgzNH2tWSqSOA7AUt+wLyQ==" }, "buffer": { "version": "6.0.3", @@ -36838,288 +36292,12 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" - } - } - }, "event-target-shim": { "version": "6.0.2" }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "hast-util-is-element": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", - "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==" - }, - "hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" - }, - "hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "requires": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "requires": { - "xtend": "^4.0.0" - } - }, - "rehype-mathjax": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-3.1.0.tgz", - "integrity": "sha512-Pmz92Y56lBFmDjFc9nIdrKu1xzKSBYevcwKiKiG7b5JJg74q1E62nRSbPEm37vXaXn7Bn25iRsWcP39bJKkMxg==", - "requires": { - "@types/mathjax": "^0.0.36", - "hast-util-from-dom": "^3.0.0", - "hast-util-to-text": "^2.0.0", - "jsdom": "^16.0.0", - "mathjax-full": "^3.0.0", - "unist-util-visit": "^2.0.0" - }, - "dependencies": { - "@types/mathjax": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@types/mathjax/-/mathjax-0.0.36.tgz", - "integrity": "sha512-TqDJc2GWuTqd/m+G/FbNkN+/TF2OCCHvcawmhIrUaZkdVquMdNZmNiNUkupNg9qctorXXkVLVSogZv1DhmgLmg==" - }, - "hast-util-from-dom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-3.0.0.tgz", - "integrity": "sha512-4vQuGiD5Y/wlD7fZiY4mZML/6oh0GOnH38UNyeDFcSTE4AHF0zjKHZfbd+ekVwPvsZXRl8choc99INHUwSPJlg==", - "requires": { - "hastscript": "^6.0.0", - "web-namespaces": "^1.0.0" - } - }, - "hast-util-to-text": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz", - "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==", - "requires": { - "hast-util-is-element": "^1.0.0", - "repeat-string": "^1.0.0", - "unist-util-find-after": "^3.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - } - }, - "unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - } - } - } - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { - "xmlchars": "^2.2.0" - } - }, - "space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "requires": { - "punycode": "^2.1.1" - } - }, "typescript": { "version": "4.9.5", "dev": true - }, - "unist-util-find-after": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz", - "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==", - "requires": { - "unist-util-is": "^4.0.0" - } - }, - "unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==" - }, - "unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" } } }, @@ -43451,11 +42629,6 @@ "fill-range": "^7.1.1" } }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - }, "browserslist": { "version": "4.22.1", "dev": true, @@ -49220,7 +48393,8 @@ } }, "lodash": { - "version": "4.17.21" + "version": "4.17.21", + "dev": true }, "lodash.clamp": { "version": "4.0.3" @@ -52753,11 +51927,6 @@ "unified": "^10.0.0" } }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" - }, "require-directory": { "version": "2.1.1", "dev": true @@ -54482,14 +53651,6 @@ "pbf": "^3.2.1" } }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, "w3c-xmlserializer": { "version": "4.0.0", "requires": { diff --git a/plugins/ui/src/js/package.json b/plugins/ui/src/js/package.json index 2f3e03c79..b882a7368 100644 --- a/plugins/ui/src/js/package.json +++ b/plugins/ui/src/js/package.json @@ -39,23 +39,24 @@ "react-dom": "^17.0.2" }, "dependencies": { - "@deephaven/chart": "^0.91.0", - "@deephaven/components": "^0.91.0", - "@deephaven/dashboard": "^0.91.0", - "@deephaven/dashboard-core-plugins": "^0.91.0", - "@deephaven/golden-layout": "^0.91.0", - "@deephaven/grid": "^0.91.0", - "@deephaven/icons": "^0.91.0", - "@deephaven/iris-grid": "^0.91.0", - "@deephaven/jsapi-bootstrap": "^0.91.0", - "@deephaven/jsapi-components": "^0.91.0", + "@deephaven/chart": "^0.95.0", + "@deephaven/components": "^0.95.0", + "@deephaven/console": "^0.95.0", + "@deephaven/dashboard": "^0.95.0", + "@deephaven/dashboard-core-plugins": "^0.95.0", + "@deephaven/golden-layout": "^0.95.0", + "@deephaven/grid": "^0.95.0", + "@deephaven/icons": "^0.95.0", + "@deephaven/iris-grid": "^0.95.0", + "@deephaven/jsapi-bootstrap": "^0.95.0", + "@deephaven/jsapi-components": "^0.95.0", "@deephaven/jsapi-types": "^1.0.0-dev0.35.0", - "@deephaven/jsapi-utils": "^0.91.0", - "@deephaven/log": "^0.91.0", - "@deephaven/plugin": "^0.91.0", - "@deephaven/react-hooks": "^0.91.0", - "@deephaven/redux": "^0.91.0", - "@deephaven/utils": "^0.91.0", + "@deephaven/jsapi-utils": "^0.95.0", + "@deephaven/log": "^0.95.0", + "@deephaven/plugin": "^0.95.0", + "@deephaven/react-hooks": "^0.95.0", + "@deephaven/redux": "^0.95.0", + "@deephaven/utils": "^0.95.0", "@fortawesome/react-fontawesome": "^0.2.0", "@internationalized/date": "^3.5.5", "classnames": "^2.5.1", diff --git a/plugins/ui/src/js/src/elements/Markdown.tsx b/plugins/ui/src/js/src/elements/Markdown.tsx index 1f850287e..e081b24ba 100644 --- a/plugins/ui/src/js/src/elements/Markdown.tsx +++ b/plugins/ui/src/js/src/elements/Markdown.tsx @@ -1,17 +1,40 @@ +import React from 'react'; +import { type CodeComponent } from 'react-markdown/lib/ast-to-react'; import remarkMath from 'remark-math'; import rehypeMathjax from 'rehype-mathjax'; import ReactMarkdown from 'react-markdown'; import { View, ViewProps } from '@deephaven/components'; +import { Code } from '@deephaven/console'; type MarkdownProps = Omit & { children: string; }; +const renderMarkdown: CodeComponent = props => { + const { children, className } = props; + const language = + className !== undefined && className?.startsWith('language-') + ? className.substring(9) + : 'plaintext'; + return ( +
+      
+        
+          {React.Children.map(children, child =>
+            typeof child === 'string' ? child.trim() : child
+          )}
+        
+      
+    
+ ); +}; + export function Markdown({ children, ...props }: MarkdownProps): JSX.Element { return ( // eslint-disable-next-line react/jsx-props-no-spreading diff --git a/plugins/ui/src/js/vite.config.ts b/plugins/ui/src/js/vite.config.ts index 9a1abb16f..f8637b5a0 100644 --- a/plugins/ui/src/js/vite.config.ts +++ b/plugins/ui/src/js/vite.config.ts @@ -19,6 +19,7 @@ export default defineConfig(({ mode }) => ({ 'react-redux', '@deephaven/chart', '@deephaven/components', + '@deephaven/console', '@deephaven/dashboard', '@deephaven/icons', '@deephaven/iris-grid', From fbea65d37848886a6c952b1b31466a7805b8a9ad Mon Sep 17 00:00:00 2001 From: Steven Wu Date: Thu, 26 Sep 2024 10:57:31 -0400 Subject: [PATCH 5/8] update package lock --- package-lock.json | 815 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 808 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index a0d9f1d0d..bad22b922 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12711,6 +12711,12 @@ "node": ">=8" } }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "license": "BSD-2-Clause" + }, "node_modules/browserslist": { "version": "4.22.1", "dev": true, @@ -21723,7 +21729,6 @@ }, "node_modules/lodash": { "version": "4.17.21", - "dev": true, "license": "MIT" }, "node_modules/lodash.clamp": { @@ -27397,6 +27402,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, "node_modules/require-directory": { "version": "2.1.1", "dev": true, @@ -30152,6 +30166,16 @@ "pbf": "^3.2.1" } }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "license": "MIT", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, "node_modules/w3c-xmlserializer": { "version": "4.0.0", "license": "MIT", @@ -32200,8 +32224,7 @@ "nanoid": "^5.0.7", "react-markdown": "^8.0.7", "react-redux": "^7.x", - "rehype-mathjax": "^4.0.3", - "remark-gfm": "^3.0.1", + "rehype-mathjax": "^3.1.0", "remark-math": "^5.1.1" }, "devDependencies": { @@ -32755,6 +32778,46 @@ "node": ">=16" } }, + "plugins/ui/src/js/node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "plugins/ui/src/js/node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "plugins/ui/src/js/node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "plugins/ui/src/js/node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, "plugins/ui/src/js/node_modules/buffer": { "version": "6.0.3", "funding": [ @@ -32795,6 +32858,58 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, + "plugins/ui/src/js/node_modules/comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "plugins/ui/src/js/node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "license": "MIT" + }, + "plugins/ui/src/js/node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "plugins/ui/src/js/node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "license": "MIT", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "plugins/ui/src/js/node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, "plugins/ui/src/js/node_modules/event-target-shim": { "version": "6.0.2", "license": "MIT", @@ -32805,6 +32920,250 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "plugins/ui/src/js/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "plugins/ui/src/js/node_modules/hast-util-is-element": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", + "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "plugins/ui/src/js/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "plugins/ui/src/js/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "license": "MIT" + }, + "plugins/ui/src/js/node_modules/property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "plugins/ui/src/js/node_modules/rehype-mathjax": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-3.1.0.tgz", + "integrity": "sha512-Pmz92Y56lBFmDjFc9nIdrKu1xzKSBYevcwKiKiG7b5JJg74q1E62nRSbPEm37vXaXn7Bn25iRsWcP39bJKkMxg==", + "license": "MIT", + "dependencies": { + "@types/mathjax": "^0.0.36", + "hast-util-from-dom": "^3.0.0", + "hast-util-to-text": "^2.0.0", + "jsdom": "^16.0.0", + "mathjax-full": "^3.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/@types/mathjax": { + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@types/mathjax/-/mathjax-0.0.36.tgz", + "integrity": "sha512-TqDJc2GWuTqd/m+G/FbNkN+/TF2OCCHvcawmhIrUaZkdVquMdNZmNiNUkupNg9qctorXXkVLVSogZv1DhmgLmg==", + "license": "MIT" + }, + "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/hast-util-from-dom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-3.0.0.tgz", + "integrity": "sha512-4vQuGiD5Y/wlD7fZiY4mZML/6oh0GOnH38UNyeDFcSTE4AHF0zjKHZfbd+ekVwPvsZXRl8choc99INHUwSPJlg==", + "license": "ISC", + "dependencies": { + "hastscript": "^6.0.0", + "web-namespaces": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/hast-util-to-text": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz", + "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==", + "license": "MIT", + "dependencies": { + "hast-util-is-element": "^1.0.0", + "repeat-string": "^1.0.0", + "unist-util-find-after": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "plugins/ui/src/js/node_modules/rehype-mathjax/node_modules/unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "plugins/ui/src/js/node_modules/space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "plugins/ui/src/js/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, "plugins/ui/src/js/node_modules/typescript": { "version": "4.9.5", "dev": true, @@ -32816,6 +33175,130 @@ "engines": { "node": ">=4.2.0" } + }, + "plugins/ui/src/js/node_modules/unist-util-find-after": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz", + "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==", + "license": "MIT", + "dependencies": { + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "plugins/ui/src/js/node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "plugins/ui/src/js/node_modules/web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "plugins/ui/src/js/node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "plugins/ui/src/js/node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "plugins/ui/src/js/node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "license": "MIT" + }, + "plugins/ui/src/js/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "license": "MIT", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "plugins/ui/src/js/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "plugins/ui/src/js/node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "license": "Apache-2.0" } }, "dependencies": { @@ -35871,8 +36354,7 @@ "react-dom": "^17.0.2", "react-markdown": "^8.0.7", "react-redux": "^7.x", - "rehype-mathjax": "^4.0.3", - "remark-gfm": "^3.0.1", + "rehype-mathjax": "^3.1.0", "remark-math": "^5.1.1", "typescript": "^4.5.4" }, @@ -36272,6 +36754,32 @@ "resolved": "https://registry.npmjs.org/@deephaven/utils/-/utils-0.95.0.tgz", "integrity": "sha512-knAh6xxNl1b2dqsCv6Jv87+3gC2OmGqCW/Ub7FXSsoY+qRWO7r5LG7DkVi9S2kLxVgzNH2tWSqSOA7AUt+wLyQ==" }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, "buffer": { "version": "6.0.3", "requires": { @@ -36292,12 +36800,288 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, "event-target-shim": { "version": "6.0.2" }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "hast-util-is-element": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", + "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==" + }, + "hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" + }, + "hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "requires": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + } + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "requires": { + "xtend": "^4.0.0" + } + }, + "rehype-mathjax": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rehype-mathjax/-/rehype-mathjax-3.1.0.tgz", + "integrity": "sha512-Pmz92Y56lBFmDjFc9nIdrKu1xzKSBYevcwKiKiG7b5JJg74q1E62nRSbPEm37vXaXn7Bn25iRsWcP39bJKkMxg==", + "requires": { + "@types/mathjax": "^0.0.36", + "hast-util-from-dom": "^3.0.0", + "hast-util-to-text": "^2.0.0", + "jsdom": "^16.0.0", + "mathjax-full": "^3.0.0", + "unist-util-visit": "^2.0.0" + }, + "dependencies": { + "@types/mathjax": { + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@types/mathjax/-/mathjax-0.0.36.tgz", + "integrity": "sha512-TqDJc2GWuTqd/m+G/FbNkN+/TF2OCCHvcawmhIrUaZkdVquMdNZmNiNUkupNg9qctorXXkVLVSogZv1DhmgLmg==" + }, + "hast-util-from-dom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-3.0.0.tgz", + "integrity": "sha512-4vQuGiD5Y/wlD7fZiY4mZML/6oh0GOnH38UNyeDFcSTE4AHF0zjKHZfbd+ekVwPvsZXRl8choc99INHUwSPJlg==", + "requires": { + "hastscript": "^6.0.0", + "web-namespaces": "^1.0.0" + } + }, + "hast-util-to-text": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz", + "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==", + "requires": { + "hast-util-is-element": "^1.0.0", + "repeat-string": "^1.0.0", + "unist-util-find-after": "^3.0.0" + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + } + }, + "unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + } + } + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "requires": { + "punycode": "^2.1.1" + } + }, "typescript": { "version": "4.9.5", "dev": true + }, + "unist-util-find-after": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz", + "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==", + "requires": { + "unist-util-is": "^4.0.0" + } + }, + "unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==" + }, + "unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, + "ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "requires": {} + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" } } }, @@ -42629,6 +43413,11 @@ "fill-range": "^7.1.1" } }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, "browserslist": { "version": "4.22.1", "dev": true, @@ -48393,8 +49182,7 @@ } }, "lodash": { - "version": "4.17.21", - "dev": true + "version": "4.17.21" }, "lodash.clamp": { "version": "4.0.3" @@ -51927,6 +52715,11 @@ "unified": "^10.0.0" } }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" + }, "require-directory": { "version": "2.1.1", "dev": true @@ -53651,6 +54444,14 @@ "pbf": "^3.2.1" } }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, "w3c-xmlserializer": { "version": "4.0.0", "requires": { From 9bd90ad24a48c43a43bfda9eace9642ecff1f95a Mon Sep 17 00:00:00 2001 From: Steven Wu Date: Tue, 1 Oct 2024 15:57:00 -0400 Subject: [PATCH 6/8] add md docs --- plugins/ui/docs/components/markdown.md | 143 +++++++++++++++++++++++++ plugins/ui/docs/sidebar.json | 4 + 2 files changed, 147 insertions(+) create mode 100644 plugins/ui/docs/components/markdown.md diff --git a/plugins/ui/docs/components/markdown.md b/plugins/ui/docs/components/markdown.md new file mode 100644 index 000000000..9f31ca8d8 --- /dev/null +++ b/plugins/ui/docs/components/markdown.md @@ -0,0 +1,143 @@ +# Markdown + +The markdown components renders a string in the CommonMark standard. The component also supports LaTeX (through MathJax), with `remark-math` and `rehype-mathjax`. Other plugins and markdown components are not supported. The markdown is wrapped in a `View`, which all props are passed to except for `children`. + +## Example + +```python +from deephaven import ui + + +markdown_str = """ +# Heading 1 +## Heading 2 +### Heading 3 + +Regular **bold** *italic* + +- Unordered list 1 +- Unordered list 2 + +1. Ordered list 1 +2. Ordered list 2 + +`inline code` +""" + + +@ui.component +def ui_markdown(): + return ui.markdown(markdown_str) + + +ui_markdown_example = ui_markdown() +``` + +## LaTeX + +When writing LaTeX, be careful on how Python handles backslashes with escape characters. It is recommended to use raw strings to minimize this issue. + +```python +from deephaven import ui + + +raw_md_str = r""" +This is a raw Python string. Notice the "r" before the quotation marks in the code. + +$$ +\eqalign{ +(a+b)^2 &= (a+b)(a+b) \\ +&= a^2 + ab + ba + b^2 \\ +&= a^2 + 2ab + b^2 +} +$$ + +Since raw strings ignore backslashes, all symbols require one backslash. +$$ +\leftarrow \rightarrow \nrightarrow +$$ +""" + +regular_md_str = """ +This is a regular Python string. Notice the extra backslashes necessary in the code. + +$$ +\eqalign{ +(a+b)^2 &= (a+b)(a+b) \\\\ +&= a^2 + ab + ba + b^2 \\\\ +&= a^2 + 2ab + b^2 +} +$$ + +Some backslashes are used to represent escape characters, requiring an extra backslash for LaTeX symbols. +$$ +\leftarrow \\rightarrow \\nrightarrow +$$ +""" + + +@ui.component +def latex_markdown(): + return ui.flex( + ui.markdown(raw_md_str), ui.markdown(regular_md_str), column_gap="30px" + ) + + +latex_example = latex_markdown() +``` + +## Code Blocks + +Code blocks follow Deephaven's formatting. + +````python +from deephaven import ui + + +code_str = """ +### Python + +```python +print("Hello, World!") +``` + +### Java + +```java +public class HelloWorld { + public static void main(String[] args) { + System.out.println("Hello, World!"); + } +} +``` +""" + +@ui.component +def code_markdown(): + return ui.markdown(code_str) + + +code_example = code_markdown() +```` + +## Container Style + +Markdown is automatically wrapped in a `View`, which all props except `children` are passed to. + +```python +from deephaven import ui + + +@ui.component +def style_markdown(): + return ui.markdown("Test", height="150px", width="300px", background_color="red") + + +style_example = style_markdown() +``` + +## API Reference + +```{eval-rst} +.. dhautofunction:: deephaven.ui.markdown +``` diff --git a/plugins/ui/docs/sidebar.json b/plugins/ui/docs/sidebar.json index 86f9278a2..e42a7dfa4 100644 --- a/plugins/ui/docs/sidebar.json +++ b/plugins/ui/docs/sidebar.json @@ -53,6 +53,10 @@ "label": "image", "path": "components/image.md" }, + { + "label": "markdown", + "path": "components/markdown.md" + }, { "label": "picker", "path": "components/picker.md" From 166f3e22e9d2e31ef59cd6d03e827d09cedf88fd Mon Sep 17 00:00:00 2001 From: Steven Wu Date: Fri, 4 Oct 2024 10:00:49 -0400 Subject: [PATCH 7/8] update docs from review --- plugins/ui/docs/components/markdown.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/ui/docs/components/markdown.md b/plugins/ui/docs/components/markdown.md index 9f31ca8d8..31992c1eb 100644 --- a/plugins/ui/docs/components/markdown.md +++ b/plugins/ui/docs/components/markdown.md @@ -2,6 +2,8 @@ The markdown components renders a string in the CommonMark standard. The component also supports LaTeX (through MathJax), with `remark-math` and `rehype-mathjax`. Other plugins and markdown components are not supported. The markdown is wrapped in a `View`, which all props are passed to except for `children`. +For individual lines of text, consider using `ui.text` and `ui.heading` instead. + ## Example ```python From 4b16c3315e3ea390ba3bac4746b9422046cd78ad Mon Sep 17 00:00:00 2001 From: Steven Wu Date: Fri, 18 Oct 2024 15:00:25 -0400 Subject: [PATCH 8/8] Apply suggestions from code review Co-authored-by: margaretkennedy <82049573+margaretkennedy@users.noreply.github.com> --- plugins/ui/docs/components/markdown.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/ui/docs/components/markdown.md b/plugins/ui/docs/components/markdown.md index 31992c1eb..65e44d50d 100644 --- a/plugins/ui/docs/components/markdown.md +++ b/plugins/ui/docs/components/markdown.md @@ -1,6 +1,6 @@ # Markdown -The markdown components renders a string in the CommonMark standard. The component also supports LaTeX (through MathJax), with `remark-math` and `rehype-mathjax`. Other plugins and markdown components are not supported. The markdown is wrapped in a `View`, which all props are passed to except for `children`. +The markdown component renders a string in the CommonMark standard. It also supports LaTeX (through MathJax), with `remark-math` and `rehype-mathjax`. Other plugins and markdown components are not supported. The markdown is wrapped in a `View`, which all props are passed to except for `children`. For individual lines of text, consider using `ui.text` and `ui.heading` instead. @@ -37,7 +37,7 @@ ui_markdown_example = ui_markdown() ## LaTeX -When writing LaTeX, be careful on how Python handles backslashes with escape characters. It is recommended to use raw strings to minimize this issue. +When writing LaTeX, be careful how Python handles backslashes with escape characters. To minimize this issue, it is recommended to use raw strings. ```python from deephaven import ui