@deephaven/embed-widget 0.94.1-beta.0 → 0.95.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/build/assets/{App-vPsYNR01.js → App-CwWtBiu-.js} +2 -2
  2. package/build/assets/App-CwWtBiu-.js.map +1 -0
  3. package/build/assets/{Chart-CUs2-mEg.js → Chart-B9rJzMrh.js} +2 -2
  4. package/build/assets/{Chart-CUs2-mEg.js.map → Chart-B9rJzMrh.js.map} +1 -1
  5. package/build/assets/{IrisGrid-D_SGNZes.js → IrisGrid-ByKbOZWm.js} +2 -2
  6. package/build/assets/{IrisGrid-D_SGNZes.js.map → IrisGrid-ByKbOZWm.js.map} +1 -1
  7. package/build/assets/{IrisGridThemeProvider-C-DoZoXl.js → IrisGridThemeProvider-irJImttC.js} +2 -2
  8. package/build/assets/{IrisGridThemeProvider-C-DoZoXl.js.map → IrisGridThemeProvider-irJImttC.js.map} +1 -1
  9. package/build/assets/{LocalWorkspaceStorage-CzVXUxd1.js → LocalWorkspaceStorage-BQlmJTPe.js} +2 -2
  10. package/build/assets/{LocalWorkspaceStorage-CzVXUxd1.js.map → LocalWorkspaceStorage-BQlmJTPe.js.map} +1 -1
  11. package/build/assets/{LogPanel-gMkgqISt.js → LogPanel-Cg9vSmXC.js} +2 -2
  12. package/build/assets/{LogPanel-gMkgqISt.js.map → LogPanel-Cg9vSmXC.js.map} +1 -1
  13. package/build/assets/{MarkdownEditor-BVCv6ylL.js → MarkdownEditor-1zeOkM33.js} +2 -2
  14. package/build/assets/{MarkdownEditor-BVCv6ylL.js.map → MarkdownEditor-1zeOkM33.js.map} +1 -1
  15. package/build/assets/{MarkdownNotebook-Ibb5qpfx.js → MarkdownNotebook-qBBOf8vq.js} +2 -2
  16. package/build/assets/{MarkdownNotebook-Ibb5qpfx.js.map → MarkdownNotebook-qBBOf8vq.js.map} +1 -1
  17. package/build/assets/{index-s64cc-h1.js → index-8fWKJDT0.js} +3 -3
  18. package/build/assets/{index-s64cc-h1.js.map → index-8fWKJDT0.js.map} +1 -1
  19. package/build/assets/index-Bpe4NMaa.css +1 -0
  20. package/build/assets/{index-Ce427kBv.js → index-C9ztydsU.js} +10 -10
  21. package/build/assets/index-C9ztydsU.js.map +1 -0
  22. package/build/assets/{index-BeeiJfkN.js → index-C_ypwWX8.js} +2 -2
  23. package/build/assets/{index-BeeiJfkN.js.map → index-C_ypwWX8.js.map} +1 -1
  24. package/build/index.html +2 -2
  25. package/package.json +17 -17
  26. package/build/assets/App-vPsYNR01.js.map +0 -1
  27. package/build/assets/index-CJv3wXAl.css +0 -1
  28. package/build/assets/index-Ce427kBv.js.map +0 -1
package/build/index.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <base href="./" />
5
- <meta name="ui-version" content="v0.94.0" />
5
+ <meta name="ui-version" content="v0.95.0" />
6
6
  <meta charset="utf-8" />
7
7
  <meta
8
8
  name="viewport"
@@ -12,7 +12,7 @@
12
12
  <link rel="manifest" href="./manifest.json" />
13
13
  <link rel="icon" href="./favicon-cc-app.svg" />
14
14
  <title>Deephaven Embedded Widget</title>
15
- <script type="module" crossorigin src="./assets/index-s64cc-h1.js"></script>
15
+ <script type="module" crossorigin src="./assets/index-8fWKJDT0.js"></script>
16
16
  <link rel="modulepreload" crossorigin href="./assets/helpers-BosuxZz1.js">
17
17
  <link rel="modulepreload" crossorigin href="./assets/vendor-C-mCkYSI.js">
18
18
  <link rel="stylesheet" crossorigin href="./assets/vendor-rLmjys1q.css">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/embed-widget",
3
- "version": "0.94.1-beta.0+96e3d432",
3
+ "version": "0.95.0",
4
4
  "description": "Deephaven Embedded Widget",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -16,18 +16,18 @@
16
16
  "build"
17
17
  ],
18
18
  "dependencies": {
19
- "@deephaven/app-utils": "^0.94.1-beta.0+96e3d432",
20
- "@deephaven/components": "^0.94.1-beta.0+96e3d432",
21
- "@deephaven/dashboard": "^0.94.1-beta.0+96e3d432",
22
- "@deephaven/dashboard-core-plugins": "^0.94.1-beta.0+96e3d432",
23
- "@deephaven/jsapi-bootstrap": "^0.94.1-beta.0+96e3d432",
24
- "@deephaven/jsapi-components": "^0.94.1-beta.0+96e3d432",
19
+ "@deephaven/app-utils": "^0.95.0",
20
+ "@deephaven/components": "^0.95.0",
21
+ "@deephaven/dashboard": "^0.95.0",
22
+ "@deephaven/dashboard-core-plugins": "^0.95.0",
23
+ "@deephaven/jsapi-bootstrap": "^0.95.0",
24
+ "@deephaven/jsapi-components": "^0.95.0",
25
25
  "@deephaven/jsapi-types": "^1.0.0-dev0.34.0",
26
- "@deephaven/jsapi-utils": "^0.94.1-beta.0+96e3d432",
27
- "@deephaven/log": "^0.94.1-beta.0+96e3d432",
28
- "@deephaven/plugin": "^0.94.1-beta.0+96e3d432",
29
- "@deephaven/redux": "^0.94.1-beta.0+96e3d432",
30
- "@deephaven/utils": "^0.94.1-beta.0+96e3d432",
26
+ "@deephaven/jsapi-utils": "^0.95.0",
27
+ "@deephaven/log": "^0.95.0",
28
+ "@deephaven/plugin": "^0.95.0",
29
+ "@deephaven/redux": "^0.95.0",
30
+ "@deephaven/utils": "^0.95.0",
31
31
  "@fontsource/fira-mono": "5.0.13",
32
32
  "@fontsource/fira-sans": "5.0.20",
33
33
  "nanoid": "5.0.7",
@@ -42,13 +42,13 @@
42
42
  "preview": "vite preview"
43
43
  },
44
44
  "devDependencies": {
45
- "@deephaven/eslint-config": "^0.94.1-beta.0+96e3d432",
46
- "@deephaven/mocks": "^0.94.1-beta.0+96e3d432",
47
- "@deephaven/prettier-config": "^0.94.1-beta.0+96e3d432",
48
- "@deephaven/stylelint-config": "^0.94.1-beta.0+96e3d432"
45
+ "@deephaven/eslint-config": "^0.95.0",
46
+ "@deephaven/mocks": "^0.95.0",
47
+ "@deephaven/prettier-config": "^0.95.0",
48
+ "@deephaven/stylelint-config": "^0.95.0"
49
49
  },
50
50
  "publishConfig": {
51
51
  "access": "public"
52
52
  },
53
- "gitHead": "96e3d4326a855ae67e65f036a909be130c66c40d"
53
+ "gitHead": "ec9b41e921e2122879f53e9a266084d529664680"
54
54
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"App-vPsYNR01.js","sources":["../../src/App.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { nanoid } from 'nanoid';\nimport {\n AppDashboards,\n GrpcLayoutStorage,\n LocalWorkspaceStorage,\n useConnection,\n useServerConfig,\n useUser,\n} from '@deephaven/app-utils';\nimport type GoldenLayout from '@deephaven/golden-layout';\nimport type { ItemConfig } from '@deephaven/golden-layout';\nimport {\n ContextMenuRoot,\n ErrorBoundary,\n LoadingOverlay,\n Shortcut,\n ShortcutRegistry,\n} from '@deephaven/components'; // Use the loading spinner from the Deephaven components package\nimport type { dh } from '@deephaven/jsapi-types';\nimport { fetchVariableDefinition } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { useDashboardPlugins } from '@deephaven/plugin';\nimport {\n getAllDashboardsData,\n listenForCreateDashboard,\n CreateDashboardPayload,\n setDashboardPluginData,\n stopListenForCreateDashboard,\n emitPanelOpen,\n} from '@deephaven/dashboard';\nimport {\n getVariableDescriptor,\n useApi,\n useClient,\n} from '@deephaven/jsapi-bootstrap';\nimport { EMPTY_ARRAY } from '@deephaven/utils';\nimport {\n setDefaultWorkspaceSettings,\n setWorkspace,\n setApi,\n setUser,\n setServerConfigValues,\n} from '@deephaven/redux';\nimport './App.scss'; // Styles for in this app\n\nconst log = Log.module('EmbedWidget.App');\n\nconst LAYOUT_SETTINGS = {\n hasHeaders: true,\n defaultComponentConfig: { isClosable: false },\n};\n\n/**\n * A functional React component that displays a Deephaven Widget using the @deephaven/plugin package.\n * It will attempt to open and display the widget specified with the `name` parameter, expecting it to be present on the server.\n * E.g. http://localhost:4010/?name=myWidget will attempt to open a widget `myWidget` by emitting a `PanelEvent.OPEN` event.\n * If no query param is provided, it will display an error.\n * By default, tries to connect to the server defined in the VITE_CORE_API_URL variable, which is set to http://localhost:10000/jsapi\n * See Vite docs for how to update these env vars: https://vitejs.dev/guide/env-and-mode.html\n */\nfunction App(): JSX.Element {\n const [error, setError] = useState<string>();\n const [definition, setDefinition] = useState<dh.ide.VariableDefinition>();\n const searchParams = useMemo(\n () => new URLSearchParams(window.location.search),\n []\n );\n // Get the widget name from the query param `name`.\n const name = searchParams.get('name');\n const api = useApi();\n const connection = useConnection();\n const client = useClient();\n const user = useUser();\n const dispatch = useDispatch();\n const serverConfig = useServerConfig();\n\n useEffect(\n function initializeApp() {\n async function initApp(): Promise<void> {\n try {\n if (name == null) {\n throw new Error('Missing URL parameter \"name\"');\n }\n\n const storageService = client.getStorageService();\n const layoutStorage = new GrpcLayoutStorage(\n storageService,\n import.meta.env.VITE_STORAGE_PATH_LAYOUTS ?? ''\n );\n const workspaceStorage = new LocalWorkspaceStorage(layoutStorage);\n const loadedWorkspace = await workspaceStorage.load({\n isConsoleAvailable: false,\n });\n const {\n data: { settings },\n } = loadedWorkspace;\n // Set any shortcuts that user has overridden on this platform\n const { shortcutOverrides = {} } = settings;\n const isMac = Shortcut.isMacPlatform;\n const platformOverrides = isMac\n ? shortcutOverrides.mac ?? {}\n : shortcutOverrides.windows ?? {};\n Object.entries(platformOverrides).forEach(([id, keyState]) => {\n ShortcutRegistry.get(id)?.setKeyState(keyState);\n });\n dispatch(setApi(api));\n dispatch(setServerConfigValues(serverConfig));\n dispatch(setUser(user));\n dispatch(setWorkspace(loadedWorkspace));\n dispatch(\n setDefaultWorkspaceSettings(\n LocalWorkspaceStorage.makeDefaultWorkspaceSettings(serverConfig)\n )\n );\n\n log.debug(`Loading widget definition for ${name}...`);\n\n const newDefinition = await fetchVariableDefinition(connection, name);\n\n setDefinition(newDefinition);\n\n log.debug(`Widget definition successfully loaded for ${name}`);\n } catch (e: unknown) {\n log.error(`Unable to load widget definition for ${name}`, e);\n setError(`${e}`);\n }\n }\n initApp();\n },\n [api, client, connection, dispatch, name, serverConfig, user]\n );\n\n const isLoaded = definition != null && error == null;\n const isLoading = definition == null && error == null;\n\n const fetch = useMemo(() => {\n if (definition == null) {\n return async () => {\n throw new Error('Definition is null');\n };\n }\n return () => connection.getObject(definition);\n }, [connection, definition]);\n\n const [goldenLayout, setGoldenLayout] = useState<GoldenLayout | null>(null);\n const [dashboardId, setDashboardId] = useState('default-embed-widget'); // Can't be DEFAULT_DASHBOARD_ID because its dashboard layout is not stored in dashboardData\n\n const handleGoldenLayoutChange = useCallback(\n (newLayout: GoldenLayout) => {\n function handleCreateDashboard({\n pluginId,\n data,\n }: CreateDashboardPayload) {\n const id = nanoid();\n dispatch(setDashboardPluginData(id, pluginId, data));\n setDashboardId(id);\n }\n\n setGoldenLayout(oldLayout => {\n if (oldLayout != null) {\n stopListenForCreateDashboard(\n oldLayout.eventHub,\n handleCreateDashboard\n );\n }\n listenForCreateDashboard(newLayout.eventHub, handleCreateDashboard);\n return newLayout;\n });\n },\n [dispatch]\n );\n\n const [hasEmittedWidget, setHasEmittedWidget] = useState(false);\n\n const handleDashboardInitialized = useCallback(() => {\n if (goldenLayout == null || definition == null || hasEmittedWidget) {\n return;\n }\n\n setHasEmittedWidget(true);\n emitPanelOpen(goldenLayout.eventHub, {\n fetch,\n widget: getVariableDescriptor(definition),\n });\n }, [goldenLayout, definition, fetch, hasEmittedWidget]);\n\n const allDashboardData = useSelector(getAllDashboardsData);\n\n const dashboardPlugins = useDashboardPlugins();\n\n const layoutConfig = (allDashboardData[dashboardId]?.layoutConfig ??\n EMPTY_ARRAY) as ItemConfig[];\n\n const hasMultipleComponents = useMemo(() => {\n function getComponentCount(config: ItemConfig[]) {\n if (config.length === 0) {\n return 0;\n }\n\n let count = 0;\n for (let i = 0; i < config.length; i += 1) {\n const item = config[i];\n if (item.type === 'react-component' || item.type === 'component') {\n count += 1;\n } else if (item.content != null) {\n count += getComponentCount(item.content);\n }\n }\n return count;\n }\n return getComponentCount(layoutConfig) > 1;\n }, [layoutConfig]);\n\n // Do this instead of changing layoutSettings because it will create\n // a new gl instance and can cause some loading failures likely due to\n // some race conditions w/ deephaven UI\n useEffect(\n function togglePanelHeaders() {\n if (goldenLayout != null) {\n if (hasMultipleComponents) {\n goldenLayout.enableHeaders();\n } else {\n goldenLayout.disableHeaders();\n }\n }\n },\n [hasMultipleComponents, goldenLayout]\n );\n\n return (\n <div className=\"App\">\n {isLoaded && (\n <ErrorBoundary>\n <AppDashboards\n dashboards={[\n {\n id: dashboardId,\n layoutConfig,\n layoutSettings: LAYOUT_SETTINGS,\n },\n ]}\n activeDashboard={dashboardId}\n onLayoutInitialized={handleDashboardInitialized}\n onGoldenLayoutChange={handleGoldenLayoutChange}\n plugins={dashboardPlugins}\n />\n </ErrorBoundary>\n )}\n {!isLoaded && (\n <LoadingOverlay\n isLoaded={isLoaded}\n isLoading={isLoading}\n errorMessage={error ?? null}\n />\n )}\n <ContextMenuRoot />\n </div>\n );\n}\n\nexport default App;\n"],"names":["log","Log","LAYOUT_SETTINGS","App","error","setError","useState","definition","setDefinition","name","useMemo","api","useApi","connection","useConnection","client","useClient","user","useUser","dispatch","useDispatch","serverConfig","useServerConfig","useEffect","initApp","storageService","layoutStorage","GrpcLayoutStorage","loadedWorkspace","LocalWorkspaceStorage","settings","shortcutOverrides","platformOverrides","Shortcut","id","keyState","ShortcutRegistry","setApi","setServerConfigValues","setUser","setWorkspace","setDefaultWorkspaceSettings","newDefinition","fetchVariableDefinition","isLoaded","isLoading","fetch","goldenLayout","setGoldenLayout","dashboardId","setDashboardId","handleGoldenLayoutChange","useCallback","newLayout","handleCreateDashboard","pluginId","data","nanoid","setDashboardPluginData","oldLayout","stopListenForCreateDashboard","listenForCreateDashboard","hasEmittedWidget","setHasEmittedWidget","handleDashboardInitialized","emitPanelOpen","getVariableDescriptor","allDashboardData","useSelector","getAllDashboardsData","dashboardPlugins","useDashboardPlugins","layoutConfig","_a","EMPTY_ARRAY","hasMultipleComponents","getComponentCount","config","count","i","item","jsxs","ErrorBoundary","jsx","AppDashboards","LoadingOverlay","ContextMenuRoot"],"mappings":"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"}
@@ -1 +0,0 @@
1
- .card-flip--show-front,.card-flip--show-back{display:grid;height:100%;width:100%;isolation:isolate;perspective:1000px}.card-flip--front,.card-flip--back{grid-area:1/1/2/2;transform-style:flat;backface-visibility:hidden;transition:transform .6s ease-in-out;overflow:hidden}.card-flip--show-back .card-flip--front{transform:rotateY(180deg)}.card-flip--show-back .card-flip--back,.card-flip--show-front .card-flip--front{transform:rotateY(0)}.card-flip--show-front .card-flip--back{transform:rotateY(-180deg)}.card-flip--is-flipping{overflow:hidden}.card-flip--is-flipping .card-flip--show-front,.card-flip--is-flipping .card-flip--show-back{z-index:1060}.btn-socketed{position:relative;display:inline-block;border:1px solid var(--dh-color-input-border);padding:.42145rem 1.5rem;color:var(--dh-color-neutral-contrast);background:var(--dh-color-action-bg);line-height:1.3;-webkit-user-select:none;user-select:none;border-radius:4px;transition:color .12s ease-in-out,background-color .12s ease-in-out,border-color .12s ease-in-out,box-shadow .12s ease-in-out;cursor:pointer}.btn-socketed:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%,50%);background:var(--dh-color-content-bg, #2d2a2e);width:18px;height:18px;border-radius:50%;border:1px solid var(--dh-color-input-border);transition:color .12s ease-in-out,background-color .12s ease-in-out,border-color .12s ease-in-out,box-shadow .12s ease-in-out}.btn-socketed:focus{border-color:var(--dh-color-input-focus-border);box-shadow:0 0 0 .2rem color-mix(in srgb,var(--dh-color-accent) 35%,transparent)}.btn-socketed:focus:after{border-color:var(--dh-color-input-focus-border)}.btn-socketed:hover{background-color:var(--dh-color-action-hover-bg);border-color:var(--dh-color-hover-border)}.btn-socketed:hover:after{border-color:var(--dh-color-hover-border)}.btn-socketed:active{border-color:var(--dh-color-hover-border);background-color:var(--dh-color-action-down-bg)}.btn-socketed .btn-socketed-icon{display:none}.btn-socketed:disabled,.btn-socketed:disabled:hover{cursor:not-allowed;border-color:var(--dh-color-action-disabled-border);background-color:var(--dh-color-action-disabled-bg)}.btn-socketed:disabled:after,.btn-socketed:disabled:hover:after{border-color:var(--dh-color-action-disabled-border)}.btn-socketed.btn-socketed-linked:after{border-color:var(--dh-color-accent-bg);background-color:var(--dh-color-accent-bg)}.btn-socketed.btn-socketed-linked.btn-socketed-linked-source:after{border-color:var(--dh-color-visual-purple);background-color:var(--dh-color-visual-purple)}.btn-socketed.btn-socketed-linked .btn-socketed-icon.linked{display:block;position:absolute;bottom:1px;left:50%;transform:translate(-50%,9px);z-index:1}.btn-socketed.btn-socketed-linked:disabled,.btn-socketed.btn-socketed-linked:disabled:hover{border-color:var(--dh-color-action-disabled-border);background-color:var(--dh-color-action-disabled-bg)}.btn-socketed.btn-socketed-linked:disabled:after,.btn-socketed.btn-socketed-linked:disabled:hover:after{background-color:var(--dh-color-accent-down-bg);border-color:var(--dh-color-action-disabled-border)}.btn-socketed.is-invalid,.btn-socketed.btn-socketed-linked.is-invalid{border-color:color-mix(in srgb,var(--dh-color-negative) 85%,transparent)}.btn-socketed.is-invalid:after,.btn-socketed.btn-socketed-linked.is-invalid:after{border-color:var(--dh-color-negative-bg);background-color:var(--dh-color-negative-bg)}.btn-socketed.is-invalid .btn-socketed-icon.linked,.btn-socketed.btn-socketed-linked.is-invalid .btn-socketed-icon.linked{display:none}.btn-socketed.is-invalid .btn-socketed-icon.is-invalid,.btn-socketed.btn-socketed-linked.is-invalid .btn-socketed-icon.is-invalid{color:var(--dh-color-action-bg);display:block;position:absolute;bottom:1px;left:50%;transform:translate(-50%,9px);z-index:1}.btn-socketed.is-invalid:focus,.btn-socketed.btn-socketed-linked.is-invalid:focus{box-shadow:0 0 0 .2rem color-mix(in srgb,var(--dh-color-negative) 35%,transparent)}.btn-socketed.is-invalid:disabled,.btn-socketed.is-invalid:disabled:hover,.btn-socketed.btn-socketed-linked.is-invalid:disabled,.btn-socketed.btn-socketed-linked.is-invalid:disabled:hover{border-color:var(--dh-color-action-disabled-border);background-color:var(--dh-color-action-disabled-bg)}.btn-socketed.is-invalid:disabled:after,.btn-socketed.is-invalid:disabled:hover:after,.btn-socketed.btn-socketed-linked.is-invalid:disabled:after,.btn-socketed.btn-socketed-linked.is-invalid:disabled:hover:after{background-color:var(--dh-color-action-disabled-bg);border-color:var(--dh-color-action-disabled-border)}.editor-container .monaco-editor{--vscode-scrollbar-shadow: var(--dh-color-dropshadow);font-family:var(--font-family-sans-serif)}.editor-container .monaco-editor .shadow-root-host{font-family:var(--font-family-sans-serif)}.editor-container .monaco-editor .detected-link{color:var(--dh-color-gray-600)}.script-editor{display:flex;flex-direction:column;flex-grow:1;position:relative}.tab-tooltip-grid-container{display:grid;grid-template-columns:auto 1fr;align-items:first baseline;max-width:300px;text-align:left}.tab-tooltip-grid-container .tab-tooltip-title{font-weight:700}.tab-tooltip-grid-container .tab-tooltip-name-wrapper{display:flex;flex-wrap:nowrap;align-items:first baseline;gap:.25rem}.tab-tooltip-grid-container .tab-tooltip-name{word-break:break-word}.tab-tooltip-grid-container hr.tab-tooltip-divider{grid-column:span 2;width:100%;margin:.25rem 0;border-color:var(--dh-color-gray-500)}.tab-tooltip-grid-container .tab-tooltip-description{grid-column:span 2;color:var(--dh-color-gray-600);padding-bottom:.25rem}.tab-tooltip-grid-container .tab-tooltip-statistic-value{font-feature-settings:"tnum";text-align:right;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.query-status-bar{position:absolute;bottom:0;left:0;z-index:30;text-align:left;display:block;padding:3px 5px;background:color-mix(in srgb,var(--dh-color-content-bg) 95%,transparent);color:var(--dh-color-gray-700);border-top:1px solid var(--dh-color-gray-500);border-right:1px solid var(--dh-color-gray-500);min-width:400px}.chart-filter-overlay .chart-filter-overlay-content .waiting-filter-list{margin-top:.5rem;margin-bottom:1.5rem}.chart-filter-overlay .chart-filter-overlay-content .waiting-filter-list .waiting-filter-item svg{margin-right:.5rem;color:var(--dh-color-visual-green)}.chart-filter-overlay .chart-filter-overlay-content .waiting-filter-list .waiting-filter-item.is-invalid svg{color:var(--dh-color-gray-600)}.chart-filter-overlay .chart-filter-overlay-content .btn{margin-bottom:1rem;margin-right:1rem}.chart-filter-overlay .chart-filter-overlay-content.chart-filter-waiting-filter .info-message,.chart-filter-overlay .chart-filter-overlay-content.chart-filter-waiting-filter .waiting-filter-list{text-align:left}.chart-column-selector-overlay .chart-panel-overlay-content .waiting-column-select-list{margin-top:.5rem;margin-bottom:1.5rem}.chart-column-selector-overlay .chart-panel-overlay-content .waiting-column-select-list .btn-chart-column-selector{margin-bottom:1rem;margin-right:1rem}.iris-chart-panel{overflow:hidden}.iris-chart-panel.disconnected .chart-container,.iris-chart-panel.inactive .chart-container,.iris-chart-panel.input-required .chart-container{filter:grayscale(100%)}.iris-chart-panel.disconnected .chart-container{opacity:.18}.chart-panel-overlay{background-color:color-mix(in srgb,var(--dh-color-bg) 80%,transparent);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);position:absolute;top:0;bottom:0;left:0;right:0;display:flex;text-align:center;flex-direction:column;justify-content:center;align-items:center;overflow:auto}.chart-panel-overlay .chart-panel-overlay-content{display:flex;flex-direction:column;justify-content:center;white-space:pre-line;max-width:450px;margin:1rem}.chart-panel-overlay .chart-panel-overlay-content .info-message{font-size:1.2rem}.dropdown-filter-panel-component .lm_content{overflow:visible}.dropdown-filter{background:var(--dh-color-bg, #1a171a)}.dropdown-filter .error-message{color:var(--dh-color-negative-bg);margin-bottom:1.5rem;font-size:1rem}.dropdown-filter .dropdown-filter-settings-card,.dropdown-filter .dropdown-filter-value-card{position:relative;overflow:auto;height:100%;background:var(--dh-color-content-bg, #2d2a2e)}.dropdown-filter .dropdown-filter-card-content{margin:auto;padding:.25rem}.dropdown-filter .dropdown-filter-settings-card{display:flex;justify-content:center;align-items:center}.dropdown-filter .dropdown-filter-settings-grid{display:grid;grid-template-columns:max-content min-max(min-content,350px);column-gap:.5rem;row-gap:.5rem;padding-bottom:1rem}.dropdown-filter .dropdown-filter-settings-grid label{padding-top:calc(.42145rem + 2px);margin-bottom:0}.dropdown-filter .dropdown-filter-settings-grid .text-muted{grid-column-start:2}.dropdown-filter .dropdown-filter-settings-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap}.dropdown-filter .dropdown-filter-value-card{display:flex;justify-content:center;align-items:center}.dropdown-filter .dropdown-filter-column{position:absolute;top:0;left:0;padding:.5rem;color:var(--dh-color-gray-600);font-size:small}.dropdown-filter .dropdown-filter-menu{position:absolute;top:0;right:0}.dropdown-filter .dropdown-filter-value-input{max-width:100%;padding:.25rem}.dropdown-filter .dropdown-filter-value-input input{font-size:x-large;color:var(--dh-color-fg, #f0f0ee);text-align:center;background:transparent;border:none;border-bottom:1px solid var(--dh-color-gray-600);max-width:100%}.dropdown-filter .dropdown-filter-value-input input:focus{outline:none;border-bottom:1px solid var(--dh-color-input-focus-border);box-shadow:0 .2rem color-mix(in srgb,var(--dh-color-accent) 35%,transparent)}.iris-dropdown-filter-panel{padding-top:1rem}.filter-set-manager-panel-component .lm_content{z-index:15;overflow:visible}.filter-set-manager-panel-component .react-card-front,.filter-set-manager-panel-component .react-card-back{overflow:hidden}.filter-set-manager{background:var(--dh-color-bg, #1a171a)}.filter-set-manager .error-message{color:var(--dh-color-negative-bg);font-size:1rem}.filter-set-manager .filter-set-manager-settings-card,.filter-set-manager .filter-set-manager-value-card{background:var(--dh-color-content-bg, #2d2a2e)}.filter-set-manager .filter-set-manager-card-content{display:flex;flex-direction:column;justify-content:center;padding:1rem;max-width:320px;min-width:250px;margin:0 auto;width:100%;min-height:100%}.filter-set-manager .filter-set-manager-settings-card{overflow:auto}.filter-set-manager .filter-set-manager-settings-grid{display:grid;grid-template-columns:max-content min-max(min-content,350px);column-gap:.5rem;row-gap:.5rem;padding-bottom:1rem}.filter-set-manager .filter-set-manager-settings-grid label{padding-top:calc(.42145rem + 2px);margin-bottom:0}.filter-set-manager .filter-set-manager-settings-grid .text-muted{grid-column-start:2}.filter-set-manager .filter-set-manager-settings-buttons{display:flex;justify-content:flex-end}.filter-set-manager .filter-set-manager-value-card{overflow:auto}.filter-set-manager .filter-set-manager-value-card .filter-set-manager-card-content{min-width:170px}.filter-set-manager .filter-set-manager-column{position:absolute;top:0;left:0;padding:.5rem;color:var(--dh-color-gray-600);font-size:small}.filter-set-manager .filter-set-manager-menu{position:absolute;top:0;right:0}.filter-set-manager .filter-set-manager-value-input{max-width:100%;padding:.25rem}.filter-set-manager .filter-set-manager-value-input input{font-size:x-large;color:var(--dh-color-fg, #f0f0ee);text-align:center;background:transparent;border:none;border-bottom:1px solid var(--dh-color-gray-600);max-width:100%}.filter-set-manager .filter-set-manager-value-input input:focus{outline:none;border-bottom:1px solid var(--dh-color-input-focus-border);box-shadow:0 .2rem color-mix(in srgb,var(--dh-color-accent) 35%,transparent)}.filter-set-manager .name-input-container{display:flex;flex-direction:row;align-items:stretch;flex:0 1 auto}.filter-set-manager .name-input-container .name-set-input{flex:1;margin-right:.5rem}.filter-set-manager .filter-select-container{display:flex;flex-direction:row;align-items:stretch;flex:0 1 auto}.filter-set-manager .filter-select-container .filter-value-select{flex:1;margin-right:.5rem}.iris-grid-panel.disconnected .iris-grid{filter:grayscale(100%);opacity:.18}.iris-grid-panel.inactive .iris-grid{filter:grayscale(100%)}.iris-grid-panel .iris-panel-message-overlay{padding-top:30px}.iris-grid-plugin .error-message{padding:.25rem;color:var(--dh-color-negative-bg)}.input-filter-panel-component .lm_content{overflow:visible}.input-filter{background:var(--dh-color-bg, #1a171a)}.input-filter .input-filter-settings-card,.input-filter .input-filter-value-card{position:relative;overflow:auto;height:100%;background:var(--dh-color-content-bg, #2d2a2e)}.input-filter .input-filter-settings-card{display:flex;justify-content:center;align-items:center}.input-filter .input-filter-settings-content{margin:auto;padding:.25rem}.input-filter .input-filter-settings-grid{display:grid;max-width:500px;grid-template-columns:max-content min-max(min-content,350px);column-gap:.5rem;row-gap:.5rem;padding-bottom:1rem}.input-filter .input-filter-settings-grid label{padding-top:calc(.42145rem + 2px)}.input-filter .input-filter-settings-grid .text-muted{grid-column-start:2}.input-filter .input-filter-settings-buttons{display:flex;justify-content:flex-end}.input-filter .input-filter-column{position:absolute;top:0;left:0;padding:.5rem;color:var(--dh-color-gray-600);font-size:small}.input-filter .input-filter-menu{position:absolute;top:0;right:0}.input-filter .input-filter-value-input{max-width:100%;padding:.25rem}.input-filter .input-filter-value-input input{font-size:x-large;color:var(--dh-color-fg, #f0f0ee);text-align:center;background:transparent;border:none;border-bottom:1px solid var(--dh-color-gray-600);max-width:100%}.input-filter .input-filter-value-input input:focus{outline:none;border-bottom:1px solid var(--dh-color-input-focus-border);box-shadow:0 .2rem color-mix(in srgb,var(--dh-color-accent) 35%,transparent)}.filter-set-manager-panel{padding-top:1rem}.screen-flash-overlay{z-index:1070;position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;opacity:0;mix-blend-mode:color-dodge;pointer-events:none;animation-duration:.4s;animation-name:flash;animation-timing-function:ease-out}@keyframes flash{0%{opacity:0}10%{opacity:1}to{opacity:0}}.markdown-editor-container{padding:5px}.markdown-editor-container .edit-hint{padding:5px 20px;text-align:right;width:100%;min-height:30px;height:30px;opacity:0;-webkit-user-select:none;user-select:none;transition:opacity .15s ease-out}.markdown-editor-container .markdown-editor-container{height:calc(100% - 40px);padding:0 15px;overflow:auto}.markdown-editor-container:hover .edit-hint.viewing{opacity:1}.markdown-editor-container blockquote{border-left:.25em solid var(--dh-color-gray-600);padding:0 1em;color:var(--dh-color-fg, #f0f0ee)}.markdown-editor-container code{color:var(--dh-color-fg, #f0f0ee);background:var(--dh-color-gray-400);padding:2px .5rem;border-radius:4px;border:1px solid var(--dh-color-black, #1a171a)}.markdown-editor-container pre>code{display:block;padding:.5rem}.markdown-panel-start-page{overflow:auto;padding:50px}.markdown-panel-start-page .markdown-panel-start-page-container .markdown-panel-start-list{padding-bottom:20px}.markdown-panel-start-page .markdown-panel-start-page-container .markdown-panel-start-list .list-title{padding-left:calc(1rem + 2px)}.markdown-panel-start-page .markdown-panel-start-page-container .markdown-panel-start-list .list-item{color:var(--dh-color-accent-bg);border-radius:25px;width:28rem;max-width:28rem;cursor:pointer;display:flex;justify-content:space-between}.markdown-panel-start-page .markdown-panel-start-page-container .markdown-panel-start-list .list-item button.title{padding:.375rem 1rem;color:var(--dh-color-accent-bg);text-align:left;overflow:hidden;text-overflow:ellipsis}.markdown-panel-start-page .markdown-panel-start-page-container .markdown-panel-start-list .list-item button.icon{visibility:hidden;position:relative;background:none;border:none;color:var(--dh-color-gray-500);cursor:pointer;margin:0;padding:.375px;padding-right:1.75rem}.markdown-panel-start-page .markdown-panel-start-page-container .markdown-panel-start-list .list-item:hover{background:var(--dh-color-gray-300)}.markdown-panel-start-page .markdown-panel-start-page-container .markdown-panel-start-list .list-item:hover button.icon{visibility:visible}.markdown-panel-start-page .markdown-panel-start-page-container .markdown-panel-start-list .list-item:hover button.icon:hover{color:var(--dh-color-accent-bg)}.markdown-panel-start-page .markdown-panel-start-page-container .markdown-panel-start-list .list-item:hover button.icon:focus{outline:none}.notebook-title.is-preview{font-style:italic}.notebook-session-not-connected{padding:.5rem;color:var(--dh-color-gray-500)}.notebook-container{display:flex;flex-direction:column}.notebook-container .notebook-toolbar{display:flex;justify-content:center;flex-direction:row;background:var(--dh-color-content-bg, #2d2a2e);border-bottom:2px solid var(--dh-color-bg, #1a171a);padding:.25rem .5rem;gap:.25rem}.notebook-container .notebook-toolbar .btn-play:hover,.notebook-container .notebook-toolbar .btn-play-selected:hover{color:var(--dh-color-visual-green)}.notebook-container .notebook-toolbar .icon-create-pq{transform:translateY(-4px)}.btn-pandas{width:100%;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-content:center;padding:.25rem .5rem;background-color:var(--dh-color-accent-down-bg);border:none;border-radius:0}.linker-overlay .linker-link{position:absolute;width:100%;height:100%}.linker-overlay .linker-link .link-dot,.linker-overlay .linker-link .link-triangle{fill:var(--dh-color-visual-cyan)}.linker-overlay .linker-link path{stroke-width:3;fill:transparent;stroke:var(--dh-color-cyan-700);pointer-events:none;transition:stroke .15s ease-out}.linker-overlay .linker-link path.link-foreground{stroke:var(--dh-color-visual-cyan);stroke-dasharray:10;animation:dash-forward 1.5s linear infinite}.linker-overlay .linker-link path.link-select{stroke-width:20;fill:transparent;stroke:transparent;pointer-events:stroke;cursor:pointer}.linker-overlay .linker-link.link-is-selected{z-index:20}.linker-overlay .linker-link.link-is-selected .link-dot,.linker-overlay .linker-link.link-is-selected .link-triangle{fill:var(--dh-color-accent-bg)}.linker-overlay .linker-link.link-is-selected path{stroke-width:3;stroke:var(--dh-color-accent-400)}.linker-overlay .linker-link.link-is-selected path.link-select{stroke-width:20;stroke:transparent}.linker-overlay .linker-link.link-is-selected path.link-foreground{stroke:var(--dh-color-accent-bg)}.linker-overlay .linker-link.link-filter-source .link-dot,.linker-overlay .linker-link.link-filter-source .link-triangle{fill:var(--dh-color-visual-purple)}.linker-overlay .linker-link.link-filter-source path{stroke-width:3;stroke:var(--dh-color-purple-500)}.linker-overlay .linker-link.link-filter-source path.link-select{stroke-width:20;stroke:transparent}.linker-overlay .linker-link.link-filter-source path.link-foreground{stroke:var(--dh-color-visual-purple)}.linker-overlay .linker-link.link-invalid .link-dot,.linker-overlay .linker-link.link-invalid .link-triangle{fill:var(--dh-color-gray-700)}.linker-overlay .linker-link.link-invalid path{stroke-width:3;stroke:var(--dh-color-gray-400)}.linker-overlay .linker-link.link-invalid path.link-select{stroke-width:20;stroke:transparent}.linker-overlay .linker-link.link-invalid path.link-foreground{stroke:var(--dh-color-gray-700)}.linker-overlay .linker-link.disabled path.link-select{pointer-events:none}.linker-overlay .linker-link.hovering{z-index:10}.linker-overlay .linker-link path.link-select:hover~path.link-background{stroke:var(--dh-color-accent-hover-bg)}.linker-overlay .linker-link path.link-select:hover~path.link-foreground,.linker-overlay .linker-link path.link-select:hover~.link-dot,.linker-overlay .linker-link path.link-select:hover~.link-triangle{stroke:var(--dh-color-accent-bg)}.linker-overlay .linker-link path.link-select:hover~.link-dot,.linker-overlay .linker-link path.link-select:hover~.link-triangle{fill:var(--dh-color-accent-bg)}.linker-overlay .linker-link.danger-delete path.link-select{cursor:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='32px'%20height='32px'%20viewBox='0%200%2032%2032'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3c!--%20Generator:%20Sketch%2057.1%20(83088)%20-%20https://sketch.com%20--%3e%3ctitle%3eUnlinker-Cursor%3c/title%3e%3cdesc%3eCreated%20with%20Sketch.%3c/desc%3e%3cg%20id='Unlinker-Cursor'%20stroke='none'%20stroke-width='1'%20fill='none'%20fill-rule='evenodd'%3e%3cpath%20d='M10,0%20L10,6%20L16,6%20L16,10%20L10,10%20L10,16%20L6,16%20L6,9.999%20L0,10%20L0,6%20L6,5.999%20L6,0%20L10,0%20Z'%20id='Combined-Shape-Copy-10'%20fill='%23FFFFFF'%20fill-rule='nonzero'%3e%3c/path%3e%3cpath%20d='M9,1%20L9,7%20L15,7%20L15,9%20L9,9%20L9,15%20L7,15%20L7,8.999%20L1,9%20L1,7%20L7,6.999%20L7,1%20L9,1%20Z'%20id='Combined-Shape-Copy-11'%20fill='%23000000'%20fill-rule='nonzero'%3e%3c/path%3e%3cpath%20d='M24.1146546,26.2492284%20L24.114708,26.2492818%20C24.513682,26.6483395%2024.513682,27.295241%2024.1146606,27.6944292%20L21.827526,29.9815321%20C19.6697366,32.1394012%2016.1763375,32.1395202%2014.0184366,29.9815397%20C11.8605575,27.823658%2011.8604861,24.3304422%2014.0184334,22.1724538%20L16.3055918,19.8852583%20C16.7046494,19.4862834%2017.3515514,19.4862834%2017.7507363,19.8853025%20L18.5462586,20.6808257%20C18.94524,21.0798908%2018.94524,21.7268263%2018.5462144,22.1259356%20L16.2854705,24.3866821%20C15.3231623,25.3489914%2015.3360027,26.8580365%2016.2971437,27.7781869%20C17.2167796,28.6586212%2018.6792764,28.6485445%2019.5868549,27.7409378%20L21.8740314,25.4537929%20C22.2730574,25.0547664%2022.9199934,25.0547664%2023.3191766,25.4537838%20L24.1146546,26.2492284%20Z%20M22.1259343,18.5462114%20L22.1258901,18.5462556%20C21.726838,18.945225%2021.079902,18.9452507%2020.6808143,18.5462457%20L19.8852478,17.7506783%20C19.486318,17.3515817%2019.486318,16.7046802%2019.8853362,16.3055783%20L22.1724816,14.0184302%20C24.3304345,11.8604748%2027.8237562,11.8605819%2029.9815558,14.0184227%20C32.1395409,16.1763333%2032.1394219,19.6697697%2029.9815666,21.8275505%20L27.694364,24.1147902%20C27.2952675,24.5137209%2026.6483655,24.5137209%2026.2492637,24.1147018%20L25.4536972,23.3191343%20C25.05476,22.9200304%2025.05476,22.2730948%2025.4537825,21.8740719%20L27.7409246,19.5868927%20C28.6482929,18.6794961%2028.6586888,17.2173387%2027.7786145,16.2975706%20C26.8585351,15.3360042%2025.3491308,15.3230111%2024.3866438,16.2854992%20L22.1259343,18.5462114%20Z%20M30.5051988,31.3006891%20C30.1061439,31.6997444%2029.4591738,31.6997701%2029.0600444,31.3007234%20L12.6992004,14.9398599%20C12.3002706,14.5407633%2012.3002706,13.8938618%2012.6992797,13.4947691%20L13.494821,12.6991925%20C13.8939175,12.3002618%2014.5408195,12.3002618%2014.9399208,12.6992805%20L31.3007652,29.0601101%20C31.6996951,29.4592067%2031.6996951,30.1061082%2031.3006768,30.50521%20L30.5051988,31.3006891%20Z'%20id='u'%20stroke='%23FFFFFF'%20stroke-width='1.2'%20fill='%23000000'%20fill-rule='nonzero'%3e%3c/path%3e%3c/g%3e%3c/svg%3e") 8 8,pointer}.linker-overlay .linker-link.danger-delete path.link-select:hover~path.link-background{stroke:var(--dh-color-negative-down-bg)}.linker-overlay .linker-link.danger-delete path.link-select:hover~path.link-foreground,.linker-overlay .linker-link.danger-delete path.link-select:hover~.link-dot,.linker-overlay .linker-link.danger-delete path.link-select:hover~.link-triangle{stroke:var(--dh-color-visual-negative)}.linker-overlay .linker-link.danger-delete path.link-select:hover~.link-dot,.linker-overlay .linker-link.danger-delete path.link-select:hover~.link-triangle{fill:var(--dh-color-visual-negative)}.linker-overlay .btn-fab{position:absolute;display:flex;justify-content:center;align-items:center;pointer-events:all;min-width:calc(1.3em + .8429rem + 2px);min-height:calc(1.3em + .8429rem + 2px);height:calc(1.3em + .8429rem + 2px);width:calc(1.3em + .8429rem + 2px);line-height:1.25rem;padding:0;margin:0;z-index:30;box-shadow:0 .1rem 1rem var(--dh-color-dropshadow)}.linker-overlay .btn-fab .fa-layers{display:inline-flex;justify-content:center}.linker-overlay .btn-fab .fa-layers b{font-size:1.25rem}.linker-overlay .btn-fab.btn-delete:hover{background-color:var(--dh-color-visual-negative);border-color:var(--dh-color-visual-negative)}@keyframes dash-forward{to{stroke-dashoffset:-20}}.linker-overlay{z-index:1030;position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none}.linker-overlay .linker-toast-dialog{display:grid;grid-template-areas:"drag-handle body" "drag-handle footer";position:absolute;right:1rem;bottom:1rem;background:var(--dh-color-content-bg, #2d2a2e);width:400px;pointer-events:auto;box-shadow:0 .1rem 1rem var(--dh-color-dropshadow);z-index:1060}.linker-overlay .linker-toast-dialog .btn-drag-handle{grid-area:drag-handle;cursor:grab;border:none;border-radius:0;height:100%;color:var(--dh-color-gray-500);min-width:unset;-webkit-user-select:none;user-select:none}.linker-overlay .linker-toast-dialog .btn-drag-handle svg{margin:0!important}.linker-overlay .linker-toast-dialog .btn-drag-handle:hover{border:none}.linker-overlay .linker-toast-dialog.dragging{cursor:grabbing}.linker-overlay .linker-toast-dialog.dragging .btn-drag-handle{cursor:grabbing;border:none}.linker-overlay .linker-toast-dialog .toast-body{grid-area:body;padding:1rem}.linker-overlay .linker-toast-dialog .toast-footer{grid-area:footer;padding:1rem;display:flex;justify-content:flex-end}.linker-overlay .linker-toast-dialog .toast-footer .btn:not(:last-child){margin-right:1rem}