@teambit/workspace 1.0.580 → 1.0.582

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.
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.580/dist/workspace.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.580/dist/workspace.docs.mdx';
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.582/dist/workspace.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.582/dist/workspace.docs.mdx';
3
3
 
4
4
  export const compositions = [compositions_0];
5
5
  export const overview = [overview_0];
@@ -153,16 +153,22 @@ function Workspace({
153
153
  } = (0, _useWorkspace().useWorkspace)(reactions);
154
154
  const theme = (0, _baseReactThemes().useThemePicker)();
155
155
  const currentTheme = theme?.current;
156
- const [isSidebarOpen, handleSidebarToggle] = (0, _react().useReducer)(x => !x, true);
156
+ const [isSidebarOpen, setSidebarOpen] = (0, _react().useState)(null);
157
+ const handleSidebarToggle = (0, _react().useCallback)(() => {
158
+ setSidebarOpen(prev => !prev);
159
+ }, []);
157
160
  const sidebarOpenness = isSidebarOpen ? _baseUiSurfacesSplitPane().Layout.row : _baseUiSurfacesSplitPane().Layout.right;
158
161
  const themeName = currentTheme?.themeName || 'light';
159
162
  onSidebarTogglerChange(handleSidebarToggle);
160
163
  (0, _react().useEffect)(() => {
161
164
  if (!window) return;
162
165
  if (window.innerWidth <= 1024) {
163
- handleSidebarToggle();
166
+ setSidebarOpen(false);
164
167
  }
165
168
  }, []);
169
+ (0, _react().useLayoutEffect)(() => {
170
+ setSidebarOpen(!isMinimal);
171
+ }, [isMinimal]);
166
172
  if (!workspace) {
167
173
  return /*#__PURE__*/_react().default.createElement("div", {
168
174
  className: _workspaceModule().default.emptyContainer
@@ -177,8 +183,8 @@ function Workspace({
177
183
  className: (0, _classnames().default)(_workspaceModule().default.topbar, _workspaceModule().default[themeName]),
178
184
  Corner: () => /*#__PURE__*/_react().default.createElement(_uiFoundationUi().Corner, {
179
185
  className: (0, _classnames().default)(isMinimal && _workspaceModule().default.minimalCorner || _workspaceModule().default.corner, _workspaceModule().default[themeName]),
180
- name: workspace.name,
181
- icon: workspace.icon
186
+ name: isMinimal ? '' : workspace.name,
187
+ icon: isMinimal ? 'https://static.bit.dev/bit-icons/house.svg' : workspace.icon
182
188
  })
183
189
  // @ts-ignore - getting an error of "Types have separate declarations of a private property 'registerFn'." for some reason after upgrading teambit.harmony/harmony from 0.4.6 to 0.4.7
184
190
  ,
@@ -192,7 +198,7 @@ function Workspace({
192
198
  }, sidebar), /*#__PURE__*/_react().default.createElement(_baseUiSurfacesSplitPane2().HoverSplitter, {
193
199
  className: _workspaceModule().default.splitter
194
200
  }, /*#__PURE__*/_react().default.createElement(_uiFoundationUiButtons().Collapser, {
195
- isOpen: isSidebarOpen,
201
+ isOpen: Boolean(isSidebarOpen),
196
202
  onMouseDown: e => e.stopPropagation() // avoid split-pane drag
197
203
  ,
198
204
  onClick: handleSidebarToggle,
@@ -1 +1 @@
1
- {"version":3,"names":["require","_pluralize","data","_interopRequireDefault","_react","_interopRequireWildcard","_reactRouterDom","_uiFoundationUiNotifications","_uiFoundationUiReactRouter","_uiFoundationUi","_uiFoundationUiButtons","_baseUiSurfacesSplitPane","_baseReactThemes","_baseUiSurfacesSplitPane2","_uiFoundationUi2","_workspaceUi","_classnames","_workspaceUi2","_useWorkspace","_workspaceOverview","_workspaceProvider","_workspaceModule","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Workspace","routeSlot","menuSlot","sidebar","workspaceUI","onSidebarTogglerChange","isMinimal","useWorkspaceMode","reactions","useComponentNotifications","workspace","useWorkspace","theme","useThemePicker","currentTheme","current","isSidebarOpen","handleSidebarToggle","useReducer","x","sidebarOpenness","Layout","row","right","themeName","useEffect","window","innerWidth","createElement","className","styles","emptyContainer","setComponents","components","WorkspaceProvider","PreserveWorkspaceMode","workspaceWrapper","TopBar","classNames","topbar","Corner","minimalCorner","corner","name","icon","menu","SplitPane","main","size","layout","Pane","closed","HoverSplitter","splitter","Collapser","isOpen","onMouseDown","stopPropagation","onClick","tooltipContent","SlotRouter","slot","Route","index","element","WorkspaceOverview","notifications","useNotifications","useMemo","onComponentAdded","comps","notificationId","log","pluralize","length","map","comp","id","toString","join","setTimeout","dismiss","onComponentRemoved","ids"],"sources":["workspace.tsx"],"sourcesContent":["import 'reset-css';\nimport pluralize from 'pluralize';\nimport React, { useReducer, useMemo, useEffect } from 'react';\nimport { Route } from 'react-router-dom';\nimport type { ComponentModel } from '@teambit/component';\nimport type { ComponentID } from '@teambit/component-id';\nimport { useNotifications } from '@teambit/ui-foundation.ui.notifications.notification-context';\nimport { SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { Corner } from '@teambit/ui-foundation.ui.corner';\nimport { Collapser } from '@teambit/ui-foundation.ui.buttons.collapser';\nimport { SplitPane, Pane, Layout } from '@teambit/base-ui.surfaces.split-pane.split-pane';\nimport { useThemePicker } from '@teambit/base-react.themes.theme-switcher';\nimport { HoverSplitter } from '@teambit/base-ui.surfaces.split-pane.hover-splitter';\nimport { TopBar } from '@teambit/ui-foundation.ui.top-bar';\nimport { PreserveWorkspaceMode } from '@teambit/workspace.ui.preserve-workspace-mode';\nimport classNames from 'classnames';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\n\nimport { useWorkspace } from './use-workspace';\nimport { WorkspaceOverview } from './workspace-overview';\nimport { WorkspaceProvider } from './workspace-provider';\nimport styles from './workspace.module.scss';\nimport { WorkspaceUI } from '../../workspace.ui.runtime';\n\nexport type WorkspaceProps = {\n routeSlot: RouteSlot;\n menuSlot: RouteSlot;\n sidebar: JSX.Element;\n workspaceUI: WorkspaceUI;\n onSidebarTogglerChange: (callback: () => void) => void;\n};\n\n/**\n * main workspace component.\n */\nexport function Workspace({ routeSlot, menuSlot, sidebar, workspaceUI, onSidebarTogglerChange }: WorkspaceProps) {\n const { isMinimal } = useWorkspaceMode();\n const reactions = useComponentNotifications();\n const { workspace } = useWorkspace(reactions);\n const theme = useThemePicker();\n const currentTheme = theme?.current;\n const [isSidebarOpen, handleSidebarToggle] = useReducer((x) => !x, true);\n const sidebarOpenness = isSidebarOpen ? Layout.row : Layout.right;\n const themeName = currentTheme?.themeName || 'light';\n onSidebarTogglerChange(handleSidebarToggle);\n\n useEffect(() => {\n if (!window) return;\n if (window.innerWidth <= 1024) {\n handleSidebarToggle();\n }\n }, []);\n\n if (!workspace) {\n return <div className={styles.emptyContainer}></div>;\n }\n\n workspaceUI.setComponents(workspace.components);\n\n return (\n <WorkspaceProvider workspace={workspace}>\n <PreserveWorkspaceMode>\n <div className={styles.workspaceWrapper}>\n {\n <TopBar\n className={classNames(styles.topbar, styles[themeName])}\n Corner={() => (\n <Corner\n className={classNames((isMinimal && styles.minimalCorner) || styles.corner, styles[themeName])}\n name={workspace.name}\n icon={workspace.icon}\n />\n )}\n // @ts-ignore - getting an error of \"Types have separate declarations of a private property 'registerFn'.\" for some reason after upgrading teambit.harmony/harmony from 0.4.6 to 0.4.7\n menu={menuSlot}\n />\n }\n <SplitPane className={styles.main} size={246} layout={sidebarOpenness}>\n <Pane className={classNames(styles.sidebar, styles[themeName], !isSidebarOpen && styles.closed)}>\n {sidebar}\n </Pane>\n <HoverSplitter className={styles.splitter}>\n <Collapser\n isOpen={isSidebarOpen}\n onMouseDown={(e) => e.stopPropagation()} // avoid split-pane drag\n onClick={handleSidebarToggle}\n tooltipContent={`${isSidebarOpen ? 'Hide' : 'Show'} side panel`}\n />\n </HoverSplitter>\n <Pane>\n <SlotRouter slot={routeSlot}>\n <Route index element={<WorkspaceOverview />} />\n </SlotRouter>\n </Pane>\n </SplitPane>\n </div>\n </PreserveWorkspaceMode>\n </WorkspaceProvider>\n );\n}\nfunction useComponentNotifications() {\n const notifications = useNotifications();\n\n // memo not really needed, but for peace of mind\n return useMemo(\n () => ({\n onComponentAdded: (comps: ComponentModel[]) => {\n const notificationId = notifications.log(\n `added ${pluralize('component', comps.length)}: ${comps.map((comp) => comp.id.toString()).join(', ')}`\n );\n setTimeout(() => notifications.dismiss(notificationId), 12 * 1000);\n },\n\n onComponentRemoved: (ids: ComponentID[]) => {\n const notificationId = notifications.log(\n `removed ${pluralize('component', ids.length)} ${ids.map((id) => id.toString()).join(', ')}`\n );\n setTimeout(() => notifications.dismiss(notificationId), 12 * 1000);\n },\n }),\n [notifications]\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["require","_pluralize","data","_interopRequireDefault","_react","_interopRequireWildcard","_reactRouterDom","_uiFoundationUiNotifications","_uiFoundationUiReactRouter","_uiFoundationUi","_uiFoundationUiButtons","_baseUiSurfacesSplitPane","_baseReactThemes","_baseUiSurfacesSplitPane2","_uiFoundationUi2","_workspaceUi","_classnames","_workspaceUi2","_useWorkspace","_workspaceOverview","_workspaceProvider","_workspaceModule","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Workspace","routeSlot","menuSlot","sidebar","workspaceUI","onSidebarTogglerChange","isMinimal","useWorkspaceMode","reactions","useComponentNotifications","workspace","useWorkspace","theme","useThemePicker","currentTheme","current","isSidebarOpen","setSidebarOpen","useState","handleSidebarToggle","useCallback","prev","sidebarOpenness","Layout","row","right","themeName","useEffect","window","innerWidth","useLayoutEffect","createElement","className","styles","emptyContainer","setComponents","components","WorkspaceProvider","PreserveWorkspaceMode","workspaceWrapper","TopBar","classNames","topbar","Corner","minimalCorner","corner","name","icon","menu","SplitPane","main","size","layout","Pane","closed","HoverSplitter","splitter","Collapser","isOpen","Boolean","onMouseDown","stopPropagation","onClick","tooltipContent","SlotRouter","slot","Route","index","element","WorkspaceOverview","notifications","useNotifications","useMemo","onComponentAdded","comps","notificationId","log","pluralize","length","map","comp","id","toString","join","setTimeout","dismiss","onComponentRemoved","ids"],"sources":["workspace.tsx"],"sourcesContent":["import 'reset-css';\nimport pluralize from 'pluralize';\nimport React, { useState, useMemo, useEffect, useCallback, useLayoutEffect } from 'react';\nimport { Route } from 'react-router-dom';\nimport type { ComponentModel } from '@teambit/component';\nimport type { ComponentID } from '@teambit/component-id';\nimport { useNotifications } from '@teambit/ui-foundation.ui.notifications.notification-context';\nimport { SlotRouter } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport type { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { Corner } from '@teambit/ui-foundation.ui.corner';\nimport { Collapser } from '@teambit/ui-foundation.ui.buttons.collapser';\nimport { SplitPane, Pane, Layout } from '@teambit/base-ui.surfaces.split-pane.split-pane';\nimport { useThemePicker } from '@teambit/base-react.themes.theme-switcher';\nimport { HoverSplitter } from '@teambit/base-ui.surfaces.split-pane.hover-splitter';\nimport { TopBar } from '@teambit/ui-foundation.ui.top-bar';\nimport { PreserveWorkspaceMode } from '@teambit/workspace.ui.preserve-workspace-mode';\nimport classNames from 'classnames';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\n\nimport { useWorkspace } from './use-workspace';\nimport { WorkspaceOverview } from './workspace-overview';\nimport { WorkspaceProvider } from './workspace-provider';\nimport styles from './workspace.module.scss';\nimport { WorkspaceUI } from '../../workspace.ui.runtime';\n\nexport type WorkspaceProps = {\n routeSlot: RouteSlot;\n menuSlot: RouteSlot;\n sidebar: JSX.Element;\n workspaceUI: WorkspaceUI;\n onSidebarTogglerChange: (callback: () => void) => void;\n};\n\n/**\n * main workspace component.\n */\nexport function Workspace({ routeSlot, menuSlot, sidebar, workspaceUI, onSidebarTogglerChange }: WorkspaceProps) {\n const { isMinimal } = useWorkspaceMode();\n const reactions = useComponentNotifications();\n const { workspace } = useWorkspace(reactions);\n const theme = useThemePicker();\n const currentTheme = theme?.current;\n const [isSidebarOpen, setSidebarOpen] = useState<boolean | null>(null);\n const handleSidebarToggle = useCallback(() => {\n setSidebarOpen(prev => !prev);\n }, []);\n const sidebarOpenness = isSidebarOpen ? Layout.row : Layout.right;\n const themeName = currentTheme?.themeName || 'light';\n onSidebarTogglerChange(handleSidebarToggle);\n\n useEffect(() => {\n if (!window) return;\n if (window.innerWidth <= 1024) {\n setSidebarOpen(false);\n }\n }, []);\n\n useLayoutEffect(() => {\n setSidebarOpen(!isMinimal);\n }, [isMinimal]);\n\n if (!workspace) {\n return <div className={styles.emptyContainer}></div>;\n }\n\n workspaceUI.setComponents(workspace.components);\n\n return (\n <WorkspaceProvider workspace={workspace}>\n <PreserveWorkspaceMode>\n <div className={styles.workspaceWrapper}>\n {\n <TopBar\n className={classNames(styles.topbar, styles[themeName])}\n Corner={() => (\n <Corner\n className={classNames((isMinimal && styles.minimalCorner) || styles.corner, styles[themeName])}\n name={isMinimal ? '' : workspace.name}\n icon={isMinimal ? 'https://static.bit.dev/bit-icons/house.svg' : workspace.icon}\n />\n )}\n // @ts-ignore - getting an error of \"Types have separate declarations of a private property 'registerFn'.\" for some reason after upgrading teambit.harmony/harmony from 0.4.6 to 0.4.7\n menu={menuSlot}\n />\n }\n <SplitPane className={styles.main} size={246} layout={sidebarOpenness}>\n <Pane className={classNames(styles.sidebar, styles[themeName], !isSidebarOpen && styles.closed)}>\n {sidebar}\n </Pane>\n <HoverSplitter className={styles.splitter}>\n <Collapser\n isOpen={Boolean(isSidebarOpen)}\n onMouseDown={(e) => e.stopPropagation()} // avoid split-pane drag\n onClick={handleSidebarToggle}\n tooltipContent={`${isSidebarOpen ? 'Hide' : 'Show'} side panel`}\n />\n </HoverSplitter>\n <Pane>\n <SlotRouter slot={routeSlot}>\n <Route index element={<WorkspaceOverview />} />\n </SlotRouter>\n </Pane>\n </SplitPane>\n </div>\n </PreserveWorkspaceMode>\n </WorkspaceProvider>\n );\n}\nfunction useComponentNotifications() {\n const notifications = useNotifications();\n\n // memo not really needed, but for peace of mind\n return useMemo(\n () => ({\n onComponentAdded: (comps: ComponentModel[]) => {\n const notificationId = notifications.log(\n `added ${pluralize('component', comps.length)}: ${comps.map((comp) => comp.id.toString()).join(', ')}`\n );\n setTimeout(() => notifications.dismiss(notificationId), 12 * 1000);\n },\n\n onComponentRemoved: (ids: ComponentID[]) => {\n const notificationId = notifications.log(\n `removed ${pluralize('component', ids.length)} ${ids.map((id) => id.toString()).join(', ')}`\n );\n setTimeout(() => notifications.dismiss(notificationId), 12 * 1000);\n },\n }),\n [notifications]\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,7 @@
6
6
 
7
7
  .corner {
8
8
  width: 300px;
9
+
9
10
  &.dark {
10
11
  --bit-border-color-lightest: #333333;
11
12
  --bit-text-color-heavy: white;
@@ -13,11 +14,27 @@
13
14
  }
14
15
 
15
16
  .minimalCorner {
16
- width: 130px;
17
+ width: fit-content;
18
+
17
19
  &.dark {
18
20
  --bit-border-color-lightest: #333333;
19
21
  --bit-text-color-heavy: white;
20
22
  }
23
+
24
+ >a {
25
+ &[aria-current="page"]>img {
26
+ filter: invert(31%) sepia(75%) saturate(3183%) hue-rotate(235deg) brightness(99%) contrast(108%);
27
+ }
28
+
29
+ >img {
30
+ width: 22px;
31
+ height: 22px;
32
+
33
+ &:hover {
34
+ filter: invert(31%) sepia(75%) saturate(3183%) hue-rotate(235deg) brightness(99%) contrast(108%);
35
+ }
36
+ }
37
+ }
21
38
  }
22
39
 
23
40
  .workspaceWrapper {
@@ -29,28 +46,34 @@
29
46
 
30
47
  .topbar {
31
48
  flex: none;
49
+
32
50
  &.dark {
33
51
  --bit-bg-heaviest: #333333;
34
52
  --bit-accent-color: #6a57fd;
35
53
  --bit-bg-heavy: #2c2b36;
54
+
36
55
  div[class*='versionMenuContainer'] {
37
56
  --bit-bg-heavy: #f4f5f6;
38
57
  }
58
+
39
59
  div[class*='useBox'] {
40
60
  div[class*='placeholder'] {
41
61
  --bit-bg-color: transparent;
62
+
42
63
  &:hover {
43
64
  color: #2b2b2b;
44
65
  }
45
66
  }
67
+
46
68
  &[data-open='true'] {
47
69
  div[class*='placeholder'] {
48
70
  color: #2b2b2b;
49
71
  }
50
72
  }
51
73
  }
74
+
52
75
  div[class*='iconAnchor'] {
53
- > span {
76
+ >span {
54
77
  color: white;
55
78
  }
56
79
  }
@@ -84,12 +107,14 @@
84
107
  &.closed {
85
108
  overflow: hidden;
86
109
  }
110
+
87
111
  &.dark {
88
112
  background-color: #333333;
113
+
89
114
  a[class*='laneGalleryIcon'] {
90
- > img {
115
+ >img {
91
116
  filter: invert(1);
92
117
  }
93
118
  }
94
119
  }
95
- }
120
+ }
@@ -77,7 +77,7 @@ export declare class WorkspaceUI {
77
77
  private menuItems;
78
78
  static dependencies: import("@teambit/harmony").Aspect[];
79
79
  static runtime: import("@teambit/harmony").RuntimeDefinition;
80
- static slots: (((registerFn: () => string) => SlotRegistry<ComponentTreeNode>) | ((registerFn: () => string) => SlotRegistry<RouteProps>) | ((registerFn: () => string) => SlotRegistry<MenuItemSlot>) | ((registerFn: () => string) => SlotRegistry<DrawerWidgetSlot>) | ((registerFn: () => string) => SlotRegistry<MenuWidgetSlot>))[];
80
+ static slots: (((registerFn: () => string) => SlotRegistry<RouteProps>) | ((registerFn: () => string) => SlotRegistry<ComponentTreeNode>) | ((registerFn: () => string) => SlotRegistry<MenuItemSlot>) | ((registerFn: () => string) => SlotRegistry<DrawerWidgetSlot>) | ((registerFn: () => string) => SlotRegistry<MenuWidgetSlot>))[];
81
81
  static provider([ui, componentUi, sidebar, componentTree, commandBarUI, graphUI]: [
82
82
  UiUI,
83
83
  ComponentUI,
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/workspace",
3
- "version": "1.0.580",
3
+ "version": "1.0.582",
4
4
  "homepage": "https://bit.cloud/teambit/workspace/workspace",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "workspace",
9
- "version": "1.0.580"
9
+ "version": "1.0.582"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -52,9 +52,9 @@
52
52
  "@teambit/explorer.ui.gallery.component-grid": "0.0.496",
53
53
  "@teambit/scopes.scope-id": "0.0.7",
54
54
  "@teambit/workspace.ui.empty-workspace": "0.0.509",
55
- "@teambit/component": "1.0.580",
56
- "@teambit/dependency-resolver": "1.0.580",
57
- "@teambit/envs": "1.0.580",
55
+ "@teambit/component": "1.0.582",
56
+ "@teambit/dependency-resolver": "1.0.582",
57
+ "@teambit/envs": "1.0.582",
58
58
  "@teambit/legacy.extension-data": "0.0.47",
59
59
  "@teambit/legacy.scope": "0.0.45",
60
60
  "@teambit/legacy.consumer-component": "0.0.46",
@@ -62,29 +62,29 @@
62
62
  "@teambit/legacy.bit-map": "0.0.102",
63
63
  "@teambit/toolbox.fs.last-modified": "0.0.5",
64
64
  "@teambit/toolbox.path.path": "0.0.8",
65
- "@teambit/logger": "0.0.1250",
66
- "@teambit/objects": "0.0.87",
67
- "@teambit/scope": "1.0.580",
68
- "@teambit/graph": "1.0.580",
69
- "@teambit/cli": "0.0.1157",
70
- "@teambit/isolator": "1.0.580",
71
- "@teambit/component-tree": "1.0.580",
65
+ "@teambit/logger": "0.0.1252",
66
+ "@teambit/objects": "0.0.89",
67
+ "@teambit/scope": "1.0.582",
68
+ "@teambit/graph": "1.0.582",
69
+ "@teambit/cli": "0.0.1159",
70
+ "@teambit/isolator": "1.0.582",
71
+ "@teambit/component-tree": "1.0.582",
72
72
  "@teambit/legacy.constants": "0.0.11",
73
73
  "@teambit/harmony.modules.resolved-component": "0.0.502",
74
74
  "@teambit/legacy.utils": "0.0.19",
75
- "@teambit/watcher": "1.0.580",
76
- "@teambit/aspect-loader": "1.0.580",
77
- "@teambit/config-store": "0.0.37",
78
- "@teambit/config": "0.0.1331",
75
+ "@teambit/watcher": "1.0.582",
76
+ "@teambit/aspect-loader": "1.0.582",
77
+ "@teambit/config-store": "0.0.39",
78
+ "@teambit/config": "0.0.1333",
79
79
  "@teambit/harmony.modules.requireable-component": "0.0.502",
80
80
  "@teambit/toolbox.modules.module-resolver": "0.0.11",
81
81
  "@teambit/workspace.modules.node-modules-linker": "0.0.273",
82
- "@teambit/graphql": "1.0.580",
83
- "@teambit/bundler": "1.0.580",
84
- "@teambit/global-config": "0.0.1160",
82
+ "@teambit/graphql": "1.0.582",
83
+ "@teambit/bundler": "1.0.582",
84
+ "@teambit/global-config": "0.0.1162",
85
85
  "@teambit/legacy.consumer-config": "0.0.45",
86
- "@teambit/ui": "1.0.580",
87
- "@teambit/variants": "0.0.1424",
86
+ "@teambit/ui": "1.0.582",
87
+ "@teambit/variants": "0.0.1426",
88
88
  "@teambit/component-issues": "0.0.157",
89
89
  "@teambit/component.sources": "0.0.97",
90
90
  "@teambit/harmony.modules.in-memory-cache": "0.0.13",
@@ -99,19 +99,19 @@
99
99
  "@teambit/lanes.hooks.use-lanes": "0.0.285",
100
100
  "@teambit/lanes.ui.models.lanes-model": "0.0.225",
101
101
  "@teambit/ui-foundation.ui.side-bar": "0.0.906",
102
- "@teambit/command-bar": "1.0.580",
102
+ "@teambit/command-bar": "1.0.582",
103
103
  "@teambit/component.ui.component-filters.component-filter-context": "0.0.235",
104
104
  "@teambit/component.ui.component-filters.deprecate-filter": "0.0.233",
105
105
  "@teambit/component.ui.component-filters.env-filter": "0.0.250",
106
106
  "@teambit/component.ui.component-filters.show-main-filter": "0.0.226",
107
- "@teambit/sidebar": "1.0.580",
107
+ "@teambit/sidebar": "1.0.582",
108
108
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.516",
109
- "@teambit/pubsub": "1.0.580",
109
+ "@teambit/pubsub": "1.0.582",
110
110
  "@teambit/harmony.modules.concurrency": "0.0.12",
111
111
  "@teambit/toolbox.promise.map-pool": "0.0.6",
112
112
  "@teambit/workspace.ui.use-workspace-mode": "0.0.2",
113
113
  "@teambit/component-descriptor": "0.0.433",
114
- "@teambit/deprecation": "1.0.580",
114
+ "@teambit/deprecation": "1.0.582",
115
115
  "@teambit/ui-foundation.ui.buttons.collapser": "0.0.227",
116
116
  "@teambit/workspace.ui.preserve-workspace-mode": "0.0.2",
117
117
  "@teambit/cloud.hooks.use-cloud-scopes": "0.0.8",
@@ -6,6 +6,7 @@
6
6
 
7
7
  .corner {
8
8
  width: 300px;
9
+
9
10
  &.dark {
10
11
  --bit-border-color-lightest: #333333;
11
12
  --bit-text-color-heavy: white;
@@ -13,11 +14,27 @@
13
14
  }
14
15
 
15
16
  .minimalCorner {
16
- width: 130px;
17
+ width: fit-content;
18
+
17
19
  &.dark {
18
20
  --bit-border-color-lightest: #333333;
19
21
  --bit-text-color-heavy: white;
20
22
  }
23
+
24
+ >a {
25
+ &[aria-current="page"]>img {
26
+ filter: invert(31%) sepia(75%) saturate(3183%) hue-rotate(235deg) brightness(99%) contrast(108%);
27
+ }
28
+
29
+ >img {
30
+ width: 22px;
31
+ height: 22px;
32
+
33
+ &:hover {
34
+ filter: invert(31%) sepia(75%) saturate(3183%) hue-rotate(235deg) brightness(99%) contrast(108%);
35
+ }
36
+ }
37
+ }
21
38
  }
22
39
 
23
40
  .workspaceWrapper {
@@ -29,28 +46,34 @@
29
46
 
30
47
  .topbar {
31
48
  flex: none;
49
+
32
50
  &.dark {
33
51
  --bit-bg-heaviest: #333333;
34
52
  --bit-accent-color: #6a57fd;
35
53
  --bit-bg-heavy: #2c2b36;
54
+
36
55
  div[class*='versionMenuContainer'] {
37
56
  --bit-bg-heavy: #f4f5f6;
38
57
  }
58
+
39
59
  div[class*='useBox'] {
40
60
  div[class*='placeholder'] {
41
61
  --bit-bg-color: transparent;
62
+
42
63
  &:hover {
43
64
  color: #2b2b2b;
44
65
  }
45
66
  }
67
+
46
68
  &[data-open='true'] {
47
69
  div[class*='placeholder'] {
48
70
  color: #2b2b2b;
49
71
  }
50
72
  }
51
73
  }
74
+
52
75
  div[class*='iconAnchor'] {
53
- > span {
76
+ >span {
54
77
  color: white;
55
78
  }
56
79
  }
@@ -84,12 +107,14 @@
84
107
  &.closed {
85
108
  overflow: hidden;
86
109
  }
110
+
87
111
  &.dark {
88
112
  background-color: #333333;
113
+
89
114
  a[class*='laneGalleryIcon'] {
90
- > img {
115
+ >img {
91
116
  filter: invert(1);
92
117
  }
93
118
  }
94
119
  }
95
- }
120
+ }
@@ -1,6 +1,6 @@
1
1
  import 'reset-css';
2
2
  import pluralize from 'pluralize';
3
- import React, { useReducer, useMemo, useEffect } from 'react';
3
+ import React, { useState, useMemo, useEffect, useCallback, useLayoutEffect } from 'react';
4
4
  import { Route } from 'react-router-dom';
5
5
  import type { ComponentModel } from '@teambit/component';
6
6
  import type { ComponentID } from '@teambit/component-id';
@@ -40,7 +40,10 @@ export function Workspace({ routeSlot, menuSlot, sidebar, workspaceUI, onSidebar
40
40
  const { workspace } = useWorkspace(reactions);
41
41
  const theme = useThemePicker();
42
42
  const currentTheme = theme?.current;
43
- const [isSidebarOpen, handleSidebarToggle] = useReducer((x) => !x, true);
43
+ const [isSidebarOpen, setSidebarOpen] = useState<boolean | null>(null);
44
+ const handleSidebarToggle = useCallback(() => {
45
+ setSidebarOpen(prev => !prev);
46
+ }, []);
44
47
  const sidebarOpenness = isSidebarOpen ? Layout.row : Layout.right;
45
48
  const themeName = currentTheme?.themeName || 'light';
46
49
  onSidebarTogglerChange(handleSidebarToggle);
@@ -48,10 +51,14 @@ export function Workspace({ routeSlot, menuSlot, sidebar, workspaceUI, onSidebar
48
51
  useEffect(() => {
49
52
  if (!window) return;
50
53
  if (window.innerWidth <= 1024) {
51
- handleSidebarToggle();
54
+ setSidebarOpen(false);
52
55
  }
53
56
  }, []);
54
57
 
58
+ useLayoutEffect(() => {
59
+ setSidebarOpen(!isMinimal);
60
+ }, [isMinimal]);
61
+
55
62
  if (!workspace) {
56
63
  return <div className={styles.emptyContainer}></div>;
57
64
  }
@@ -68,8 +75,8 @@ export function Workspace({ routeSlot, menuSlot, sidebar, workspaceUI, onSidebar
68
75
  Corner={() => (
69
76
  <Corner
70
77
  className={classNames((isMinimal && styles.minimalCorner) || styles.corner, styles[themeName])}
71
- name={workspace.name}
72
- icon={workspace.icon}
78
+ name={isMinimal ? '' : workspace.name}
79
+ icon={isMinimal ? 'https://static.bit.dev/bit-icons/house.svg' : workspace.icon}
73
80
  />
74
81
  )}
75
82
  // @ts-ignore - getting an error of "Types have separate declarations of a private property 'registerFn'." for some reason after upgrading teambit.harmony/harmony from 0.4.6 to 0.4.7
@@ -82,7 +89,7 @@ export function Workspace({ routeSlot, menuSlot, sidebar, workspaceUI, onSidebar
82
89
  </Pane>
83
90
  <HoverSplitter className={styles.splitter}>
84
91
  <Collapser
85
- isOpen={isSidebarOpen}
92
+ isOpen={Boolean(isSidebarOpen)}
86
93
  onMouseDown={(e) => e.stopPropagation()} // avoid split-pane drag
87
94
  onClick={handleSidebarToggle}
88
95
  tooltipContent={`${isSidebarOpen ? 'Hide' : 'Show'} side panel`}