@teambit/workspace 0.0.652 → 0.0.655

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.
@@ -9,6 +9,7 @@ import { UIRootUI as UIRoot, UiUI } from '@teambit/ui';
9
9
  import { GraphUI } from '@teambit/graph';
10
10
  import { RouteProps } from 'react-router-dom';
11
11
  import { CommandBarUI, ComponentSearcher } from '@teambit/command-bar';
12
+ import type { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';
12
13
  export declare type SidebarWidgetSlot = SlotRegistry<ComponentTreeNode>;
13
14
  export declare class WorkspaceUI {
14
15
  /**
@@ -52,9 +53,11 @@ export declare class WorkspaceUI {
52
53
  /**
53
54
  * register a route to the workspace.
54
55
  */
55
- registerRoute(route: RouteProps): this;
56
+ registerRoutes(routes: RouteProps[]): this;
57
+ registerDrawers(...drawers: DrawerType[]): this;
56
58
  registerSidebarWidget(componentTreeNode: ComponentTreeNode): this;
57
59
  registerMenuItem: (menuItems: MenuItem[]) => void;
60
+ registerMenuRoutes: (routes: RouteProps[]) => this;
58
61
  setComponents: (components: ComponentModel[]) => void;
59
62
  registerSidebarLink: (...links: SidebarItem[]) => void;
60
63
  componentSearcher: ComponentSearcher;
@@ -62,9 +65,9 @@ export declare class WorkspaceUI {
62
65
  private menuItems;
63
66
  static dependencies: import("@teambit/harmony").Aspect[];
64
67
  static runtime: import("@teambit/harmony").RuntimeDefinition;
65
- static slots: (((registerFn: () => string) => SlotRegistry<RouteProps<string, {
68
+ static slots: (((registerFn: () => string) => SlotRegistry<ComponentTreeNode>) | ((registerFn: () => string) => SlotRegistry<RouteProps<string, {
66
69
  [x: string]: string | undefined;
67
- }>>) | ((registerFn: () => string) => SlotRegistry<ComponentTreeNode>) | ((registerFn: () => string) => SlotRegistry<MenuItemSlot>) | ((registerFn: () => string) => SlotRegistry<SidebarItemSlot>))[];
70
+ }>>) | ((registerFn: () => string) => SlotRegistry<MenuItemSlot>) | ((registerFn: () => string) => SlotRegistry<SidebarItemSlot>))[];
68
71
  static provider([ui, componentUi, sidebar, componentTree, commandBarUI, reactRouterUI, graphUI]: [
69
72
  UiUI,
70
73
  ComponentUI,
@@ -205,6 +205,10 @@ class WorkspaceUI {
205
205
  (0, _defineProperty2().default)(this, "registerMenuItem", menuItems => {
206
206
  this.menuItemSlot.register(menuItems);
207
207
  });
208
+ (0, _defineProperty2().default)(this, "registerMenuRoutes", routes => {
209
+ this.menuSlot.register(routes);
210
+ return this;
211
+ });
208
212
  (0, _defineProperty2().default)(this, "setComponents", components => {
209
213
  this.componentSearcher.update(components);
210
214
  });
@@ -237,8 +241,13 @@ class WorkspaceUI {
237
241
  /**
238
242
  * register a route to the workspace.
239
243
  */
240
- registerRoute(route) {
241
- this.routeSlot.register(route);
244
+ registerRoutes(routes) {
245
+ this.routeSlot.register(routes);
246
+ return this;
247
+ }
248
+
249
+ registerDrawers(...drawers) {
250
+ this.sidebar.registerDrawer(...drawers);
242
251
  return this;
243
252
  }
244
253
 
@@ -249,6 +258,7 @@ class WorkspaceUI {
249
258
 
250
259
  uiRoot() {
251
260
  this.commandBarUI.addSearcher(this.componentSearcher);
261
+ this.registerDrawers(new (_workspaceComponentsDrawer().WorkspaceComponentsDrawer)(this.sidebarSlot));
252
262
  const [setKeyBindHandler] = this.commandBarUI.addCommand({
253
263
  id: 'sidebar.toggle',
254
264
  // TODO - extract to a component!
@@ -276,7 +286,6 @@ class WorkspaceUI {
276
286
  static async provider([ui, componentUi, sidebar, componentTree, commandBarUI, reactRouterUI, graphUI], config, [routeSlot, menuSlot, menuItemSlot, sidebarSlot, sidebarItemSlot]) {
277
287
  componentTree.registerTreeNode(new (_componentTree2().ComponentTreeWidget)());
278
288
  sidebarSlot.register(new (_componentTree2().ComponentTreeWidget)());
279
- sidebar.registerDrawer(new (_workspaceComponentsDrawer().WorkspaceComponentsDrawer)(sidebarSlot));
280
289
  graphUI.registerComponentWidget(new (_componentTree2().ComponentTreeWidget)().widget);
281
290
  const workspaceUI = new WorkspaceUI(routeSlot, componentUi, menuSlot, menuItemSlot, sidebar, sidebarSlot, sidebarItemSlot, commandBarUI, reactRouterUI);
282
291
  ui.registerRoot(workspaceUI.uiRoot.bind(workspaceUI));
@@ -286,7 +295,7 @@ class WorkspaceUI {
286
295
  href: "/",
287
296
  icon: "comps"
288
297
  }, "Gallery"));
289
- workspaceUI.menuSlot.register([{
298
+ workspaceUI.registerMenuRoutes([{
290
299
  exact: true,
291
300
  path: '/',
292
301
  children: /*#__PURE__*/_react().default.createElement(_uiFoundationUi().Menu, {
@@ -296,10 +305,10 @@ class WorkspaceUI {
296
305
  path: workspaceUI.componentUi.routePath,
297
306
  children: workspaceUI.componentUi.getMenu(_workspace().WorkspaceAspect.id)
298
307
  }]);
299
- workspaceUI.routeSlot.register({
308
+ workspaceUI.registerRoutes([{
300
309
  path: workspaceUI.componentUi.routePath,
301
310
  children: workspaceUI.componentUi.getComponentUI(_workspace().WorkspaceAspect.id)
302
- });
311
+ }]);
303
312
  return workspaceUI;
304
313
  }
305
314
 
@@ -1 +1 @@
1
- {"version":3,"sources":["workspace.ui.runtime.tsx"],"names":["WorkspaceUI","constructor","routeSlot","componentUi","menuSlot","menuItemSlot","sidebar","sidebarSlot","sidebarItemSlot","commandBarUI","reactRouterUI","menuItems","register","components","componentSearcher","update","links","category","title","keyChar","handler","run","ComponentSearcher","navigateTo","registerRoute","route","registerSidebarWidget","componentTreeNode","uiRoot","addSearcher","setKeyBindHandler","addCommand","id","displayName","keybinding","routes","path","children","provider","ui","componentTree","graphUI","config","registerTreeNode","ComponentTreeWidget","registerDrawer","WorkspaceComponentsDrawer","registerComponentWidget","widget","workspaceUI","registerRoot","bind","registerMenuItem","registerSidebarLink","exact","routePath","getMenu","WorkspaceAspect","getComponentUI","UIAspect","ComponentAspect","SidebarAspect","ComponentTreeAspect","CommandBarAspect","ReactRouterAspect","GraphAspect","UIRuntime","Slot","withType","addRuntime"],"mappings":"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","sourcesContent":["import { ComponentAspect, ComponentUI, ComponentModel } from '@teambit/component';\nimport { ComponentTreeAspect, ComponentTreeUI, ComponentTreeNode } from '@teambit/component-tree';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport ReactRouterAspect, { ReactRouterUI } from '@teambit/react-router';\nimport { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { Menu } from '@teambit/ui-foundation.ui.menu';\nimport SidebarAspect, { SidebarUI, SidebarItem, SidebarItemSlot } from '@teambit/sidebar';\nimport { MenuItemSlot, MenuItem } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { UIAspect, UIRootUI as UIRoot, UIRuntime, UiUI } from '@teambit/ui';\nimport { GraphAspect, GraphUI } from '@teambit/graph';\nimport React from 'react';\nimport { RouteProps } from 'react-router-dom';\nimport CommandBarAspect, { CommandBarUI, ComponentSearcher, CommandHandler } from '@teambit/command-bar';\nimport { MenuLinkItem } from '@teambit/design.ui.surfaces.menu.link-item';\nimport { WorkspaceComponentsDrawer } from './ui/workspace-components-drawer';\nimport { ComponentTreeWidget } from './component-tree.widget';\nimport { Workspace } from './ui';\nimport { WorkspaceAspect } from './workspace.aspect';\n\nexport type SidebarWidgetSlot = SlotRegistry<ComponentTreeNode>;\n\nexport class WorkspaceUI {\n constructor(\n /**\n * route slot.\n */\n private routeSlot: RouteSlot,\n\n /**\n * component ui extension.\n */\n private componentUi: ComponentUI,\n\n /**\n * menu slot\n */\n private menuSlot: RouteSlot,\n\n private menuItemSlot: MenuItemSlot,\n\n private sidebar: SidebarUI,\n\n private sidebarSlot: SidebarWidgetSlot,\n\n /**\n * sidebar link slot\n */\n private sidebarItemSlot: SidebarItemSlot,\n\n private commandBarUI: CommandBarUI,\n\n reactRouterUI: ReactRouterUI\n ) {\n this.componentSearcher = new ComponentSearcher(reactRouterUI.navigateTo);\n }\n\n private setKeyBindHandler: (updated: CommandHandler) => void = () => {};\n\n /**\n * register a route to the workspace.\n */\n registerRoute(route: RouteProps) {\n this.routeSlot.register(route);\n return this;\n }\n\n registerSidebarWidget(componentTreeNode: ComponentTreeNode) {\n this.sidebarSlot.register(componentTreeNode);\n return this;\n }\n\n registerMenuItem = (menuItems: MenuItem[]) => {\n this.menuItemSlot.register(menuItems);\n };\n\n setComponents = (components: ComponentModel[]) => {\n this.componentSearcher.update(components);\n };\n\n registerSidebarLink = (...links: SidebarItem[]) => {\n this.sidebarItemSlot.register(links);\n };\n\n componentSearcher: ComponentSearcher;\n\n uiRoot(): UIRoot {\n this.commandBarUI.addSearcher(this.componentSearcher);\n const [setKeyBindHandler] = this.commandBarUI.addCommand({\n id: 'sidebar.toggle', // TODO - extract to a component!\n handler: () => {},\n displayName: 'Toggle component list',\n keybinding: 'alt+s',\n });\n this.setKeyBindHandler = setKeyBindHandler;\n\n return {\n routes: [\n {\n path: '/',\n children: (\n <Workspace\n menuSlot={this.menuSlot}\n routeSlot={this.routeSlot}\n sidebar={<this.sidebar.render itemSlot={this.sidebarItemSlot} />}\n workspaceUI={this}\n onSidebarTogglerChange={this.setKeyBindHandler}\n />\n ),\n },\n ],\n };\n }\n\n private menuItems: MenuItem[] = [\n {\n category: 'general',\n title: 'Open command bar',\n keyChar: 'mod+k',\n handler: () => this.commandBarUI?.run('command-bar.open'),\n },\n {\n category: 'general',\n title: 'Toggle component list',\n keyChar: 'alt+s',\n handler: () => this.commandBarUI?.run('sidebar.toggle'),\n },\n ];\n\n static dependencies = [\n UIAspect,\n ComponentAspect,\n SidebarAspect,\n ComponentTreeAspect,\n CommandBarAspect,\n ReactRouterAspect,\n GraphAspect,\n ];\n\n static runtime = UIRuntime;\n\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<RouteProps>(),\n Slot.withType<ComponentTreeNode>(),\n Slot.withType<MenuItemSlot>(),\n Slot.withType<SidebarItemSlot>(),\n ];\n\n static async provider(\n [ui, componentUi, sidebar, componentTree, commandBarUI, reactRouterUI, graphUI]: [\n UiUI,\n ComponentUI,\n SidebarUI,\n ComponentTreeUI,\n CommandBarUI,\n ReactRouterUI,\n GraphUI\n ],\n config,\n [routeSlot, menuSlot, menuItemSlot, sidebarSlot, sidebarItemSlot]: [\n RouteSlot,\n RouteSlot,\n MenuItemSlot,\n SidebarWidgetSlot,\n SidebarItemSlot\n ]\n ) {\n componentTree.registerTreeNode(new ComponentTreeWidget());\n sidebarSlot.register(new ComponentTreeWidget());\n sidebar.registerDrawer(new WorkspaceComponentsDrawer(sidebarSlot));\n graphUI.registerComponentWidget(new ComponentTreeWidget().widget);\n\n const workspaceUI = new WorkspaceUI(\n routeSlot,\n componentUi,\n menuSlot,\n menuItemSlot,\n sidebar,\n sidebarSlot,\n sidebarItemSlot,\n commandBarUI,\n reactRouterUI\n );\n ui.registerRoot(workspaceUI.uiRoot.bind(workspaceUI));\n workspaceUI.registerMenuItem(workspaceUI.menuItems);\n\n workspaceUI.registerSidebarLink(() => (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Gallery\n </MenuLinkItem>\n ));\n\n workspaceUI.menuSlot.register([\n {\n exact: true,\n path: '/',\n children: <Menu menuItemSlot={workspaceUI.menuItemSlot} />,\n },\n {\n path: workspaceUI.componentUi.routePath,\n children: workspaceUI.componentUi.getMenu(WorkspaceAspect.id),\n },\n ]);\n\n workspaceUI.routeSlot.register({\n path: workspaceUI.componentUi.routePath,\n children: workspaceUI.componentUi.getComponentUI(WorkspaceAspect.id),\n });\n return workspaceUI;\n }\n}\n\nexport default WorkspaceUI;\n\nWorkspaceAspect.addRuntime(WorkspaceUI);\n"]}
1
+ {"version":3,"sources":["workspace.ui.runtime.tsx"],"names":["WorkspaceUI","constructor","routeSlot","componentUi","menuSlot","menuItemSlot","sidebar","sidebarSlot","sidebarItemSlot","commandBarUI","reactRouterUI","menuItems","register","routes","components","componentSearcher","update","links","category","title","keyChar","handler","run","ComponentSearcher","navigateTo","registerRoutes","registerDrawers","drawers","registerDrawer","registerSidebarWidget","componentTreeNode","uiRoot","addSearcher","WorkspaceComponentsDrawer","setKeyBindHandler","addCommand","id","displayName","keybinding","path","children","provider","ui","componentTree","graphUI","config","registerTreeNode","ComponentTreeWidget","registerComponentWidget","widget","workspaceUI","registerRoot","bind","registerMenuItem","registerSidebarLink","registerMenuRoutes","exact","routePath","getMenu","WorkspaceAspect","getComponentUI","UIAspect","ComponentAspect","SidebarAspect","ComponentTreeAspect","CommandBarAspect","ReactRouterAspect","GraphAspect","UIRuntime","Slot","withType","addRuntime"],"mappings":"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","sourcesContent":["import { ComponentAspect, ComponentUI, ComponentModel } from '@teambit/component';\nimport { ComponentTreeAspect, ComponentTreeUI, ComponentTreeNode } from '@teambit/component-tree';\nimport { Slot, SlotRegistry } from '@teambit/harmony';\nimport ReactRouterAspect, { ReactRouterUI } from '@teambit/react-router';\nimport { RouteSlot } from '@teambit/ui-foundation.ui.react-router.slot-router';\nimport { Menu } from '@teambit/ui-foundation.ui.menu';\nimport SidebarAspect, { SidebarUI, SidebarItem, SidebarItemSlot } from '@teambit/sidebar';\nimport { MenuItemSlot, MenuItem } from '@teambit/ui-foundation.ui.main-dropdown';\nimport { UIAspect, UIRootUI as UIRoot, UIRuntime, UiUI } from '@teambit/ui';\nimport { GraphAspect, GraphUI } from '@teambit/graph';\nimport React from 'react';\nimport { RouteProps } from 'react-router-dom';\nimport CommandBarAspect, { CommandBarUI, ComponentSearcher, CommandHandler } from '@teambit/command-bar';\nimport { MenuLinkItem } from '@teambit/design.ui.surfaces.menu.link-item';\nimport type { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';\nimport { WorkspaceComponentsDrawer } from './ui/workspace-components-drawer';\nimport { ComponentTreeWidget } from './component-tree.widget';\nimport { Workspace } from './ui';\nimport { WorkspaceAspect } from './workspace.aspect';\n\nexport type SidebarWidgetSlot = SlotRegistry<ComponentTreeNode>;\n\nexport class WorkspaceUI {\n constructor(\n /**\n * route slot.\n */\n private routeSlot: RouteSlot,\n\n /**\n * component ui extension.\n */\n private componentUi: ComponentUI,\n\n /**\n * menu slot\n */\n private menuSlot: RouteSlot,\n\n private menuItemSlot: MenuItemSlot,\n\n private sidebar: SidebarUI,\n\n private sidebarSlot: SidebarWidgetSlot,\n\n /**\n * sidebar link slot\n */\n private sidebarItemSlot: SidebarItemSlot,\n\n private commandBarUI: CommandBarUI,\n\n reactRouterUI: ReactRouterUI\n ) {\n this.componentSearcher = new ComponentSearcher(reactRouterUI.navigateTo);\n }\n\n private setKeyBindHandler: (updated: CommandHandler) => void = () => {};\n\n /**\n * register a route to the workspace.\n */\n registerRoutes(routes: RouteProps[]) {\n this.routeSlot.register(routes);\n return this;\n }\n\n registerDrawers(...drawers: DrawerType[]) {\n this.sidebar.registerDrawer(...drawers);\n return this;\n }\n\n registerSidebarWidget(componentTreeNode: ComponentTreeNode) {\n this.sidebarSlot.register(componentTreeNode);\n return this;\n }\n\n registerMenuItem = (menuItems: MenuItem[]) => {\n this.menuItemSlot.register(menuItems);\n };\n\n registerMenuRoutes = (routes: RouteProps[]) => {\n this.menuSlot.register(routes);\n return this;\n };\n\n setComponents = (components: ComponentModel[]) => {\n this.componentSearcher.update(components);\n };\n\n registerSidebarLink = (...links: SidebarItem[]) => {\n this.sidebarItemSlot.register(links);\n };\n\n componentSearcher: ComponentSearcher;\n\n uiRoot(): UIRoot {\n this.commandBarUI.addSearcher(this.componentSearcher);\n this.registerDrawers(new WorkspaceComponentsDrawer(this.sidebarSlot));\n const [setKeyBindHandler] = this.commandBarUI.addCommand({\n id: 'sidebar.toggle', // TODO - extract to a component!\n handler: () => {},\n displayName: 'Toggle component list',\n keybinding: 'alt+s',\n });\n this.setKeyBindHandler = setKeyBindHandler;\n\n return {\n routes: [\n {\n path: '/',\n children: (\n <Workspace\n menuSlot={this.menuSlot}\n routeSlot={this.routeSlot}\n sidebar={<this.sidebar.render itemSlot={this.sidebarItemSlot} />}\n workspaceUI={this}\n onSidebarTogglerChange={this.setKeyBindHandler}\n />\n ),\n },\n ],\n };\n }\n\n private menuItems: MenuItem[] = [\n {\n category: 'general',\n title: 'Open command bar',\n keyChar: 'mod+k',\n handler: () => this.commandBarUI?.run('command-bar.open'),\n },\n {\n category: 'general',\n title: 'Toggle component list',\n keyChar: 'alt+s',\n handler: () => this.commandBarUI?.run('sidebar.toggle'),\n },\n ];\n\n static dependencies = [\n UIAspect,\n ComponentAspect,\n SidebarAspect,\n ComponentTreeAspect,\n CommandBarAspect,\n ReactRouterAspect,\n GraphAspect,\n ];\n\n static runtime = UIRuntime;\n\n static slots = [\n Slot.withType<RouteProps>(),\n Slot.withType<RouteProps>(),\n Slot.withType<ComponentTreeNode>(),\n Slot.withType<MenuItemSlot>(),\n Slot.withType<SidebarItemSlot>(),\n ];\n\n static async provider(\n [ui, componentUi, sidebar, componentTree, commandBarUI, reactRouterUI, graphUI]: [\n UiUI,\n ComponentUI,\n SidebarUI,\n ComponentTreeUI,\n CommandBarUI,\n ReactRouterUI,\n GraphUI\n ],\n config,\n [routeSlot, menuSlot, menuItemSlot, sidebarSlot, sidebarItemSlot]: [\n RouteSlot,\n RouteSlot,\n MenuItemSlot,\n SidebarWidgetSlot,\n SidebarItemSlot\n ]\n ) {\n componentTree.registerTreeNode(new ComponentTreeWidget());\n sidebarSlot.register(new ComponentTreeWidget());\n graphUI.registerComponentWidget(new ComponentTreeWidget().widget);\n\n const workspaceUI = new WorkspaceUI(\n routeSlot,\n componentUi,\n menuSlot,\n menuItemSlot,\n sidebar,\n sidebarSlot,\n sidebarItemSlot,\n commandBarUI,\n reactRouterUI\n );\n ui.registerRoot(workspaceUI.uiRoot.bind(workspaceUI));\n workspaceUI.registerMenuItem(workspaceUI.menuItems);\n\n workspaceUI.registerSidebarLink(() => (\n <MenuLinkItem exact href=\"/\" icon=\"comps\">\n Gallery\n </MenuLinkItem>\n ));\n\n workspaceUI.registerMenuRoutes([\n {\n exact: true,\n path: '/',\n children: <Menu menuItemSlot={workspaceUI.menuItemSlot} />,\n },\n {\n path: workspaceUI.componentUi.routePath,\n children: workspaceUI.componentUi.getMenu(WorkspaceAspect.id),\n },\n ]);\n\n workspaceUI.registerRoutes([\n {\n path: workspaceUI.componentUi.routePath,\n children: workspaceUI.componentUi.getComponentUI(WorkspaceAspect.id),\n },\n ]);\n return workspaceUI;\n }\n}\n\nexport default WorkspaceUI;\n\nWorkspaceAspect.addRuntime(WorkspaceUI);\n"]}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/workspace",
3
- "version": "0.0.652",
3
+ "version": "0.0.655",
4
4
  "homepage": "https://bit.dev/teambit/workspace/workspace",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.workspace",
8
8
  "name": "workspace",
9
- "version": "0.0.652"
9
+ "version": "0.0.655"
10
10
  },
11
11
  "dependencies": {
12
12
  "lodash": "4.17.21",
@@ -41,40 +41,42 @@
41
41
  "@teambit/component-id": "0.0.401",
42
42
  "@teambit/bit-error": "0.0.394",
43
43
  "@teambit/legacy-bit-id": "0.0.398",
44
- "@teambit/logger": "0.0.535",
45
- "@teambit/scope": "0.0.652",
46
- "@teambit/cli": "0.0.445",
47
- "@teambit/isolator": "0.0.652",
48
- "@teambit/component-tree": "0.0.440",
49
- "@teambit/component.ui.component-status-resolver": "0.0.491",
44
+ "@teambit/logger": "0.0.536",
45
+ "@teambit/scope": "0.0.655",
46
+ "@teambit/cli": "0.0.446",
47
+ "@teambit/isolator": "0.0.655",
48
+ "@teambit/component-tree": "0.0.443",
49
+ "@teambit/component.ui.component-status-resolver": "0.0.492",
50
+ "@teambit/lanes.ui.lanes": "0.0.1",
50
51
  "@teambit/harmony.modules.resolved-component": "0.0.484",
51
- "@teambit/dependency-resolver": "0.0.652",
52
- "@teambit/compiler": "0.0.652",
53
- "@teambit/component": "0.0.652",
54
- "@teambit/graphql": "0.0.652",
55
- "@teambit/aspect-loader": "0.0.652",
56
- "@teambit/bundler": "0.0.652",
57
- "@teambit/envs": "0.0.652",
58
- "@teambit/pubsub": "0.0.652",
59
- "@teambit/ui": "0.0.652",
60
- "@teambit/variants": "0.0.538",
52
+ "@teambit/dependency-resolver": "0.0.655",
53
+ "@teambit/compiler": "0.0.655",
54
+ "@teambit/component": "0.0.655",
55
+ "@teambit/graphql": "0.0.655",
56
+ "@teambit/aspect-loader": "0.0.655",
57
+ "@teambit/bundler": "0.0.655",
58
+ "@teambit/envs": "0.0.655",
59
+ "@teambit/pubsub": "0.0.655",
60
+ "@teambit/ui": "0.0.655",
61
+ "@teambit/variants": "0.0.539",
61
62
  "@teambit/component-issues": "0.0.46",
62
- "@teambit/config": "0.0.458",
63
+ "@teambit/config": "0.0.459",
63
64
  "@teambit/harmony.modules.requireable-component": "0.0.484",
64
- "@teambit/importer": "0.0.81",
65
+ "@teambit/importer": "0.0.84",
65
66
  "@teambit/workspace.modules.match-pattern": "0.0.489",
66
- "@teambit/command-bar": "0.0.652",
67
- "@teambit/design.ui.surfaces.menu.link-item": "0.0.378",
68
- "@teambit/graph": "0.0.652",
69
- "@teambit/react-router": "0.0.652",
70
- "@teambit/sidebar": "0.0.652",
67
+ "@teambit/command-bar": "0.0.655",
68
+ "@teambit/design.ui.surfaces.menu.link-item": "0.0.379",
69
+ "@teambit/graph": "0.0.655",
70
+ "@teambit/react-router": "0.0.655",
71
+ "@teambit/sidebar": "0.0.655",
71
72
  "@teambit/ui-foundation.ui.main-dropdown": "0.0.486",
72
73
  "@teambit/ui-foundation.ui.menu": "0.0.486",
73
74
  "@teambit/ui-foundation.ui.react-router.slot-router": "0.0.488",
75
+ "@teambit/ui-foundation.ui.tree.drawer": "0.0.491",
74
76
  "@teambit/toolbox.time.time-format": "0.0.483",
75
77
  "@teambit/ui-foundation.ui.hooks.use-data-query": "0.0.487",
76
- "@teambit/component-descriptor": "0.0.3",
77
- "@teambit/deprecation": "0.0.652",
78
+ "@teambit/component-descriptor": "0.0.4",
79
+ "@teambit/deprecation": "0.0.655",
78
80
  "@teambit/ui-foundation.ui.constants.z-indexes": "0.0.487",
79
81
  "@teambit/ui-foundation.ui.buttons.collapser": "0.0.193",
80
82
  "@teambit/ui-foundation.ui.corner": "0.0.494",
@@ -84,11 +86,10 @@
84
86
  "@teambit/design.ui.styles.muted-italic": "0.0.35",
85
87
  "@teambit/design.ui.tree": "0.0.5",
86
88
  "@teambit/ui-foundation.ui.full-loader": "0.0.486",
87
- "@teambit/ui-foundation.ui.side-bar": "0.0.497",
88
- "@teambit/ui-foundation.ui.tree.drawer": "0.0.490",
89
+ "@teambit/ui-foundation.ui.side-bar": "0.0.498",
89
90
  "@teambit/explorer.ui.gallery.component-grid": "0.0.486",
90
91
  "@teambit/workspace.ui.empty-workspace": "0.0.489",
91
- "@teambit/workspace.ui.workspace-component-card": "0.0.493"
92
+ "@teambit/workspace.ui.workspace-component-card": "0.0.494"
92
93
  },
93
94
  "devDependencies": {
94
95
  "@types/lodash": "4.14.165",
@@ -108,7 +109,7 @@
108
109
  },
109
110
  "peerDependencies": {
110
111
  "@apollo/client": "^3.0.0",
111
- "@teambit/legacy": "1.0.223",
112
+ "@teambit/legacy": "1.0.225",
112
113
  "react-dom": "^16.8.0 || ^17.0.0",
113
114
  "react": "^16.8.0 || ^17.0.0"
114
115
  },
@@ -136,7 +137,7 @@
136
137
  "react": "-"
137
138
  },
138
139
  "peerDependencies": {
139
- "@teambit/legacy": "1.0.223",
140
+ "@teambit/legacy": "1.0.225",
140
141
  "react-dom": "^16.8.0 || ^17.0.0",
141
142
  "react": "^16.8.0 || ^17.0.0"
142
143
  }
@@ -45,10 +45,19 @@ export class ComponentStatus {
45
45
  /**
46
46
  * the component is not authored and not imported.
47
47
  */
48
- readonly nested?: boolean
48
+ readonly nested?: boolean,
49
+ /**
50
+ * does the component exist on the current lane
51
+ */
52
+ readonly isInCurrentLane?: boolean
49
53
  ) {}
50
54
 
51
- static fromLegacy(status: LegacyComponentStatus, hasModifiedDependencies: boolean, isOutdated: boolean) {
55
+ static fromLegacy(
56
+ status: LegacyComponentStatus,
57
+ hasModifiedDependencies: boolean,
58
+ isOutdated: boolean,
59
+ isInCurrentLane?: boolean
60
+ ) {
52
61
  const modify: ModifyInfo = {
53
62
  hasModifiedFiles: !!status.modified,
54
63
  hasModifiedDependencies,
@@ -61,7 +70,8 @@ export class ComponentStatus {
61
70
  !status.notExist,
62
71
  !status.missingFromScope,
63
72
  isOutdated,
64
- !!status.nested
73
+ !!status.nested,
74
+ isInCurrentLane
65
75
  );
66
76
  }
67
77
  }
@@ -12,6 +12,7 @@ import React from 'react';
12
12
  import { RouteProps } from 'react-router-dom';
13
13
  import CommandBarAspect, { CommandBarUI, ComponentSearcher, CommandHandler } from '@teambit/command-bar';
14
14
  import { MenuLinkItem } from '@teambit/design.ui.surfaces.menu.link-item';
15
+ import type { DrawerType } from '@teambit/ui-foundation.ui.tree.drawer';
15
16
  import { WorkspaceComponentsDrawer } from './ui/workspace-components-drawer';
16
17
  import { ComponentTreeWidget } from './component-tree.widget';
17
18
  import { Workspace } from './ui';
@@ -59,8 +60,13 @@ export class WorkspaceUI {
59
60
  /**
60
61
  * register a route to the workspace.
61
62
  */
62
- registerRoute(route: RouteProps) {
63
- this.routeSlot.register(route);
63
+ registerRoutes(routes: RouteProps[]) {
64
+ this.routeSlot.register(routes);
65
+ return this;
66
+ }
67
+
68
+ registerDrawers(...drawers: DrawerType[]) {
69
+ this.sidebar.registerDrawer(...drawers);
64
70
  return this;
65
71
  }
66
72
 
@@ -73,6 +79,11 @@ export class WorkspaceUI {
73
79
  this.menuItemSlot.register(menuItems);
74
80
  };
75
81
 
82
+ registerMenuRoutes = (routes: RouteProps[]) => {
83
+ this.menuSlot.register(routes);
84
+ return this;
85
+ };
86
+
76
87
  setComponents = (components: ComponentModel[]) => {
77
88
  this.componentSearcher.update(components);
78
89
  };
@@ -85,6 +96,7 @@ export class WorkspaceUI {
85
96
 
86
97
  uiRoot(): UIRoot {
87
98
  this.commandBarUI.addSearcher(this.componentSearcher);
99
+ this.registerDrawers(new WorkspaceComponentsDrawer(this.sidebarSlot));
88
100
  const [setKeyBindHandler] = this.commandBarUI.addCommand({
89
101
  id: 'sidebar.toggle', // TODO - extract to a component!
90
102
  handler: () => {},
@@ -167,7 +179,6 @@ export class WorkspaceUI {
167
179
  ) {
168
180
  componentTree.registerTreeNode(new ComponentTreeWidget());
169
181
  sidebarSlot.register(new ComponentTreeWidget());
170
- sidebar.registerDrawer(new WorkspaceComponentsDrawer(sidebarSlot));
171
182
  graphUI.registerComponentWidget(new ComponentTreeWidget().widget);
172
183
 
173
184
  const workspaceUI = new WorkspaceUI(
@@ -190,7 +201,7 @@ export class WorkspaceUI {
190
201
  </MenuLinkItem>
191
202
  ));
192
203
 
193
- workspaceUI.menuSlot.register([
204
+ workspaceUI.registerMenuRoutes([
194
205
  {
195
206
  exact: true,
196
207
  path: '/',
@@ -202,10 +213,12 @@ export class WorkspaceUI {
202
213
  },
203
214
  ]);
204
215
 
205
- workspaceUI.routeSlot.register({
206
- path: workspaceUI.componentUi.routePath,
207
- children: workspaceUI.componentUi.getComponentUI(WorkspaceAspect.id),
208
- });
216
+ workspaceUI.registerRoutes([
217
+ {
218
+ path: workspaceUI.componentUi.routePath,
219
+ children: workspaceUI.componentUi.getComponentUI(WorkspaceAspect.id),
220
+ },
221
+ ]);
209
222
  return workspaceUI;
210
223
  }
211
224
  }
@@ -1,62 +0,0 @@
1
- import { Command, CommandOptions } from '@teambit/cli';
2
- import chalk from 'chalk';
3
- import { Text } from 'ink';
4
- import React from 'react';
5
-
6
- import { EjectConfOptions, EjectConfResult, Workspace } from './workspace';
7
-
8
- type EjectConfArgs = [string];
9
- // From the cli we might get those as string in case we run it like --propagate true (return string) as opposed to only --propagate
10
- type EjectConfOptionsCLI = {
11
- propagate: string | boolean | undefined;
12
- override: string | boolean | undefined;
13
- };
14
-
15
- export default class EjectConfCmd implements Command {
16
- name = 'eject-conf [id]';
17
- description = 'ejecting components configuration';
18
- alias = '';
19
- group = 'development';
20
- shortDescription = 'eject the target component configuration file (e.g. create a `component.json` file)';
21
- options = [
22
- ['p', 'propagate', 'mark propagate true in the config file'],
23
- ['o', 'override', 'override file if exist'],
24
- ] as CommandOptions;
25
-
26
- constructor(private workspace: Workspace) {}
27
-
28
- // TODO: remove this ts-ignore
29
- // @ts-ignore
30
- async render(args: EjectConfArgs, options: EjectConfOptionsCLI) {
31
- const ejectResult = await this.json(args, options);
32
- const [componentId] = args;
33
- return (
34
- <Text color="green">
35
- successfully ejected config for component {componentId} in path {ejectResult.configPath}
36
- </Text>
37
- );
38
- }
39
-
40
- async report(args: EjectConfArgs, options: EjectConfOptionsCLI): Promise<string> {
41
- const ejectResult = await this.json(args, options);
42
- const [componentId] = args;
43
- return `successfully ejected config for component ${chalk.bold(componentId)} in path ${chalk.green(
44
- ejectResult.configPath
45
- )}`;
46
- }
47
-
48
- async json([componentId]: EjectConfArgs, options: EjectConfOptionsCLI): Promise<EjectConfResult> {
49
- const ejectOptions = options;
50
- if (ejectOptions.propagate === 'true') {
51
- ejectOptions.propagate = true;
52
- }
53
- if (ejectOptions.override === 'true') {
54
- ejectOptions.override = true;
55
- }
56
-
57
- const id = await this.workspace.resolveComponentId(componentId);
58
-
59
- const results = await this.workspace.ejectConfig(id, ejectOptions as EjectConfOptions);
60
- return results;
61
- }
62
- }