@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.
Files changed (125) hide show
  1. package/cjs/connection-status/ConnectionStatusIndicator.css.js +6 -0
  2. package/cjs/connection-status/ConnectionStatusIndicator.css.js.map +1 -0
  3. package/cjs/connection-status/{ConnectionStatusIcon.js → ConnectionStatusIndicator.js} +12 -3
  4. package/cjs/connection-status/ConnectionStatusIndicator.js.map +1 -0
  5. package/cjs/index.js +2 -2
  6. package/cjs/layout-management/LayoutList.css.js +6 -0
  7. package/cjs/layout-management/LayoutList.css.js.map +1 -0
  8. package/cjs/layout-management/LayoutList.js +9 -0
  9. package/cjs/layout-management/LayoutList.js.map +1 -1
  10. package/cjs/layout-management/LayoutTile.css.js +6 -0
  11. package/cjs/layout-management/LayoutTile.css.js.map +1 -0
  12. package/cjs/layout-management/LayoutTile.js +9 -0
  13. package/cjs/layout-management/LayoutTile.js.map +1 -1
  14. package/cjs/layout-management/SaveLayoutPanel.css.js +6 -0
  15. package/cjs/layout-management/SaveLayoutPanel.css.js.map +1 -0
  16. package/cjs/layout-management/SaveLayoutPanel.js +9 -0
  17. package/cjs/layout-management/SaveLayoutPanel.js.map +1 -1
  18. package/cjs/left-nav/LeftNav.css.js +6 -0
  19. package/cjs/left-nav/LeftNav.css.js.map +1 -0
  20. package/cjs/left-nav/LeftNav.js +9 -0
  21. package/cjs/left-nav/LeftNav.js.map +1 -1
  22. package/cjs/login/LoginPanel.css.js +6 -0
  23. package/cjs/login/LoginPanel.css.js.map +1 -0
  24. package/cjs/login/LoginPanel.js +9 -0
  25. package/cjs/login/LoginPanel.js.map +1 -1
  26. package/cjs/persistence-management/LocalPersistenceManager.js +2 -0
  27. package/cjs/persistence-management/LocalPersistenceManager.js.map +1 -1
  28. package/cjs/persistence-management/RemotePersistenceManager.js +2 -0
  29. package/cjs/persistence-management/RemotePersistenceManager.js.map +1 -1
  30. package/cjs/session-editing-form/SessionEditingForm.css.js +6 -0
  31. package/cjs/session-editing-form/SessionEditingForm.css.js.map +1 -0
  32. package/cjs/session-editing-form/SessionEditingForm.js +9 -0
  33. package/cjs/session-editing-form/SessionEditingForm.js.map +1 -1
  34. package/cjs/shell-layouts/context-panel/ContextPanel.css.js +6 -0
  35. package/cjs/shell-layouts/context-panel/ContextPanel.css.js.map +1 -0
  36. package/cjs/shell-layouts/context-panel/ContextPanel.js +9 -0
  37. package/cjs/shell-layouts/context-panel/ContextPanel.js.map +1 -1
  38. package/cjs/shell-layouts/side-panel/SidePanel.css.js +6 -0
  39. package/cjs/shell-layouts/side-panel/SidePanel.css.js.map +1 -0
  40. package/cjs/shell-layouts/side-panel/SidePanel.js +9 -0
  41. package/cjs/shell-layouts/side-panel/SidePanel.js.map +1 -1
  42. package/cjs/theme-switch/ThemeSwitch.css.js +6 -0
  43. package/cjs/theme-switch/ThemeSwitch.css.js.map +1 -0
  44. package/cjs/theme-switch/ThemeSwitch.js +9 -0
  45. package/cjs/theme-switch/ThemeSwitch.js.map +1 -1
  46. package/esm/connection-status/ConnectionStatusIndicator.css.js +4 -0
  47. package/esm/connection-status/ConnectionStatusIndicator.css.js.map +1 -0
  48. package/esm/connection-status/{ConnectionStatusIcon.js → ConnectionStatusIndicator.js} +12 -3
  49. package/esm/connection-status/ConnectionStatusIndicator.js.map +1 -0
  50. package/esm/index.js +1 -1
  51. package/esm/layout-management/LayoutList.css.js +4 -0
  52. package/esm/layout-management/LayoutList.css.js.map +1 -0
  53. package/esm/layout-management/LayoutList.js +9 -0
  54. package/esm/layout-management/LayoutList.js.map +1 -1
  55. package/esm/layout-management/LayoutTile.css.js +4 -0
  56. package/esm/layout-management/LayoutTile.css.js.map +1 -0
  57. package/esm/layout-management/LayoutTile.js +9 -0
  58. package/esm/layout-management/LayoutTile.js.map +1 -1
  59. package/esm/layout-management/SaveLayoutPanel.css.js +4 -0
  60. package/esm/layout-management/SaveLayoutPanel.css.js.map +1 -0
  61. package/esm/layout-management/SaveLayoutPanel.js +9 -0
  62. package/esm/layout-management/SaveLayoutPanel.js.map +1 -1
  63. package/esm/left-nav/LeftNav.css.js +4 -0
  64. package/esm/left-nav/LeftNav.css.js.map +1 -0
  65. package/esm/left-nav/LeftNav.js +9 -0
  66. package/esm/left-nav/LeftNav.js.map +1 -1
  67. package/esm/login/LoginPanel.css.js +4 -0
  68. package/esm/login/LoginPanel.css.js.map +1 -0
  69. package/esm/login/LoginPanel.js +9 -0
  70. package/esm/login/LoginPanel.js.map +1 -1
  71. package/esm/persistence-management/LocalPersistenceManager.js +2 -0
  72. package/esm/persistence-management/LocalPersistenceManager.js.map +1 -1
  73. package/esm/persistence-management/RemotePersistenceManager.js +2 -0
  74. package/esm/persistence-management/RemotePersistenceManager.js.map +1 -1
  75. package/esm/session-editing-form/SessionEditingForm.css.js +4 -0
  76. package/esm/session-editing-form/SessionEditingForm.css.js.map +1 -0
  77. package/esm/session-editing-form/SessionEditingForm.js +9 -0
  78. package/esm/session-editing-form/SessionEditingForm.js.map +1 -1
  79. package/esm/shell-layouts/context-panel/ContextPanel.css.js +4 -0
  80. package/esm/shell-layouts/context-panel/ContextPanel.css.js.map +1 -0
  81. package/esm/shell-layouts/context-panel/ContextPanel.js +9 -0
  82. package/esm/shell-layouts/context-panel/ContextPanel.js.map +1 -1
  83. package/esm/shell-layouts/side-panel/SidePanel.css.js +4 -0
  84. package/esm/shell-layouts/side-panel/SidePanel.css.js.map +1 -0
  85. package/esm/shell-layouts/side-panel/SidePanel.js +9 -0
  86. package/esm/shell-layouts/side-panel/SidePanel.js.map +1 -1
  87. package/esm/theme-switch/ThemeSwitch.css.js +4 -0
  88. package/esm/theme-switch/ThemeSwitch.css.js.map +1 -0
  89. package/esm/theme-switch/ThemeSwitch.js +9 -0
  90. package/esm/theme-switch/ThemeSwitch.js.map +1 -1
  91. package/package.json +16 -11
  92. package/types/connection-status/{ConnectionStatusIcon.d.ts → ConnectionStatusIndicator.d.ts} +1 -2
  93. package/types/connection-status/index.d.ts +1 -1
  94. package/types/layout-management/LayoutList.d.ts +0 -1
  95. package/types/layout-management/LayoutTile.d.ts +0 -1
  96. package/types/layout-management/SaveLayoutPanel.d.ts +0 -1
  97. package/types/left-nav/LeftNav.d.ts +0 -1
  98. package/types/login/LoginPanel.d.ts +0 -1
  99. package/types/session-editing-form/SessionEditingForm.d.ts +0 -1
  100. package/types/shell-layouts/context-panel/ContextPanel.d.ts +0 -1
  101. package/types/shell-layouts/side-panel/SidePanel.d.ts +0 -1
  102. package/types/theme-switch/ThemeSwitch.d.ts +0 -1
  103. package/cjs/connection-status/ConnectionStatusIcon.css +0 -68
  104. package/cjs/connection-status/ConnectionStatusIcon.js.map +0 -1
  105. package/cjs/layout-management/LayoutList.css +0 -86
  106. package/cjs/layout-management/LayoutTile.css +0 -28
  107. package/cjs/layout-management/SaveLayoutPanel.css +0 -130
  108. package/cjs/left-nav/LeftNav.css +0 -178
  109. package/cjs/login/LoginPanel.css +0 -70
  110. package/cjs/session-editing-form/SessionEditingForm.css +0 -53
  111. package/cjs/shell-layouts/context-panel/ContextPanel.css +0 -58
  112. package/cjs/shell-layouts/side-panel/SidePanel.css +0 -4
  113. package/cjs/theme-switch/ThemeSwitch.css +0 -30
  114. package/esm/connection-status/ConnectionStatusIcon.css +0 -68
  115. package/esm/connection-status/ConnectionStatusIcon.js.map +0 -1
  116. package/esm/layout-management/LayoutList.css +0 -86
  117. package/esm/layout-management/LayoutTile.css +0 -28
  118. package/esm/layout-management/SaveLayoutPanel.css +0 -130
  119. package/esm/left-nav/LeftNav.css +0 -178
  120. package/esm/login/LoginPanel.css +0 -70
  121. package/esm/session-editing-form/SessionEditingForm.css +0 -53
  122. package/esm/shell-layouts/context-panel/ContextPanel.css +0 -58
  123. package/esm/shell-layouts/side-panel/SidePanel.css +0 -4
  124. package/esm/theme-switch/ThemeSwitch.css +0 -30
  125. 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":";;;;AAMA,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;AAOpB,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;;;;"}
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":";;;;;AAOA,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,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;;;;"}
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.43",
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.43",
8
- "@vuu-ui/vuu-protocol-types": "0.8.43",
9
- "@vuu-ui/vuu-table-types": "0.8.43"
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.43",
16
- "@vuu-ui/vuu-icons": "0.8.43",
17
- "@vuu-ui/vuu-layout": "0.8.43",
18
- "@vuu-ui/vuu-popups": "0.8.43",
19
- "@vuu-ui/vuu-table": "0.8.43",
20
- "@vuu-ui/vuu-ui-controls": "0.8.43",
21
- "@vuu-ui/vuu-utils": "0.8.43",
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
  }
@@ -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 ConnectionStatusIcon: ({ connectionStatus, className, element, ...props }: ConnectionStatusProps) => JSX.Element;
9
+ export declare const ConnectionStatusIndicator: ({ connectionStatus, className, element, ...props }: ConnectionStatusProps) => JSX.Element;
11
10
  export {};
@@ -1 +1 @@
1
- export * from "./ConnectionStatusIcon";
1
+ export * from "./ConnectionStatusIndicator";
@@ -1,3 +1,2 @@
1
1
  import { HTMLAttributes } from "react";
2
- import "./LayoutList.css";
3
2
  export declare const LayoutList: (props: HTMLAttributes<HTMLDivElement>) => JSX.Element;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { LayoutMetadata } from "./layoutTypes";
3
- import "./LayoutTile.css";
4
3
  type LayoutTileProps = {
5
4
  metadata: LayoutMetadata;
6
5
  handleLoadLayout: (layoutId?: string) => void;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { LayoutMetadataDto } from "./layoutTypes";
3
- import "./SaveLayoutPanel.css";
4
3
  type SaveLayoutPanelProps = {
5
4
  componentId?: string;
6
5
  defaultTitle?: string;
@@ -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,5 +1,4 @@
1
1
  import { HTMLAttributes } from "react";
2
- import "./LoginPanel.css";
3
2
  export interface LoginPanelProps extends Omit<HTMLAttributes<HTMLDivElement>, "onSubmit"> {
4
3
  appName?: string;
5
4
  onSubmit: (username: string, password?: string) => void;
@@ -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,6 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { LayoutJSON } from "@vuu-ui/vuu-layout";
3
- import "./ContextPanel.css";
4
3
  export interface ContextPanelProps {
5
4
  [key: string]: unknown;
6
5
  className?: string;
@@ -1,5 +1,4 @@
1
1
  import { HTMLAttributes } from "react";
2
- import "./SidePanel.css";
3
2
  export interface SidePanelProps extends HTMLAttributes<HTMLDivElement> {
4
3
  open?: boolean;
5
4
  path?: string;
@@ -1,6 +1,5 @@
1
1
  import { HTMLAttributes } from "react";
2
2
  import { ThemeMode } from "@vuu-ui/vuu-utils";
3
- import "./ThemeSwitch.css";
4
3
  export interface ThemeSwitchProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
5
4
  defaultMode?: ThemeMode;
6
5
  mode?: ThemeMode;
@@ -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
- }