@vuu-ui/vuu-shell 0.8.43 → 0.8.45
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.
- package/cjs/connection-status/ConnectionStatusIndicator.css.js +6 -0
- package/cjs/connection-status/ConnectionStatusIndicator.css.js.map +1 -0
- package/cjs/connection-status/{ConnectionStatusIcon.js → ConnectionStatusIndicator.js} +12 -3
- package/cjs/connection-status/ConnectionStatusIndicator.js.map +1 -0
- package/cjs/index.js +2 -2
- package/cjs/layout-management/LayoutList.css.js +6 -0
- package/cjs/layout-management/LayoutList.css.js.map +1 -0
- package/cjs/layout-management/LayoutList.js +9 -0
- package/cjs/layout-management/LayoutList.js.map +1 -1
- package/cjs/layout-management/LayoutTile.css.js +6 -0
- package/cjs/layout-management/LayoutTile.css.js.map +1 -0
- package/cjs/layout-management/LayoutTile.js +9 -0
- package/cjs/layout-management/LayoutTile.js.map +1 -1
- package/cjs/layout-management/SaveLayoutPanel.css.js +6 -0
- package/cjs/layout-management/SaveLayoutPanel.css.js.map +1 -0
- package/cjs/layout-management/SaveLayoutPanel.js +9 -0
- package/cjs/layout-management/SaveLayoutPanel.js.map +1 -1
- package/cjs/left-nav/LeftNav.css.js +6 -0
- package/cjs/left-nav/LeftNav.css.js.map +1 -0
- package/cjs/left-nav/LeftNav.js +9 -0
- package/cjs/left-nav/LeftNav.js.map +1 -1
- package/cjs/login/LoginPanel.css.js +6 -0
- package/cjs/login/LoginPanel.css.js.map +1 -0
- package/cjs/login/LoginPanel.js +9 -0
- package/cjs/login/LoginPanel.js.map +1 -1
- package/cjs/persistence-management/LocalPersistenceManager.js +2 -0
- package/cjs/persistence-management/LocalPersistenceManager.js.map +1 -1
- package/cjs/persistence-management/RemotePersistenceManager.js +2 -0
- package/cjs/persistence-management/RemotePersistenceManager.js.map +1 -1
- package/cjs/session-editing-form/SessionEditingForm.css.js +6 -0
- package/cjs/session-editing-form/SessionEditingForm.css.js.map +1 -0
- package/cjs/session-editing-form/SessionEditingForm.js +9 -0
- package/cjs/session-editing-form/SessionEditingForm.js.map +1 -1
- package/cjs/shell-layouts/context-panel/ContextPanel.css.js +6 -0
- package/cjs/shell-layouts/context-panel/ContextPanel.css.js.map +1 -0
- package/cjs/shell-layouts/context-panel/ContextPanel.js +9 -0
- package/cjs/shell-layouts/context-panel/ContextPanel.js.map +1 -1
- package/cjs/shell-layouts/side-panel/SidePanel.css.js +6 -0
- package/cjs/shell-layouts/side-panel/SidePanel.css.js.map +1 -0
- package/cjs/shell-layouts/side-panel/SidePanel.js +9 -0
- package/cjs/shell-layouts/side-panel/SidePanel.js.map +1 -1
- package/cjs/theme-switch/ThemeSwitch.css.js +6 -0
- package/cjs/theme-switch/ThemeSwitch.css.js.map +1 -0
- package/cjs/theme-switch/ThemeSwitch.js +9 -0
- package/cjs/theme-switch/ThemeSwitch.js.map +1 -1
- package/esm/connection-status/ConnectionStatusIndicator.css.js +4 -0
- package/esm/connection-status/ConnectionStatusIndicator.css.js.map +1 -0
- package/esm/connection-status/{ConnectionStatusIcon.js → ConnectionStatusIndicator.js} +12 -3
- package/esm/connection-status/ConnectionStatusIndicator.js.map +1 -0
- package/esm/index.js +1 -1
- package/esm/layout-management/LayoutList.css.js +4 -0
- package/esm/layout-management/LayoutList.css.js.map +1 -0
- package/esm/layout-management/LayoutList.js +9 -0
- package/esm/layout-management/LayoutList.js.map +1 -1
- package/esm/layout-management/LayoutTile.css.js +4 -0
- package/esm/layout-management/LayoutTile.css.js.map +1 -0
- package/esm/layout-management/LayoutTile.js +9 -0
- package/esm/layout-management/LayoutTile.js.map +1 -1
- package/esm/layout-management/SaveLayoutPanel.css.js +4 -0
- package/esm/layout-management/SaveLayoutPanel.css.js.map +1 -0
- package/esm/layout-management/SaveLayoutPanel.js +9 -0
- package/esm/layout-management/SaveLayoutPanel.js.map +1 -1
- package/esm/left-nav/LeftNav.css.js +4 -0
- package/esm/left-nav/LeftNav.css.js.map +1 -0
- package/esm/left-nav/LeftNav.js +9 -0
- package/esm/left-nav/LeftNav.js.map +1 -1
- package/esm/login/LoginPanel.css.js +4 -0
- package/esm/login/LoginPanel.css.js.map +1 -0
- package/esm/login/LoginPanel.js +9 -0
- package/esm/login/LoginPanel.js.map +1 -1
- package/esm/persistence-management/LocalPersistenceManager.js +2 -0
- package/esm/persistence-management/LocalPersistenceManager.js.map +1 -1
- package/esm/persistence-management/RemotePersistenceManager.js +2 -0
- package/esm/persistence-management/RemotePersistenceManager.js.map +1 -1
- package/esm/session-editing-form/SessionEditingForm.css.js +4 -0
- package/esm/session-editing-form/SessionEditingForm.css.js.map +1 -0
- package/esm/session-editing-form/SessionEditingForm.js +9 -0
- package/esm/session-editing-form/SessionEditingForm.js.map +1 -1
- package/esm/shell-layouts/context-panel/ContextPanel.css.js +4 -0
- package/esm/shell-layouts/context-panel/ContextPanel.css.js.map +1 -0
- package/esm/shell-layouts/context-panel/ContextPanel.js +9 -0
- package/esm/shell-layouts/context-panel/ContextPanel.js.map +1 -1
- package/esm/shell-layouts/side-panel/SidePanel.css.js +4 -0
- package/esm/shell-layouts/side-panel/SidePanel.css.js.map +1 -0
- package/esm/shell-layouts/side-panel/SidePanel.js +9 -0
- package/esm/shell-layouts/side-panel/SidePanel.js.map +1 -1
- package/esm/theme-switch/ThemeSwitch.css.js +4 -0
- package/esm/theme-switch/ThemeSwitch.css.js.map +1 -0
- package/esm/theme-switch/ThemeSwitch.js +9 -0
- package/esm/theme-switch/ThemeSwitch.js.map +1 -1
- package/package.json +16 -11
- package/types/connection-status/{ConnectionStatusIcon.d.ts → ConnectionStatusIndicator.d.ts} +1 -2
- package/types/connection-status/index.d.ts +1 -1
- package/types/layout-management/LayoutList.d.ts +0 -1
- package/types/layout-management/LayoutTile.d.ts +0 -1
- package/types/layout-management/SaveLayoutPanel.d.ts +0 -1
- package/types/left-nav/LeftNav.d.ts +0 -1
- package/types/login/LoginPanel.d.ts +0 -1
- package/types/session-editing-form/SessionEditingForm.d.ts +0 -1
- package/types/shell-layouts/context-panel/ContextPanel.d.ts +0 -1
- package/types/shell-layouts/side-panel/SidePanel.d.ts +0 -1
- package/types/theme-switch/ThemeSwitch.d.ts +0 -1
- package/cjs/connection-status/ConnectionStatusIcon.css +0 -68
- package/cjs/connection-status/ConnectionStatusIcon.js.map +0 -1
- package/cjs/layout-management/LayoutList.css +0 -86
- package/cjs/layout-management/LayoutTile.css +0 -28
- package/cjs/layout-management/SaveLayoutPanel.css +0 -130
- package/cjs/left-nav/LeftNav.css +0 -178
- package/cjs/login/LoginPanel.css +0 -70
- package/cjs/session-editing-form/SessionEditingForm.css +0 -53
- package/cjs/shell-layouts/context-panel/ContextPanel.css +0 -58
- package/cjs/shell-layouts/side-panel/SidePanel.css +0 -4
- package/cjs/theme-switch/ThemeSwitch.css +0 -30
- package/esm/connection-status/ConnectionStatusIcon.css +0 -68
- package/esm/connection-status/ConnectionStatusIcon.js.map +0 -1
- package/esm/layout-management/LayoutList.css +0 -86
- package/esm/layout-management/LayoutTile.css +0 -28
- package/esm/layout-management/SaveLayoutPanel.css +0 -130
- package/esm/left-nav/LeftNav.css +0 -178
- package/esm/login/LoginPanel.css +0 -70
- package/esm/session-editing-form/SessionEditingForm.css +0 -53
- package/esm/shell-layouts/context-panel/ContextPanel.css +0 -58
- package/esm/shell-layouts/side-panel/SidePanel.css +0 -4
- package/esm/theme-switch/ThemeSwitch.css +0 -30
- package/types/feature/css-module-loader.d.ts +0 -1
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import cx from 'clsx';
|
|
4
|
+
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
5
|
+
import { useWindow } from '@salt-ds/window';
|
|
6
|
+
import sidePanelCss from './SidePanel.css.js';
|
|
4
7
|
|
|
5
8
|
const classBase = "vuuShellSidePanel";
|
|
6
9
|
const SidePanel = ({
|
|
@@ -11,6 +14,12 @@ const SidePanel = ({
|
|
|
11
14
|
style: styleProp,
|
|
12
15
|
...htmlAttributes
|
|
13
16
|
}) => {
|
|
17
|
+
const targetWindow = useWindow();
|
|
18
|
+
useComponentCssInjection({
|
|
19
|
+
testId: "vuu-side-panel",
|
|
20
|
+
css: sidePanelCss,
|
|
21
|
+
window: targetWindow
|
|
22
|
+
});
|
|
14
23
|
const style = useMemo(
|
|
15
24
|
() => ({
|
|
16
25
|
...styleProp,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidePanel.js","sources":["../../../src/shell-layouts/side-panel/SidePanel.tsx"],"sourcesContent":["import { CSSProperties, HTMLAttributes, useMemo } from \"react\";\nimport cx from \"clsx\";\n\nimport \"./SidePanel.css\";\n// import { useLayoutManager } from \"../../layout-management\";\n\nconst classBase = \"vuuShellSidePanel\";\n\nexport interface SidePanelProps extends HTMLAttributes<HTMLDivElement> {\n open?: boolean;\n path?: string;\n sizeOpen?: number;\n sizeClosed?: number;\n}\n\nexport const SidePanel = ({\n children,\n open = true,\n sizeClosed = 90,\n sizeOpen = 200,\n style: styleProp,\n ...htmlAttributes\n}: SidePanelProps) => {\n // const { applicationJson, saveApplicationSettings } = useLayoutManager();\n // console.log(`settings`, {\n // expanded: applicationJson?.settings?.leftNav?.expanded,\n // active: applicationJson?.settings?.leftNav?.activeTabIndex,\n // });\n\n const style = useMemo(\n () =>\n ({\n ...styleProp,\n \"--shell-left-nav-size\": open ? `${sizeOpen}px` : `${sizeClosed}px`,\n } as CSSProperties),\n [open, sizeClosed, sizeOpen, styleProp]\n );\n return (\n <div {...htmlAttributes} className={cx(classBase)} style={style}>\n {children}\n </div>\n );\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SidePanel.js","sources":["../../../src/shell-layouts/side-panel/SidePanel.tsx"],"sourcesContent":["import { CSSProperties, HTMLAttributes, useMemo } from \"react\";\nimport cx from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport sidePanelCss from \"./SidePanel.css\";\n// import { useLayoutManager } from \"../../layout-management\";\n\nconst classBase = \"vuuShellSidePanel\";\n\nexport interface SidePanelProps extends HTMLAttributes<HTMLDivElement> {\n open?: boolean;\n path?: string;\n sizeOpen?: number;\n sizeClosed?: number;\n}\n\nexport const SidePanel = ({\n children,\n open = true,\n sizeClosed = 90,\n sizeOpen = 200,\n style: styleProp,\n ...htmlAttributes\n}: SidePanelProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-side-panel\",\n css: sidePanelCss,\n window: targetWindow,\n });\n\n // const { applicationJson, saveApplicationSettings } = useLayoutManager();\n // console.log(`settings`, {\n // expanded: applicationJson?.settings?.leftNav?.expanded,\n // active: applicationJson?.settings?.leftNav?.activeTabIndex,\n // });\n\n const style = useMemo(\n () =>\n ({\n ...styleProp,\n \"--shell-left-nav-size\": open ? `${sizeOpen}px` : `${sizeClosed}px`,\n } as CSSProperties),\n [open, sizeClosed, sizeOpen, styleProp]\n );\n return (\n <div {...htmlAttributes} className={cx(classBase)} style={style}>\n {children}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAQA,MAAM,SAAY,GAAA,mBAAA,CAAA;AASX,MAAM,YAAY,CAAC;AAAA,EACxB,QAAA;AAAA,EACA,IAAO,GAAA,IAAA;AAAA,EACP,UAAa,GAAA,EAAA;AAAA,EACb,QAAW,GAAA,GAAA;AAAA,EACX,KAAO,EAAA,SAAA;AAAA,EACP,GAAG,cAAA;AACL,CAAsB,KAAA;AACpB,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAA,YAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAQD,EAAA,MAAM,KAAQ,GAAA,OAAA;AAAA,IACZ,OACG;AAAA,MACC,GAAG,SAAA;AAAA,MACH,yBAAyB,IAAO,GAAA,CAAA,EAAG,QAAQ,CAAA,EAAA,CAAA,GAAO,GAAG,UAAU,CAAA,EAAA,CAAA;AAAA,KACjE,CAAA;AAAA,IACF,CAAC,IAAA,EAAM,UAAY,EAAA,QAAA,EAAU,SAAS,CAAA;AAAA,GACxC,CAAA;AACA,EACE,uBAAA,GAAA,CAAC,SAAK,GAAG,cAAA,EAAgB,WAAW,EAAG,CAAA,SAAS,CAAG,EAAA,KAAA,EAChD,QACH,EAAA,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var themeSwitchCss = "\n.vuuThemeSwitch {\n --saltButton-minWidth: 22px;\n --svg-light: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\"><path d=\"M24 31q2.9 0 4.95-2.05Q31 26.9 31 24q0-2.9-2.05-4.95Q26.9 17 24 17q-2.9 0-4.95 2.05Q17 21.1 17 24q0 2.9 2.05 4.95Q21.1 31 24 31Zm0 3q-4.15 0-7.075-2.925T14 24q0-4.15 2.925-7.075T24 14q4.15 0 7.075 2.925T34 24q0 4.15-2.925 7.075T24 34ZM3.5 25.5q-.65 0-1.075-.425Q2 24.65 2 24q0-.65.425-1.075Q2.85 22.5 3.5 22.5h5q.65 0 1.075.425Q10 23.35 10 24q0 .65-.425 1.075-.425.425-1.075.425Zm36 0q-.65 0-1.075-.425Q38 24.65 38 24q0-.65.425-1.075.425-.425 1.075-.425h5q.65 0 1.075.425Q46 23.35 46 24q0 .65-.425 1.075-.425.425-1.075.425ZM24 10q-.65 0-1.075-.425Q22.5 9.15 22.5 8.5v-5q0-.65.425-1.075Q23.35 2 24 2q.65 0 1.075.425.425.425.425 1.075v5q0 .65-.425 1.075Q24.65 10 24 10Zm0 36q-.65 0-1.075-.425-.425-.425-.425-1.075v-5q0-.65.425-1.075Q23.35 38 24 38q.65 0 1.075.425.425.425.425 1.075v5q0 .65-.425 1.075Q24.65 46 24 46ZM12 14.1l-2.85-2.8q-.45-.45-.425-1.075.025-.625.425-1.075.45-.45 1.075-.45t1.075.45L14.1 12q.4.45.4 1.05 0 .6-.4 1-.4.45-1.025.45-.625 0-1.075-.4Zm24.7 24.75L33.9 36q-.4-.45-.4-1.075t.45-1.025q.4-.45 1-.45t1.05.45l2.85 2.8q.45.45.425 1.075-.025.625-.425 1.075-.45.45-1.075.45t-1.075-.45ZM33.9 14.1q-.45-.45-.45-1.05 0-.6.45-1.05l2.8-2.85q.45-.45 1.075-.425.625.025 1.075.425.45.45.45 1.075t-.45 1.075L36 14.1q-.4.4-1.025.4-.625 0-1.075-.4ZM9.15 38.85q-.45-.45-.45-1.075t.45-1.075L12 33.9q.45-.45 1.05-.45.6 0 1.05.45.45.45.45 1.05 0 .6-.45 1.05l-2.8 2.85q-.45.45-1.075.425-.625-.025-1.075-.425ZM24 24Z\"/></svg>');\n --svg-dark: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 48\"><path d=\"M24 42q-7.5 0-12.75-5.25T6 24q0-7.5 5.25-12.75T24 6q.4 0 .85.025.45.025 1.15.075-1.8 1.6-2.8 3.95-1 2.35-1 4.95 0 4.5 3.15 7.65Q28.5 25.8 33 25.8q2.6 0 4.95-.925T41.9 22.3q.05.6.075.975Q42 23.65 42 24q0 7.5-5.25 12.75T24 42Zm0-3q5.45 0 9.5-3.375t5.05-7.925q-1.25.55-2.675.825Q34.45 28.8 33 28.8q-5.75 0-9.775-4.025T19.2 15q0-1.2.25-2.575.25-1.375.9-3.125-4.9 1.35-8.125 5.475Q9 18.9 9 24q0 6.25 4.375 10.625T24 39Zm-.2-14.85Z\"/></svg>');\n padding: 2px;\n}\n\n.salt-density-high .vuuThemeSwitch {\n --saltButton-minWidth: 16px;\n --saltButton-width: 18px;\n --vuuThemeSwitch-iconSize: 16px;\n}\n\n.vuuThemeSwitch [data-icon] {\n --vuu-icon-size: var(--vuuThemeSwitch-iconSize,18px);\n}\n\n.vuuThemeSwitch [data-icon='light'] {\n --vuu-icon-svg: var(--svg-light);\n}\n.vuuThemeSwitch [data-icon='dark'] {\n --vuu-icon-svg: var(--svg-dark);\n}\n\n.vuuThemeSwitch .saltToggleButton {\n height: 20px;\n width: 20px;\n}\n\n";
|
|
2
|
+
|
|
3
|
+
export { themeSwitchCss as default };
|
|
4
|
+
//# sourceMappingURL=ThemeSwitch.css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeSwitch.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import cx from 'clsx';
|
|
3
3
|
import { useControlled, ToggleButtonGroup, ToggleButton } from '@salt-ds/core';
|
|
4
|
+
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
5
|
+
import { useWindow } from '@salt-ds/window';
|
|
4
6
|
import { useCallback } from 'react';
|
|
7
|
+
import themeSwitchCss from './ThemeSwitch.css.js';
|
|
5
8
|
|
|
6
9
|
const classBase = "vuuThemeSwitch";
|
|
7
10
|
const ThemeSwitch = ({
|
|
@@ -11,6 +14,12 @@ const ThemeSwitch = ({
|
|
|
11
14
|
onChange,
|
|
12
15
|
...htmlAttributes
|
|
13
16
|
}) => {
|
|
17
|
+
const targetWindow = useWindow();
|
|
18
|
+
useComponentCssInjection({
|
|
19
|
+
testId: "vuu-theme-switch",
|
|
20
|
+
css: themeSwitchCss,
|
|
21
|
+
window: targetWindow
|
|
22
|
+
});
|
|
14
23
|
const [mode, setMode] = useControlled({
|
|
15
24
|
controlled: modeProp,
|
|
16
25
|
default: defaultModeProp ?? "light",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeSwitch.js","sources":["../../src/theme-switch/ThemeSwitch.tsx"],"sourcesContent":["import cx from \"clsx\";\nimport { ToggleButton, ToggleButtonGroup, useControlled } from \"@salt-ds/core\";\nimport { HTMLAttributes, SyntheticEvent, useCallback } from \"react\";\nimport { ThemeMode } from \"@vuu-ui/vuu-utils\";\n\nimport \"./ThemeSwitch.css\";\n\nconst classBase = \"vuuThemeSwitch\";\nexport interface ThemeSwitchProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n defaultMode?: ThemeMode;\n mode?: ThemeMode;\n onChange: (mode: ThemeMode) => void;\n}\n\nexport const ThemeSwitch = ({\n className: classNameProp,\n defaultMode: defaultModeProp,\n mode: modeProp,\n onChange,\n ...htmlAttributes\n}: ThemeSwitchProps) => {\n const [mode, setMode] = useControlled<ThemeMode>({\n controlled: modeProp,\n default: defaultModeProp ?? \"light\",\n name: \"ThemeSwitch\",\n state: \"mode\",\n });\n\n const handleChangeSecondary = useCallback(\n (evt: SyntheticEvent<HTMLButtonElement>) => {\n const { value } = evt.target as HTMLButtonElement;\n setMode(value as ThemeMode);\n onChange(value as ThemeMode);\n },\n [onChange, setMode]\n );\n const className = cx(classBase, classNameProp);\n return (\n <ToggleButtonGroup\n className={className}\n {...htmlAttributes}\n onChange={handleChangeSecondary}\n value={mode}\n >\n <ToggleButton aria-label=\"alert\" data-icon=\"light\" value=\"light\" />\n <ToggleButton aria-label=\"home\" data-icon=\"dark\" value=\"dark\" />\n </ToggleButtonGroup>\n );\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThemeSwitch.js","sources":["../../src/theme-switch/ThemeSwitch.tsx"],"sourcesContent":["import cx from \"clsx\";\nimport { ToggleButton, ToggleButtonGroup, useControlled } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { HTMLAttributes, SyntheticEvent, useCallback } from \"react\";\nimport { ThemeMode } from \"@vuu-ui/vuu-utils\";\n\nimport themeSwitchCss from \"./ThemeSwitch.css\";\n\nconst classBase = \"vuuThemeSwitch\";\nexport interface ThemeSwitchProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n defaultMode?: ThemeMode;\n mode?: ThemeMode;\n onChange: (mode: ThemeMode) => void;\n}\n\nexport const ThemeSwitch = ({\n className: classNameProp,\n defaultMode: defaultModeProp,\n mode: modeProp,\n onChange,\n ...htmlAttributes\n}: ThemeSwitchProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-theme-switch\",\n css: themeSwitchCss,\n window: targetWindow,\n });\n\n const [mode, setMode] = useControlled<ThemeMode>({\n controlled: modeProp,\n default: defaultModeProp ?? \"light\",\n name: \"ThemeSwitch\",\n state: \"mode\",\n });\n\n const handleChangeSecondary = useCallback(\n (evt: SyntheticEvent<HTMLButtonElement>) => {\n const { value } = evt.target as HTMLButtonElement;\n setMode(value as ThemeMode);\n onChange(value as ThemeMode);\n },\n [onChange, setMode]\n );\n const className = cx(classBase, classNameProp);\n return (\n <ToggleButtonGroup\n className={className}\n {...htmlAttributes}\n onChange={handleChangeSecondary}\n value={mode}\n >\n <ToggleButton aria-label=\"alert\" data-icon=\"light\" value=\"light\" />\n <ToggleButton aria-label=\"home\" data-icon=\"dark\" value=\"dark\" />\n </ToggleButtonGroup>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AASA,MAAM,SAAY,GAAA,gBAAA,CAAA;AAQX,MAAM,cAAc,CAAC;AAAA,EAC1B,SAAW,EAAA,aAAA;AAAA,EACX,WAAa,EAAA,eAAA;AAAA,EACb,IAAM,EAAA,QAAA;AAAA,EACN,QAAA;AAAA,EACA,GAAG,cAAA;AACL,CAAwB,KAAA;AACtB,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,kBAAA;AAAA,IACR,GAAK,EAAA,cAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,aAAyB,CAAA;AAAA,IAC/C,UAAY,EAAA,QAAA;AAAA,IACZ,SAAS,eAAmB,IAAA,OAAA;AAAA,IAC5B,IAAM,EAAA,aAAA;AAAA,IACN,KAAO,EAAA,MAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAA,MAAM,qBAAwB,GAAA,WAAA;AAAA,IAC5B,CAAC,GAA2C,KAAA;AAC1C,MAAM,MAAA,EAAE,KAAM,EAAA,GAAI,GAAI,CAAA,MAAA,CAAA;AACtB,MAAA,OAAA,CAAQ,KAAkB,CAAA,CAAA;AAC1B,MAAA,QAAA,CAAS,KAAkB,CAAA,CAAA;AAAA,KAC7B;AAAA,IACA,CAAC,UAAU,OAAO,CAAA;AAAA,GACpB,CAAA;AACA,EAAM,MAAA,SAAA,GAAY,EAAG,CAAA,SAAA,EAAW,aAAa,CAAA,CAAA;AAC7C,EACE,uBAAA,IAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACC,GAAG,cAAA;AAAA,MACJ,QAAU,EAAA,qBAAA;AAAA,MACV,KAAO,EAAA,IAAA;AAAA,MAEP,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,gBAAa,YAAW,EAAA,OAAA,EAAQ,WAAU,EAAA,OAAA,EAAQ,OAAM,OAAQ,EAAA,CAAA;AAAA,4BAChE,YAAa,EAAA,EAAA,YAAA,EAAW,QAAO,WAAU,EAAA,MAAA,EAAO,OAAM,MAAO,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAChE,CAAA;AAEJ;;;;"}
|
package/package.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.8.
|
|
2
|
+
"version": "0.8.45",
|
|
3
3
|
"description": "VUU UI Shell",
|
|
4
4
|
"author": "heswell",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"devDependencies": {
|
|
7
|
-
"@vuu-ui/vuu-data-types": "0.8.
|
|
8
|
-
"@vuu-ui/vuu-protocol-types": "0.8.
|
|
9
|
-
"@vuu-ui/vuu-table-types": "0.8.
|
|
7
|
+
"@vuu-ui/vuu-data-types": "0.8.45",
|
|
8
|
+
"@vuu-ui/vuu-protocol-types": "0.8.45",
|
|
9
|
+
"@vuu-ui/vuu-table-types": "0.8.45"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@salt-ds/core": "1.17.0",
|
|
13
13
|
"@salt-ds/styles": "0.2.1",
|
|
14
14
|
"@salt-ds/window": "0.1.1",
|
|
15
|
-
"@vuu-ui/vuu-data-remote": "0.8.
|
|
16
|
-
"@vuu-ui/vuu-icons": "0.8.
|
|
17
|
-
"@vuu-ui/vuu-layout": "0.8.
|
|
18
|
-
"@vuu-ui/vuu-popups": "0.8.
|
|
19
|
-
"@vuu-ui/vuu-table": "0.8.
|
|
20
|
-
"@vuu-ui/vuu-ui-controls": "0.8.
|
|
21
|
-
"@vuu-ui/vuu-utils": "0.8.
|
|
15
|
+
"@vuu-ui/vuu-data-remote": "0.8.45",
|
|
16
|
+
"@vuu-ui/vuu-icons": "0.8.45",
|
|
17
|
+
"@vuu-ui/vuu-layout": "0.8.45",
|
|
18
|
+
"@vuu-ui/vuu-popups": "0.8.45",
|
|
19
|
+
"@vuu-ui/vuu-table": "0.8.45",
|
|
20
|
+
"@vuu-ui/vuu-ui-controls": "0.8.45",
|
|
21
|
+
"@vuu-ui/vuu-utils": "0.8.45",
|
|
22
22
|
"html-to-image": "^1.11.11"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
@@ -33,8 +33,13 @@
|
|
|
33
33
|
"cjs",
|
|
34
34
|
"/types"
|
|
35
35
|
],
|
|
36
|
+
"exports": {
|
|
37
|
+
"require": "./cjs/index.js",
|
|
38
|
+
"import": "./esm/index.js"
|
|
39
|
+
},
|
|
36
40
|
"main": "cjs/index.js",
|
|
37
41
|
"module": "esm/index.js",
|
|
38
42
|
"name": "@vuu-ui/vuu-shell",
|
|
43
|
+
"type": "module",
|
|
39
44
|
"types": "types/index.d.ts"
|
|
40
45
|
}
|
package/types/connection-status/{ConnectionStatusIcon.d.ts → ConnectionStatusIndicator.d.ts}
RENAMED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import "./ConnectionStatusIcon.css";
|
|
3
2
|
type connectionStatus = "connected" | "reconnected" | "connecting" | "disconnected";
|
|
4
3
|
interface ConnectionStatusProps {
|
|
5
4
|
connectionStatus: connectionStatus;
|
|
@@ -7,5 +6,5 @@ interface ConnectionStatusProps {
|
|
|
7
6
|
props?: unknown;
|
|
8
7
|
element?: string;
|
|
9
8
|
}
|
|
10
|
-
export declare const
|
|
9
|
+
export declare const ConnectionStatusIndicator: ({ connectionStatus, className, element, ...props }: ConnectionStatusProps) => JSX.Element;
|
|
11
10
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from "./
|
|
1
|
+
export * from "./ConnectionStatusIndicator";
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { HTMLAttributes } from "react";
|
|
2
2
|
import { FeatureProps } from "../feature";
|
|
3
|
-
import "./LeftNav.css";
|
|
4
3
|
export type NavDisplayStatus = "menu-full" | "menu-icons" | "menu-full-content" | "menu-icons-content";
|
|
5
4
|
export type NavDisplayStatusHandler = (navDisplayStatus: NavDisplayStatus) => void;
|
|
6
5
|
export interface LeftNavProps extends HTMLAttributes<HTMLDivElement> {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DataSource, TableSchema } from "@vuu-ui/vuu-data-types";
|
|
2
2
|
import { VuuColumnDataType } from "@vuu-ui/vuu-protocol-types";
|
|
3
3
|
import { HTMLAttributes } from "react";
|
|
4
|
-
import "./SessionEditingForm.css";
|
|
5
4
|
export type FormFieldDescriptor = {
|
|
6
5
|
isKeyField?: boolean;
|
|
7
6
|
label?: string;
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
.vuuStatus-container {
|
|
2
|
-
display: flex;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.vuuStatus-text {
|
|
6
|
-
align-self: center;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
.vuuStatus {
|
|
11
|
-
--vuu-icon-height: 18px;
|
|
12
|
-
--vuu-icon-padding: var(--vuuStatus-padding, 6px);
|
|
13
|
-
--vuu-icon-width: var(--vuuStatus-width, auto);
|
|
14
|
-
--vuu-icon-min-width: var(--vuuStatus-min-width, 20px);
|
|
15
|
-
align-items: center;
|
|
16
|
-
display: inline-flex;
|
|
17
|
-
height: var(--vuu-icon-height);
|
|
18
|
-
justify-content: center;
|
|
19
|
-
min-width: var(--vuu-icon-min-width);
|
|
20
|
-
padding: 0 var(--vuu-icon-padding);
|
|
21
|
-
width: var(--vuu-icon-width);
|
|
22
|
-
position: relative;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.vuuStatus[data-icon]::after {
|
|
26
|
-
inset: 0 0 0 0;
|
|
27
|
-
content: '';
|
|
28
|
-
box-shadow: 0 0 0 0 black;
|
|
29
|
-
position: absolute;
|
|
30
|
-
mask: var(--vuu-icon-svg) center center/20px 20px no-repeat;
|
|
31
|
-
-webkit-mask: var(--vuu-icon-svg) center center/20px 20px no-repeat;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.vuuActiveStatus::after {
|
|
35
|
-
--vuu-icon-svg: var(--svg-active-status);
|
|
36
|
-
background-color: rgb(0, 255, 0);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.vuuConnectingStatus::after {
|
|
40
|
-
--vuu-icon-svg: var(--svg-connecting-status);
|
|
41
|
-
background-color: orange;
|
|
42
|
-
transform: scale(1);
|
|
43
|
-
animation: infinite pulse 1s;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.vuuDisconnectedStatus::after {
|
|
47
|
-
--vuu-icon-svg: var(--svg-disconnected-status);
|
|
48
|
-
background-color: red;
|
|
49
|
-
transform: scale(1);
|
|
50
|
-
animation: infinite pulse 0.5s;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
@keyframes pulse {
|
|
54
|
-
0% {
|
|
55
|
-
transform: scale(0.95);
|
|
56
|
-
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.7);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
70% {
|
|
60
|
-
transform: scale(1);
|
|
61
|
-
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
100% {
|
|
65
|
-
transform: scale(0.95);
|
|
66
|
-
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectionStatusIcon.js","sources":["../../src/connection-status/ConnectionStatusIcon.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport cx from \"clsx\";\n\nimport \"./ConnectionStatusIcon.css\";\n\ntype connectionStatus =\n | \"connected\"\n | \"reconnected\"\n | \"connecting\"\n | \"disconnected\";\n\ninterface ConnectionStatusProps {\n connectionStatus: connectionStatus;\n className?: string;\n props?: unknown;\n element?: string;\n}\n\nexport const ConnectionStatusIcon = ({\n connectionStatus,\n className,\n element = \"span\",\n ...props\n}: ConnectionStatusProps) => {\n const [classBase, setClassBase] = useState<string>(\"vuuConnectingStatus\");\n useEffect(() => {\n switch (connectionStatus) {\n case \"connected\":\n case \"reconnected\":\n setClassBase(\"vuuActiveStatus\");\n break;\n case \"connecting\":\n setClassBase(\"vuuConnectingStatus\");\n break;\n case \"disconnected\":\n setClassBase(\"vuuDisconnectedStatus\");\n break;\n default:\n break;\n }\n }, [connectionStatus]);\n\n const statusIcon = React.createElement(element, {\n ...props,\n className: cx(\"vuuStatus vuuIcon\", classBase, className),\n });\n\n return (\n <>\n <div className=\"vuuStatus-container salt-theme\">\n {statusIcon}\n <div className=\"vuuStatus-text\">\n Status: {connectionStatus.toUpperCase()}\n </div>\n </div>\n </>\n );\n};\n"],"names":["useState","useEffect","jsx","Fragment","jsxs"],"mappings":";;;;;;AAkBO,MAAM,uBAAuB,CAAC;AAAA,EACnC,gBAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAU,GAAA,MAAA;AAAA,EACV,GAAG,KAAA;AACL,CAA6B,KAAA;AAC3B,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,eAAiB,qBAAqB,CAAA,CAAA;AACxE,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,QAAQ,gBAAkB;AAAA,MACxB,KAAK,WAAA,CAAA;AAAA,MACL,KAAK,aAAA;AACH,QAAA,YAAA,CAAa,iBAAiB,CAAA,CAAA;AAC9B,QAAA,MAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,YAAA,CAAa,qBAAqB,CAAA,CAAA;AAClC,QAAA,MAAA;AAAA,MACF,KAAK,cAAA;AACH,QAAA,YAAA,CAAa,uBAAuB,CAAA,CAAA;AACpC,QAAA,MAAA;AAEA,KACJ;AAAA,GACF,EAAG,CAAC,gBAAgB,CAAC,CAAA,CAAA;AAErB,EAAM,MAAA,UAAA,GAAa,KAAM,CAAA,aAAA,CAAc,OAAS,EAAA;AAAA,IAC9C,GAAG,KAAA;AAAA,IACH,SAAW,EAAA,EAAA,CAAG,mBAAqB,EAAA,SAAA,EAAW,SAAS,CAAA;AAAA,GACxD,CAAA,CAAA;AAED,EAAA,uBAEIC,cAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,kBAAAC,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,gCACZ,EAAA,QAAA,EAAA;AAAA,IAAA,UAAA;AAAA,oBACDA,eAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,gBAAiB,EAAA,QAAA,EAAA;AAAA,MAAA,UAAA;AAAA,MACrB,iBAAiB,WAAY,EAAA;AAAA,KACxC,EAAA,CAAA;AAAA,GAAA,EACF,CACF,EAAA,CAAA,CAAA;AAEJ;;;;"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
.vuuLayoutList {
|
|
2
|
-
--vuuLayoutList-width: 90%;
|
|
3
|
-
--vuuMeasuredContainer-flex: 1 1 1px;
|
|
4
|
-
align-self: stretch;
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: column;
|
|
7
|
-
height: 100%;
|
|
8
|
-
overflow: hidden;
|
|
9
|
-
padding-right: 6px;
|
|
10
|
-
|
|
11
|
-
/* compatible with Chrome, Edge, and Safari */
|
|
12
|
-
::-webkit-scrollbar {
|
|
13
|
-
width: 4px;
|
|
14
|
-
height: 4px;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
::-webkit-scrollbar-track {
|
|
18
|
-
background: transparent;
|
|
19
|
-
margin-top: 15px;
|
|
20
|
-
margin-bottom: 15px;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
::-webkit-scrollbar-thumb {
|
|
24
|
-
border-radius: 4px;
|
|
25
|
-
background: #D9D9D9;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.vuuLayoutList-header {
|
|
30
|
-
display: flex;
|
|
31
|
-
flex: 0 0 47px;
|
|
32
|
-
width: var(--vuuLayoutList-width);
|
|
33
|
-
padding: 16px 0;
|
|
34
|
-
border-bottom: 1px solid rgba(119, 124, 148, 0.10);
|
|
35
|
-
color: var(--light-text-primary, #15171B);
|
|
36
|
-
font-weight: 700;
|
|
37
|
-
letter-spacing: 0.48px;
|
|
38
|
-
line-height: 200%;
|
|
39
|
-
text-transform: uppercase;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.vuuLayoutList-groupName {
|
|
43
|
-
display: flex;
|
|
44
|
-
padding-top: 24px;
|
|
45
|
-
width: var(--vuuLayoutList-width);
|
|
46
|
-
color: var(--light-text-secondary, #606477);
|
|
47
|
-
font-feature-settings: 'ss02' on, 'ss01' on, 'salt' on, 'liga' off;
|
|
48
|
-
font-family: Nunito Sans;
|
|
49
|
-
font-size: 12px;
|
|
50
|
-
font-style: normal;
|
|
51
|
-
font-weight: 700;
|
|
52
|
-
line-height: 200%;
|
|
53
|
-
letter-spacing: 0.48px;
|
|
54
|
-
text-transform: uppercase;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.vuuLayoutList-layoutContainer {
|
|
58
|
-
display: flex;
|
|
59
|
-
align-items: center;
|
|
60
|
-
width: 90%;
|
|
61
|
-
height: auto;
|
|
62
|
-
gap: 8px;
|
|
63
|
-
padding: 8px 0;
|
|
64
|
-
flex: 1 1 auto;
|
|
65
|
-
cursor: pointer;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.vuuLayoutList-layoutName {
|
|
69
|
-
color: var(--light-text-primary, #15171B);
|
|
70
|
-
font-weight: 600;
|
|
71
|
-
line-height: 133.333%;
|
|
72
|
-
text-transform: capitalize;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.vuuLayoutList-screenshot {
|
|
76
|
-
width: 60px;
|
|
77
|
-
height: 45.6px;
|
|
78
|
-
border: 1px solid #D6D7DA;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.vuuLayoutList-layoutDetails {
|
|
82
|
-
color: var(--light-text-secondary, #606477);
|
|
83
|
-
font-size: 10px;
|
|
84
|
-
font-weight: 600;
|
|
85
|
-
line-height: 150%;
|
|
86
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
.vuuLayoutTile-layoutTile {
|
|
2
|
-
display: flex;
|
|
3
|
-
align-items: center;
|
|
4
|
-
gap: 8px;
|
|
5
|
-
padding: 8px 0px;
|
|
6
|
-
flex: 1 1 auto;
|
|
7
|
-
cursor: pointer;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.vuuLayoutTile-layoutName {
|
|
11
|
-
color: var(--light-text-primary, #15171B);
|
|
12
|
-
font-weight: 600;
|
|
13
|
-
line-height: 133.333%;
|
|
14
|
-
text-transform: capitalize;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.vuuLayoutTile-screenshot {
|
|
18
|
-
width: 60px;
|
|
19
|
-
height: 45.6px;
|
|
20
|
-
border: 1px solid #D6D7DA;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
.vuuLayoutTile-layoutDetails {
|
|
24
|
-
color: var(--light-text-secondary, #606477);
|
|
25
|
-
font-size: 10px;
|
|
26
|
-
font-weight: 600;
|
|
27
|
-
line-height: 150%;
|
|
28
|
-
}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
.saveLayoutPanel {
|
|
2
|
-
--salt-selectable-foreground-hover: #6d18bdc3;
|
|
3
|
-
--salt-selectable-foreground-selected: #6D18BD;
|
|
4
|
-
--salt-selectable-borderColor-selected: #6D18BD;
|
|
5
|
-
--saltInputLegacy-fontSize: 12px;
|
|
6
|
-
--salt-text-label-fontSize: 10px;
|
|
7
|
-
--saltFormFieldLegacy-label-paddingLeft: 0;
|
|
8
|
-
--saltFormField-label-fontWeight: 400;
|
|
9
|
-
--saltText-color: var(--text-secondary-foreground, #606477);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.spinner{
|
|
13
|
-
width: 100px;
|
|
14
|
-
height:100px;
|
|
15
|
-
background-image: var(--svg-spinner);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.saveLayoutPanel-panelContainer {
|
|
19
|
-
display: flex;
|
|
20
|
-
flex-direction: column;
|
|
21
|
-
align-items: flex-start;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.saveLayoutPanel-panelContent {
|
|
25
|
-
display: flex;
|
|
26
|
-
align-items: flex-start;
|
|
27
|
-
gap: 32px;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.saveLayoutPanel-formContainer {
|
|
31
|
-
display: flex;
|
|
32
|
-
width: 217px;
|
|
33
|
-
flex-direction: column;
|
|
34
|
-
align-items: flex-start;
|
|
35
|
-
gap: 16px;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.saveLayoutPanel-formField {
|
|
39
|
-
display: flex;
|
|
40
|
-
flex-direction: column;
|
|
41
|
-
gap: 1px;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.saveLayoutPanel-inputText {
|
|
45
|
-
border: none;
|
|
46
|
-
color: var(--light-text-primary, #15171B);
|
|
47
|
-
font-family: Nunito Sans A-Variant, serif;
|
|
48
|
-
font-feature-settings: 'ss02' on, 'ss01' on, 'salt' on, 'liga' off;
|
|
49
|
-
font-size: 12px;
|
|
50
|
-
font-weight: 400;
|
|
51
|
-
line-height: 16px;
|
|
52
|
-
padding-left: 4px;
|
|
53
|
-
width: 100%;
|
|
54
|
-
outline: none;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.saveLayoutPanel-settingsGroup {
|
|
58
|
-
display: flex;
|
|
59
|
-
flex-wrap: wrap;
|
|
60
|
-
align-items: flex-end;
|
|
61
|
-
gap: 10px;
|
|
62
|
-
width: 100%;
|
|
63
|
-
line-height: 16px;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.saveLayoutPanel-screenshotContainer {
|
|
67
|
-
display: flex;
|
|
68
|
-
width: 304px;
|
|
69
|
-
height: 208px;
|
|
70
|
-
padding: 11px 15.5px;
|
|
71
|
-
justify-content: center;
|
|
72
|
-
align-items: center;
|
|
73
|
-
border: 1px solid #E8E8E8;
|
|
74
|
-
background: var(--dark-text-primary, #FFF);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.saveLayoutPanel-screenshot {
|
|
78
|
-
background: lightgray 50% / cover no-repeat;
|
|
79
|
-
width: 273px;
|
|
80
|
-
height: 186px;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.saveLayoutPanel-buttonsContainer {
|
|
84
|
-
display: flex;
|
|
85
|
-
justify-content: flex-end;
|
|
86
|
-
align-items: flex-start;
|
|
87
|
-
align-self: stretch;
|
|
88
|
-
padding-top: 24px;
|
|
89
|
-
gap: 8px;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.saveLayoutPanel-cancelButton,
|
|
93
|
-
.saveLayoutPanel-saveButton {
|
|
94
|
-
display: flex;
|
|
95
|
-
height: fit-content;
|
|
96
|
-
padding: 4px 8px;
|
|
97
|
-
align-items: flex-start;
|
|
98
|
-
gap: 8px;
|
|
99
|
-
border-radius: 6px;
|
|
100
|
-
font-size: 12px;
|
|
101
|
-
font-style: normal;
|
|
102
|
-
font-weight: 700;
|
|
103
|
-
line-height: 133.333%;
|
|
104
|
-
letter-spacing: 0.48px;
|
|
105
|
-
text-transform: uppercase;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.saveLayoutPanel-cancelButton {
|
|
109
|
-
color: var(--actionable-primary-foreground-default, #606477);
|
|
110
|
-
background: var(--actionable-primary-background-default, #FFF);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.saveLayoutPanel-saveButton {
|
|
114
|
-
background: #6D18BD;
|
|
115
|
-
border-color: #6D18BD;
|
|
116
|
-
color: white;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.saveLayoutPanel-saveButton.saltButton:disabled {
|
|
120
|
-
background: #6D18BD;
|
|
121
|
-
border-color: #6D18BD;
|
|
122
|
-
color: white;
|
|
123
|
-
opacity: 0.3;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.saveLayoutPanel-saveButton.saltButton:hover {
|
|
127
|
-
background: #F37880;
|
|
128
|
-
border-color: #F37880;
|
|
129
|
-
color: white;
|
|
130
|
-
}
|