@teambit/workspace 1.0.983 → 1.0.985

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 (45) hide show
  1. package/dist/{preview-1778621260574.js → preview-1778686821215.js} +2 -2
  2. package/dist/ui/workspace/use-workspace.d.ts +7 -6
  3. package/dist/ui/workspace/workspace-overview/card-overlays.d.ts +4 -0
  4. package/dist/ui/workspace/workspace-overview/card-overlays.js +133 -0
  5. package/dist/ui/workspace/workspace-overview/card-overlays.js.map +1 -0
  6. package/dist/ui/workspace/workspace-overview/card-overlays.module.scss +72 -0
  7. package/dist/ui/workspace/workspace-overview/filter-utils.d.ts +4 -1
  8. package/dist/ui/workspace/workspace-overview/filter-utils.js +17 -1
  9. package/dist/ui/workspace/workspace-overview/filter-utils.js.map +1 -1
  10. package/dist/ui/workspace/workspace-overview/hope-component-card.d.ts +14 -0
  11. package/dist/ui/workspace/workspace-overview/hope-component-card.js +186 -0
  12. package/dist/ui/workspace/workspace-overview/hope-component-card.js.map +1 -0
  13. package/dist/ui/workspace/workspace-overview/hope-component-card.module.scss +162 -0
  14. package/dist/ui/workspace/workspace-overview/namespace-header.d.ts +8 -0
  15. package/dist/ui/workspace/workspace-overview/namespace-header.js +107 -0
  16. package/dist/ui/workspace/workspace-overview/namespace-header.js.map +1 -0
  17. package/dist/ui/workspace/workspace-overview/namespace-header.module.scss +88 -0
  18. package/dist/ui/workspace/workspace-overview/use-workspace-aggregation.js +11 -5
  19. package/dist/ui/workspace/workspace-overview/use-workspace-aggregation.js.map +1 -1
  20. package/dist/ui/workspace/workspace-overview/workspace-filter-panel.js +8 -6
  21. package/dist/ui/workspace/workspace-overview/workspace-filter-panel.js.map +1 -1
  22. package/dist/ui/workspace/workspace-overview/workspace-overview.d.ts +0 -6
  23. package/dist/ui/workspace/workspace-overview/workspace-overview.js +38 -105
  24. package/dist/ui/workspace/workspace-overview/workspace-overview.js.map +1 -1
  25. package/dist/ui/workspace/workspace-overview/workspace-overview.module.scss +38 -158
  26. package/dist/ui/workspace/workspace-overview/workspace-overview.types.d.ts +6 -0
  27. package/dist/ui/workspace/workspace-overview/workspace-overview.types.js.map +1 -1
  28. package/dist/ui/workspace/workspace.js +22 -5
  29. package/dist/ui/workspace/workspace.js.map +1 -1
  30. package/dist/ui/workspace/workspace.module.scss +38 -30
  31. package/package.json +43 -44
  32. package/ui/workspace/workspace-overview/card-overlays.module.scss +72 -0
  33. package/ui/workspace/workspace-overview/card-overlays.tsx +66 -0
  34. package/ui/workspace/workspace-overview/filter-utils.ts +18 -1
  35. package/ui/workspace/workspace-overview/hope-component-card.module.scss +162 -0
  36. package/ui/workspace/workspace-overview/hope-component-card.tsx +152 -0
  37. package/ui/workspace/workspace-overview/namespace-header.module.scss +88 -0
  38. package/ui/workspace/workspace-overview/namespace-header.tsx +72 -0
  39. package/ui/workspace/workspace-overview/use-workspace-aggregation.ts +11 -5
  40. package/ui/workspace/workspace-overview/workspace-filter-panel.tsx +10 -9
  41. package/ui/workspace/workspace-overview/workspace-overview.module.scss +38 -158
  42. package/ui/workspace/workspace-overview/workspace-overview.tsx +40 -88
  43. package/ui/workspace/workspace-overview/workspace-overview.types.ts +7 -1
  44. package/ui/workspace/workspace.module.scss +38 -30
  45. package/ui/workspace/workspace.tsx +24 -7
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.WorkspaceOverview = WorkspaceOverview;
7
- exports.useCardPlugins = useCardPlugins;
8
7
  function _react() {
9
8
  const data = _interopRequireWildcard(require("react"));
10
9
  _react = function () {
@@ -26,27 +25,6 @@ function _workspaceUi() {
26
25
  };
27
26
  return data;
28
27
  }
29
- function _previewUi() {
30
- const data = require("@teambit/preview.ui.preview-placeholder");
31
- _previewUi = function () {
32
- return data;
33
- };
34
- return data;
35
- }
36
- function _designUi() {
37
- const data = require("@teambit/design.ui.tooltip");
38
- _designUi = function () {
39
- return data;
40
- };
41
- return data;
42
- }
43
- function _componentId() {
44
- const data = require("@teambit/component-id");
45
- _componentId = function () {
46
- return data;
47
- };
48
- return data;
49
- }
50
28
  function _lodash() {
51
29
  const data = _interopRequireDefault(require("lodash.compact"));
52
30
  _lodash = function () {
@@ -69,22 +47,8 @@ function _cloudHooks() {
69
47
  return data;
70
48
  }
71
49
  function _workspaceUi2() {
72
- const data = require("@teambit/workspace.ui.workspace-component-card");
73
- _workspaceUi2 = function () {
74
- return data;
75
- };
76
- return data;
77
- }
78
- function _workspaceUi3() {
79
50
  const data = require("@teambit/workspace.ui.use-workspace-mode");
80
- _workspaceUi3 = function () {
81
- return data;
82
- };
83
- return data;
84
- }
85
- function _designUi2() {
86
- const data = require("@teambit/design.ui.heading");
87
- _designUi2 = function () {
51
+ _workspaceUi2 = function () {
88
52
  return data;
89
53
  };
90
54
  return data;
@@ -96,13 +60,6 @@ function _workspaceContext() {
96
60
  };
97
61
  return data;
98
62
  }
99
- function _linkPlugin() {
100
- const data = require("./link-plugin");
101
- _linkPlugin = function () {
102
- return data;
103
- };
104
- return data;
105
- }
106
63
  function _useWorkspaceAggregation() {
107
64
  const data = require("./use-workspace-aggregation");
108
65
  _useWorkspaceAggregation = function () {
@@ -117,6 +74,20 @@ function _useQueryParamWithDefault() {
117
74
  };
118
75
  return data;
119
76
  }
77
+ function _namespaceHeader() {
78
+ const data = require("./namespace-header");
79
+ _namespaceHeader = function () {
80
+ return data;
81
+ };
82
+ return data;
83
+ }
84
+ function _hopeComponentCard() {
85
+ const data = require("./hope-component-card");
86
+ _hopeComponentCard = function () {
87
+ return data;
88
+ };
89
+ return data;
90
+ }
120
91
  function _workspaceFilterPanel() {
121
92
  const data = require("./workspace-filter-panel");
122
93
  _workspaceFilterPanel = function () {
@@ -144,8 +115,7 @@ function WorkspaceOverview() {
144
115
  });
145
116
  const {
146
117
  isMinimal
147
- } = (0, _workspaceUi3().useWorkspaceMode)();
148
- const compModelsById = (0, _react().useMemo)(() => new Map(components.map(c => [c.id.toString(), c])), [components]);
118
+ } = (0, _workspaceUi2().useWorkspaceMode)();
149
119
  const uniqueScopes = [...new Set(components.map(c => c.id.scope))];
150
120
  const {
151
121
  cloudScopes
@@ -163,9 +133,11 @@ function WorkspaceOverview() {
163
133
  return {
164
134
  component,
165
135
  componentDescriptor: descriptor,
166
- scope: scope && {
167
- id: scope.id
168
- } || undefined
136
+ scope: scope ? {
137
+ id: scope.id,
138
+ icon: scope.icon,
139
+ backgroundIconColor: scope.backgroundIconColor
140
+ } : undefined
169
141
  };
170
142
  }));
171
143
  const [aggregation, setAggregation] = (0, _useQueryParamWithDefault().useQueryParamWithDefault)('aggregation', 'namespaces');
@@ -173,7 +145,8 @@ function WorkspaceOverview() {
173
145
  const [activeScopes, setActiveScopes] = (0, _useQueryParamWithDefault().useListParamWithDefault)('scopes');
174
146
  const filters = (0, _react().useMemo)(() => ({
175
147
  namespaces: activeNamespaces,
176
- scopes: activeScopes
148
+ scopes: activeScopes,
149
+ statuses: new Set()
177
150
  }), [activeNamespaces, activeScopes]);
178
151
  const {
179
152
  groups,
@@ -181,10 +154,6 @@ function WorkspaceOverview() {
181
154
  availableAggregations,
182
155
  filteredCount
183
156
  } = (0, _useWorkspaceAggregation().useWorkspaceAggregation)(items, aggregation, filters);
184
- const plugins = useCardPlugins({
185
- compModelsById,
186
- showPreview: isMinimal
187
- });
188
157
  return /*#__PURE__*/_react().default.createElement("div", {
189
158
  className: _workspaceOverviewModule().default.container
190
159
  }, /*#__PURE__*/_react().default.createElement(_workspaceFilterPanel().WorkspaceFilterPanel, {
@@ -196,65 +165,29 @@ function WorkspaceOverview() {
196
165
  onNamespacesChange: setActiveNamespaces,
197
166
  activeScopes: activeScopes,
198
167
  onScopesChange: setActiveScopes
199
- }), filteredCount === 0 && /*#__PURE__*/_react().default.createElement(_workspaceUi().EmptyWorkspace, {
168
+ }), /*#__PURE__*/_react().default.createElement("div", {
169
+ className: _workspaceOverviewModule().default.content
170
+ }, filteredCount === 0 && /*#__PURE__*/_react().default.createElement(_workspaceUi().EmptyWorkspace, {
200
171
  name: workspace.name
201
172
  }), groups.map(group => /*#__PURE__*/_react().default.createElement("section", {
202
173
  key: group.name,
203
- className: _workspaceOverviewModule().default.agg
204
- }, groupType !== 'none' && /*#__PURE__*/_react().default.createElement(_designUi2().H3, {
205
- className: _workspaceOverviewModule().default.aggregationTitle
206
- }, group.displayName), /*#__PURE__*/_react().default.createElement(_explorerUiGallery().ComponentGrid, {
174
+ className: _workspaceOverviewModule().default.section
175
+ }, groupType !== 'none' && /*#__PURE__*/_react().default.createElement("div", {
176
+ className: _workspaceOverviewModule().default.sectionHeader
177
+ }, /*#__PURE__*/_react().default.createElement(_namespaceHeader().NamespaceHeader, {
178
+ namespace: group.name,
179
+ items: group.items,
180
+ scopeIcon: group.scopeIcon,
181
+ scopeIconColor: group.scopeIconColor
182
+ })), /*#__PURE__*/_react().default.createElement(_explorerUiGallery().ComponentGrid, {
207
183
  className: _workspaceOverviewModule().default.cardGrid
208
- }, group.items.map(item => /*#__PURE__*/_react().default.createElement(_workspaceUi2().WorkspaceComponentCard, {
184
+ }, group.items.map(item => /*#__PURE__*/_react().default.createElement(_hopeComponentCard().HopeComponentCard, {
209
185
  key: item.component.id.toString(),
210
186
  component: item.component,
211
187
  componentDescriptor: item.componentDescriptor,
212
188
  scope: item.scope,
213
- plugins: plugins,
214
- shouldShowPreviewState: isMinimal
215
- }))))));
216
- }
217
- function useCardPlugins({
218
- compModelsById,
219
- showPreview
220
- }) {
221
- const serverUrlsSignature = _react().default.useMemo(() => {
222
- const serversCount = Array.from(compModelsById.values()).filter(comp => comp.server?.url).map(comp => comp.server?.url).join(',');
223
- return serversCount;
224
- }, [compModelsById]);
225
- const plugins = _react().default.useMemo(() => [{
226
- preview: function Preview({
227
- component,
228
- shouldShowPreview
229
- }) {
230
- const compModel = compModelsById.get(component.id.toString());
231
- if (!compModel) return null;
232
- return /*#__PURE__*/_react().default.createElement(_previewUi().PreviewPlaceholder, {
233
- componentDescriptor: component,
234
- component: compModel,
235
- shouldShowPreview: showPreview || shouldShowPreview
236
- });
237
- }
238
- }, {
239
- previewBottomRight: function PreviewBottomRight({
240
- component
241
- }) {
242
- const env = component.get('teambit.envs/envs');
243
- const envComponentId = env?.id ? _componentId().ComponentID.fromString(env?.id) : undefined;
244
- return /*#__PURE__*/_react().default.createElement("div", {
245
- className: _workspaceOverviewModule().default.rightPreviewPlugins
246
- }, /*#__PURE__*/_react().default.createElement("div", {
247
- className: _workspaceOverviewModule().default.badge
248
- }, /*#__PURE__*/_react().default.createElement(_designUi().Tooltip, {
249
- delay: 300,
250
- content: envComponentId?.name
251
- }, /*#__PURE__*/_react().default.createElement("img", {
252
- src: env?.icon,
253
- className: _workspaceOverviewModule().default.envIcon
254
- }))));
255
- }
256
- }, new (_linkPlugin().LinkPlugin)()], [compModelsById.size, serverUrlsSignature, showPreview]);
257
- return plugins;
189
+ showPreview: isMinimal
190
+ })))))));
258
191
  }
259
192
 
260
193
  //# sourceMappingURL=workspace-overview.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","data","_interopRequireWildcard","require","_explorerUiGallery","_workspaceUi","_previewUi","_designUi","_componentId","_lodash","_interopRequireDefault","_scopes","_cloudHooks","_workspaceUi2","_workspaceUi3","_designUi2","_workspaceContext","_linkPlugin","_useWorkspaceAggregation","_useQueryParamWithDefault","_workspaceFilterPanel","_workspaceOverviewModule","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","WorkspaceOverview","workspace","useContext","WorkspaceContext","components","componentDescriptors","length","createElement","EmptyWorkspace","name","isMinimal","useWorkspaceMode","compModelsById","useMemo","Map","map","c","id","toString","uniqueScopes","Set","scope","cloudScopes","useCloudScopes","cloudMap","s","compDescriptorMap","d","items","compact","component","deprecation","isDeprecate","descriptor","cloudScope","ScopeID","isValid","fromString","undefined","componentDescriptor","aggregation","setAggregation","useQueryParamWithDefault","activeNamespaces","setActiveNamespaces","useListParamWithDefault","activeScopes","setActiveScopes","filters","namespaces","scopes","groups","groupType","availableAggregations","filteredCount","useWorkspaceAggregation","plugins","useCardPlugins","showPreview","className","styles","container","WorkspaceFilterPanel","onAggregationChange","onNamespacesChange","onScopesChange","group","key","agg","H3","aggregationTitle","displayName","ComponentGrid","cardGrid","item","WorkspaceComponentCard","shouldShowPreviewState","serverUrlsSignature","React","serversCount","Array","from","values","filter","comp","server","url","join","preview","Preview","shouldShowPreview","compModel","PreviewPlaceholder","previewBottomRight","PreviewBottomRight","env","envComponentId","ComponentID","rightPreviewPlugins","badge","Tooltip","delay","content","src","icon","envIcon","LinkPlugin","size"],"sources":["workspace-overview.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react';\nimport { ComponentGrid } from '@teambit/explorer.ui.gallery.component-grid';\nimport { EmptyWorkspace } from '@teambit/workspace.ui.empty-workspace';\nimport { PreviewPlaceholder } from '@teambit/preview.ui.preview-placeholder';\nimport { Tooltip } from '@teambit/design.ui.tooltip';\nimport { ComponentID } from '@teambit/component-id';\nimport type { ComponentModel } from '@teambit/component';\nimport compact from 'lodash.compact';\nimport { ScopeID } from '@teambit/scopes.scope-id';\nimport { useCloudScopes } from '@teambit/cloud.hooks.use-cloud-scopes';\nimport { WorkspaceComponentCard } from '@teambit/workspace.ui.workspace-component-card';\nimport type { ComponentCardPluginType, PluginProps } from '@teambit/explorer.ui.component-card';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport { H3 } from '@teambit/design.ui.heading';\nimport { WorkspaceContext } from '../workspace-context';\nimport { LinkPlugin } from './link-plugin';\nimport { useWorkspaceAggregation } from './use-workspace-aggregation';\nimport { useQueryParamWithDefault, useListParamWithDefault } from './use-query-param-with-default';\nimport type { AggregationType } from './workspace-overview.types';\nimport { WorkspaceFilterPanel } from './workspace-filter-panel';\nimport styles from './workspace-overview.module.scss';\n\nexport function WorkspaceOverview() {\n const workspace = useContext(WorkspaceContext);\n const { components, componentDescriptors } = workspace;\n\n if (!components.length) return <EmptyWorkspace name={workspace.name} />;\n\n const { isMinimal } = useWorkspaceMode();\n const compModelsById = useMemo(() => new Map(components.map((c) => [c.id.toString(), c])), [components]);\n\n const uniqueScopes = [...new Set(components.map((c) => c.id.scope))];\n const { cloudScopes } = useCloudScopes(uniqueScopes);\n const cloudMap = new Map((cloudScopes || []).map((s) => [s.id.toString(), s]));\n\n const compDescriptorMap = new Map(componentDescriptors.map((d) => [d.id.toString(), d]));\n\n const items = compact(\n components.map((component) => {\n if (component.deprecation?.isDeprecate) return null;\n\n const descriptor = compDescriptorMap.get(component.id.toString());\n if (!descriptor) return null;\n\n const cloudScope = cloudMap.get(component.id.scope);\n const scope =\n cloudScope ||\n (ScopeID.isValid(component.id.scope) && { id: ScopeID.fromString(component.id.scope) }) ||\n undefined;\n\n return { component, componentDescriptor: descriptor, scope: (scope && { id: scope.id }) || undefined };\n })\n );\n\n const [aggregation, setAggregation] = useQueryParamWithDefault<AggregationType>('aggregation', 'namespaces');\n const [activeNamespaces, setActiveNamespaces] = useListParamWithDefault('ns');\n const [activeScopes, setActiveScopes] = useListParamWithDefault('scopes');\n\n const filters = useMemo(\n () => ({ namespaces: activeNamespaces, scopes: activeScopes }),\n [activeNamespaces, activeScopes]\n );\n\n const { groups, groupType, availableAggregations, filteredCount } = useWorkspaceAggregation(\n items,\n aggregation,\n filters\n );\n\n const plugins = useCardPlugins({ compModelsById, showPreview: isMinimal });\n\n return (\n <div className={styles.container}>\n <WorkspaceFilterPanel\n aggregation={aggregation}\n onAggregationChange={setAggregation}\n availableAggregations={availableAggregations}\n items={items}\n activeNamespaces={activeNamespaces}\n onNamespacesChange={setActiveNamespaces}\n activeScopes={activeScopes}\n onScopesChange={setActiveScopes}\n />\n\n {filteredCount === 0 && <EmptyWorkspace name={workspace.name} />}\n\n {groups.map((group) => (\n <section key={group.name} className={styles.agg}>\n {groupType !== 'none' && <H3 className={styles.aggregationTitle}>{group.displayName}</H3>}\n\n <ComponentGrid className={styles.cardGrid}>\n {group.items.map((item) => (\n <WorkspaceComponentCard\n key={item.component.id.toString()}\n component={item.component}\n componentDescriptor={item.componentDescriptor}\n scope={item.scope}\n plugins={plugins}\n shouldShowPreviewState={isMinimal}\n />\n ))}\n </ComponentGrid>\n </section>\n ))}\n </div>\n );\n}\n\nexport function useCardPlugins({\n compModelsById,\n showPreview,\n}: {\n compModelsById: Map<string, ComponentModel>;\n showPreview?: boolean;\n}): ComponentCardPluginType<PluginProps>[] {\n const serverUrlsSignature = React.useMemo(() => {\n const serversCount = Array.from(compModelsById.values())\n .filter((comp) => comp.server?.url)\n .map((comp) => comp.server?.url)\n .join(',');\n return serversCount;\n }, [compModelsById]);\n\n const plugins = React.useMemo(\n () => [\n {\n preview: function Preview({ component, shouldShowPreview }) {\n const compModel = compModelsById.get(component.id.toString());\n if (!compModel) return null;\n return (\n <PreviewPlaceholder\n componentDescriptor={component}\n component={compModel}\n shouldShowPreview={showPreview || shouldShowPreview}\n />\n );\n },\n },\n {\n previewBottomRight: function PreviewBottomRight({ component }) {\n const env = component.get('teambit.envs/envs');\n const envComponentId = env?.id ? ComponentID.fromString(env?.id) : undefined;\n\n return (\n <div className={styles.rightPreviewPlugins}>\n <div className={styles.badge}>\n <Tooltip delay={300} content={envComponentId?.name}>\n <img src={env?.icon} className={styles.envIcon} />\n </Tooltip>\n </div>\n </div>\n );\n },\n },\n new LinkPlugin(),\n ],\n [compModelsById.size, serverUrlsSignature, showPreview]\n );\n\n return plugins;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","data","_interopRequireWildcard","require","_explorerUiGallery","_workspaceUi","_lodash","_interopRequireDefault","_scopes","_cloudHooks","_workspaceUi2","_workspaceContext","_useWorkspaceAggregation","_useQueryParamWithDefault","_namespaceHeader","_hopeComponentCard","_workspaceFilterPanel","_workspaceOverviewModule","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","WorkspaceOverview","workspace","useContext","WorkspaceContext","components","componentDescriptors","length","createElement","EmptyWorkspace","name","isMinimal","useWorkspaceMode","uniqueScopes","Set","map","c","id","scope","cloudScopes","useCloudScopes","cloudMap","Map","s","toString","compDescriptorMap","d","items","compact","component","deprecation","isDeprecate","descriptor","cloudScope","ScopeID","isValid","fromString","undefined","componentDescriptor","icon","backgroundIconColor","aggregation","setAggregation","useQueryParamWithDefault","activeNamespaces","setActiveNamespaces","useListParamWithDefault","activeScopes","setActiveScopes","filters","useMemo","namespaces","scopes","statuses","groups","groupType","availableAggregations","filteredCount","useWorkspaceAggregation","className","styles","container","WorkspaceFilterPanel","onAggregationChange","onNamespacesChange","onScopesChange","content","group","key","section","sectionHeader","NamespaceHeader","namespace","scopeIcon","scopeIconColor","ComponentGrid","cardGrid","item","HopeComponentCard","showPreview"],"sources":["workspace-overview.tsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react';\nimport { ComponentGrid } from '@teambit/explorer.ui.gallery.component-grid';\nimport { EmptyWorkspace } from '@teambit/workspace.ui.empty-workspace';\nimport compact from 'lodash.compact';\nimport { ScopeID } from '@teambit/scopes.scope-id';\nimport { useCloudScopes } from '@teambit/cloud.hooks.use-cloud-scopes';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport { WorkspaceContext } from '../workspace-context';\nimport { useWorkspaceAggregation } from './use-workspace-aggregation';\nimport { useQueryParamWithDefault, useListParamWithDefault } from './use-query-param-with-default';\nimport { NamespaceHeader } from './namespace-header';\nimport { HopeComponentCard } from './hope-component-card';\nimport type { AggregationType } from './workspace-overview.types';\nimport { WorkspaceFilterPanel } from './workspace-filter-panel';\nimport styles from './workspace-overview.module.scss';\n\nexport function WorkspaceOverview() {\n const workspace = useContext(WorkspaceContext);\n const { components, componentDescriptors } = workspace;\n\n if (!components.length) return <EmptyWorkspace name={workspace.name} />;\n\n const { isMinimal } = useWorkspaceMode();\n const uniqueScopes = [...new Set(components.map((c) => c.id.scope))];\n const { cloudScopes } = useCloudScopes(uniqueScopes);\n const cloudMap = new Map((cloudScopes || []).map((s) => [s.id.toString(), s]));\n\n const compDescriptorMap = new Map(componentDescriptors.map((d) => [d.id.toString(), d]));\n\n const items = compact(\n components.map((component) => {\n if (component.deprecation?.isDeprecate) return null;\n\n const descriptor = compDescriptorMap.get(component.id.toString());\n if (!descriptor) return null;\n\n const cloudScope = cloudMap.get(component.id.scope);\n const scope =\n cloudScope ||\n (ScopeID.isValid(component.id.scope) && { id: ScopeID.fromString(component.id.scope) }) ||\n undefined;\n\n return {\n component,\n componentDescriptor: descriptor,\n scope: scope\n ? { id: scope.id, icon: (scope as any).icon, backgroundIconColor: (scope as any).backgroundIconColor }\n : undefined,\n };\n })\n );\n\n const [aggregation, setAggregation] = useQueryParamWithDefault<AggregationType>('aggregation', 'namespaces');\n const [activeNamespaces, setActiveNamespaces] = useListParamWithDefault('ns');\n const [activeScopes, setActiveScopes] = useListParamWithDefault('scopes');\n\n const filters = useMemo(\n () => ({ namespaces: activeNamespaces, scopes: activeScopes, statuses: new Set() as any }),\n [activeNamespaces, activeScopes]\n );\n\n const { groups, groupType, availableAggregations, filteredCount } = useWorkspaceAggregation(\n items,\n aggregation,\n filters\n );\n\n return (\n <div className={styles.container}>\n <WorkspaceFilterPanel\n aggregation={aggregation}\n onAggregationChange={setAggregation}\n availableAggregations={availableAggregations}\n items={items}\n activeNamespaces={activeNamespaces}\n onNamespacesChange={setActiveNamespaces}\n activeScopes={activeScopes}\n onScopesChange={setActiveScopes}\n />\n\n <div className={styles.content}>\n {filteredCount === 0 && <EmptyWorkspace name={workspace.name} />}\n\n {groups.map((group) => (\n <section key={group.name} className={styles.section}>\n {groupType !== 'none' && (\n <div className={styles.sectionHeader}>\n <NamespaceHeader\n namespace={group.name}\n items={group.items}\n scopeIcon={group.scopeIcon}\n scopeIconColor={group.scopeIconColor}\n />\n </div>\n )}\n\n <ComponentGrid className={styles.cardGrid}>\n {group.items.map((item) => (\n <HopeComponentCard\n key={item.component.id.toString()}\n component={item.component}\n componentDescriptor={item.componentDescriptor}\n scope={item.scope as any}\n showPreview={isMinimal}\n />\n ))}\n </ComponentGrid>\n </section>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,211 +1,91 @@
1
1
  @import '@teambit/ui-foundation.ui.constants.z-indexes/z-indexes.module.scss';
2
2
 
3
3
  .container {
4
- padding: 24px 5% 150px 5%;
5
4
  overflow-y: auto;
6
5
  height: 100%;
7
6
  box-sizing: border-box;
8
7
  z-index: 1;
9
8
  }
10
9
 
11
- .rightPreviewPlugins {
12
- display: flex;
13
- align-items: flex-end;
14
- justify-content: flex-end;
15
- width: 100%;
16
- height: 100%;
17
- }
18
-
19
- .envIcon {
20
- height: 14px;
10
+ .content {
11
+ padding: 20px 40px 80px;
21
12
  }
22
13
 
23
- .badge {
24
- background-color: var(--surface-color);
25
- padding: 4px;
26
- height: 15px;
27
- margin-right: 4px;
28
- z-index: $nav-z-index;
29
- border-radius: 8px;
30
- margin-bottom: 4px;
31
- box-shadow: 0px 2px 18px rgb(0 0 0 / 10%);
32
- }
33
-
34
- .cardGrid {
35
- display: grid;
36
- gap: 32px 24px;
37
- grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
38
- max-width: 1280px;
39
- grid-column-gap: 28px;
40
- grid-row-gap: 32px;
41
- }
14
+ /* ---- Command bar ---- */
42
15
 
43
- .filterPanel {
16
+ .commandBar {
44
17
  display: flex;
45
18
  align-items: center;
46
19
  justify-content: space-between;
47
- margin-bottom: 24px;
48
- position: relative;
20
+ gap: 12px;
21
+ flex-wrap: wrap;
22
+ padding: 12px 40px;
23
+ background: color-mix(in srgb, var(--bit-accent-color, #6c5ce7) 3%, var(--background-color, #fff));
24
+ border-bottom: 1px solid var(--border-medium-color);
25
+ position: sticky;
26
+ top: 0;
49
27
  z-index: $modal-z-index - 1;
50
28
  }
51
29
 
52
- .aggButtons {
53
- display: inline-flex;
54
- background: var(--surface-1-color);
55
- border: 1px solid var(--border-medium-color);
56
- border-radius: 8px;
57
- padding: 2px;
58
- height: 34px;
59
- }
60
-
61
- .aggButton,
62
- .aggActive {
63
- padding: 4px 12px;
64
- font-size: 14px;
65
- border-radius: 6px;
66
- background: transparent;
67
- cursor: pointer;
68
- border: none;
30
+ .leftCluster {
69
31
  display: flex;
70
32
  align-items: center;
71
- }
72
-
73
- .aggButton:hover {
74
- background: var(--surface-hover-color);
75
- }
76
-
77
- .aggActive {
78
- background: var(--brand-primary-color);
79
- color: white;
80
- }
81
-
82
- .dropdownList {
83
- max-height: 260px;
84
- overflow-y: auto;
85
- padding: 0 12px;
86
- display: flex;
87
- flex-direction: column;
88
33
  gap: 8px;
34
+ flex-wrap: wrap;
89
35
  }
90
36
 
91
- .dropdownItem {
37
+ .rightCluster {
92
38
  display: flex;
93
39
  align-items: center;
94
40
  gap: 8px;
95
- font-size: 14px;
96
- cursor: pointer;
97
- }
98
-
99
- .dropdownItem input {
100
- width: 16px;
101
- height: 16px;
102
- }
103
-
104
- .count {
105
- opacity: 0.55;
106
- }
107
-
108
- .agg {
109
- margin-bottom: 28px;
41
+ margin-left: auto;
110
42
  }
111
43
 
112
- .aggregationTitle {
113
- margin-top: 0;
114
- margin-bottom: 15px;
44
+ .aggToggle {
45
+ height: 32px !important;
46
+ font-size: 12.5px;
47
+ --surface02-color: color-mix(in srgb, var(--bit-accent-color, #6c5ce7) 20%, var(--surface-color, #f5f5f5));
115
48
  }
116
49
 
117
- :global(.componentGrid) {
118
- grid-row-gap: 24px !important;
119
- grid-column-gap: 16px !important;
120
- }
50
+ /* ---- Base filter overrides ---- */
121
51
 
122
- .filterPanel :global(.baseFilter) {
52
+ .commandBar :global(.baseFilter) {
123
53
  max-width: 220px;
124
54
  height: 32px;
125
55
  }
126
56
 
127
- .filterPanel :global(.control) {
57
+ .commandBar :global(.control) {
128
58
  border-radius: 8px !important;
129
59
  height: 32px;
130
60
  padding: 0 10px !important;
131
61
  }
132
62
 
133
- .filterPanel :global(.menu) {
63
+ .commandBar :global(.menu) {
134
64
  z-index: $modal-z-index - 1 !important;
135
- border-radius: 8px !important;
65
+ border-radius: 14px !important;
136
66
  padding: 8px 0 !important;
67
+ width: 260px;
68
+ box-shadow: 0 24px 60px -12px rgba(20, 0, 104, 0.2);
137
69
  }
138
70
 
139
- .filterDropdown :global(.baseFilter) {
140
- height: 32px;
141
- max-width: 240px;
142
- font-size: 14px;
143
- }
144
-
145
- .filterDropdown :global(.baseFilter .control) {
146
- padding: 8px 12px;
147
- border-radius: 8px;
148
- }
149
-
150
- .filterDropdown :global(.menu) {
151
- margin-top: 10px;
152
- padding: 12px 0;
153
- min-width: 260px;
154
- border-radius: 12px;
155
-
156
- box-shadow: var(--bit-shadow-hover-low, 0 2px 8px rgba(0, 0, 0, 0.1));
157
- border: 1px solid var(--border-medium-color, #ededed);
158
- }
159
-
160
- .filterDropdown :global(.checkboxContainer) {
161
- padding-left: 14px;
162
- }
163
-
164
- .filterDropdown :global(.checkbox) {
165
- margin-right: 12px;
166
- accent-color: var(--bit-accent-color, #6c5ce7);
167
- }
168
-
169
- .filterDropdown :global(.buttonsSection) {
170
- padding: 12px 16px;
171
- border-top: 1px solid var(--border-medium-color, #ededed);
172
- }
173
-
174
- .filterDropdown :global(.placeholder > span:not(:first-child)) {
175
- margin-left: 8px;
176
- }
71
+ /* ---- Section ---- */
177
72
 
178
- .filterPanel {
179
- display: flex;
180
- align-items: center;
181
- justify-content: space-between;
182
- margin-bottom: 24px;
183
- gap: 16px;
184
- }
185
-
186
- .leftFilters {
187
- display: flex;
188
- gap: 12px;
189
- align-items: center;
73
+ .section {
74
+ margin-bottom: 40px;
190
75
  }
191
76
 
192
- .rightAggToggle {
193
- display: flex;
194
- align-items: center;
195
- margin-left: auto;
196
- height: 32px;
197
- font-size: 14px;
77
+ .sectionHeader {
78
+ position: sticky;
79
+ top: 57px;
80
+ z-index: $nav-z-index;
81
+ background: var(--background-color);
82
+ padding: 12px 0 18px;
198
83
  }
199
84
 
200
- .toggleBtn {
201
- height: 32px !important;
202
- font-size: 14px;
203
- }
85
+ /* ---- Card grid ---- */
204
86
 
205
87
  .cardGrid {
206
88
  display: grid;
207
- grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
208
- grid-row-gap: 32px;
209
- grid-column-gap: 24px;
210
- max-width: 1280px;
89
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
90
+ gap: 14px;
211
91
  }
@@ -6,13 +6,19 @@ export interface WorkspaceItem {
6
6
  componentDescriptor: ComponentDescriptor;
7
7
  scope?: {
8
8
  id: ScopeID;
9
+ icon?: string;
10
+ backgroundIconColor?: string;
9
11
  };
10
12
  }
11
13
  export type AggregationType = 'namespaces' | 'scopes' | 'none';
14
+ export type Density = 'compact' | 'comfy';
15
+ export type ComponentStatus = 'built' | 'changed' | 'building' | 'queued';
12
16
  export interface AggregationGroup {
13
17
  name: string;
14
18
  displayName: string;
15
19
  items: WorkspaceItem[];
20
+ scopeIcon?: string;
21
+ scopeIconColor?: string;
16
22
  }
17
23
  export interface AggregationResult {
18
24
  groups: AggregationGroup[];
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["workspace-overview.types.ts"],"sourcesContent":["import type { ComponentModel } from '@teambit/component';\nimport type { ComponentDescriptor } from '@teambit/component-descriptor';\nimport type { ScopeID } from '@teambit/scopes.scope-id';\n\nexport interface WorkspaceItem {\n component: ComponentModel;\n componentDescriptor: ComponentDescriptor;\n scope?: { id: ScopeID };\n}\n\nexport type AggregationType = 'namespaces' | 'scopes' | 'none';\n\nexport interface AggregationGroup {\n name: string;\n displayName: string;\n items: WorkspaceItem[];\n}\n\nexport interface AggregationResult {\n groups: AggregationGroup[];\n groupType: AggregationType;\n availableAggregations: AggregationType[];\n filteredCount: number;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["workspace-overview.types.ts"],"sourcesContent":["import type { ComponentModel } from '@teambit/component';\nimport type { ComponentDescriptor } from '@teambit/component-descriptor';\nimport type { ScopeID } from '@teambit/scopes.scope-id';\n\nexport interface WorkspaceItem {\n component: ComponentModel;\n componentDescriptor: ComponentDescriptor;\n scope?: { id: ScopeID; icon?: string; backgroundIconColor?: string };\n}\n\nexport type AggregationType = 'namespaces' | 'scopes' | 'none';\n\nexport type Density = 'compact' | 'comfy';\n\nexport type ComponentStatus = 'built' | 'changed' | 'building' | 'queued';\n\nexport interface AggregationGroup {\n name: string;\n displayName: string;\n items: WorkspaceItem[];\n scopeIcon?: string;\n scopeIconColor?: string;\n}\n\nexport interface AggregationResult {\n groups: AggregationGroup[];\n groupType: AggregationType;\n availableAggregations: AggregationType[];\n filteredCount: number;\n}\n"],"mappings":"","ignoreList":[]}
@@ -218,20 +218,37 @@ function Workspace({
218
218
  }
219
219
  workspaceUI.setComponents(workspace.components);
220
220
  const inIframe = typeof window !== 'undefined' && window.parent && window.parent !== window;
221
+ const location = (0, _reactRouterDom().useLocation)();
222
+ const isOverview = location.pathname === '/' || location.pathname === '';
223
+ const showTopBar = !isMinimal || isMinimal && !isOverview;
221
224
  return /*#__PURE__*/_react().default.createElement(_workspaceProvider().WorkspaceProvider, {
222
225
  workspace: workspace
223
226
  }, !isMinimal && /*#__PURE__*/_react().default.createElement(NotificationsBinder, {
224
227
  reactionsRef: reactionsRef
225
228
  }), /*#__PURE__*/_react().default.createElement(_workspaceUi().PreserveWorkspaceMode, null, /*#__PURE__*/_react().default.createElement(_themeFromUrl().ThemeFromUrlSync, null), isMinimal && inIframe && /*#__PURE__*/_react().default.createElement(MinimalModeUrlBroadcasterAndListener, null), /*#__PURE__*/_react().default.createElement("div", {
226
229
  className: _workspaceModule().default.workspaceWrapper
227
- }, /*#__PURE__*/_react().default.createElement(_uiFoundationUi2().TopBar, {
230
+ }, showTopBar && /*#__PURE__*/_react().default.createElement(_uiFoundationUi2().TopBar, {
228
231
  className: (0, _classnames().default)(_workspaceModule().default.topbar, _workspaceModule().default[themeName], isMinimal && _workspaceModule().default.minimal),
229
232
  Corner: () => /*#__PURE__*/_react().default.createElement("div", {
230
233
  className: (0, _classnames().default)(isMinimal && _workspaceModule().default.cornerWithBreadcrumb)
231
- }, /*#__PURE__*/_react().default.createElement(_uiFoundationUi().Corner, {
232
- className: (0, _classnames().default)(isMinimal && _workspaceModule().default.minimalCorner || _workspaceModule().default.corner, _workspaceModule().default[themeName]),
233
- name: isMinimal ? '' : workspace.name,
234
- icon: isMinimal ? 'https://static.bit.dev/bit-icons/house.svg' : workspace.icon
234
+ }, isMinimal ? /*#__PURE__*/_react().default.createElement(_reactRouterDom().Link, {
235
+ to: "/",
236
+ className: _workspaceModule().default.backButton
237
+ }, /*#__PURE__*/_react().default.createElement("svg", {
238
+ width: "18",
239
+ height: "18",
240
+ viewBox: "0 0 18 18",
241
+ fill: "none"
242
+ }, /*#__PURE__*/_react().default.createElement("path", {
243
+ d: "M11.25 13.5L6.75 9L11.25 4.5",
244
+ stroke: "currentColor",
245
+ strokeWidth: "1.5",
246
+ strokeLinecap: "round",
247
+ strokeLinejoin: "round"
248
+ }))) : /*#__PURE__*/_react().default.createElement(_uiFoundationUi().Corner, {
249
+ className: (0, _classnames().default)(_workspaceModule().default.corner, _workspaceModule().default[themeName]),
250
+ name: workspace.name,
251
+ icon: workspace.icon
235
252
  }), isMinimal && /*#__PURE__*/_react().default.createElement(WorkspaceBreadcrumb, null))
236
253
  // @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
237
254
  ,