@teambit/workspace 1.0.1006 → 1.0.1008
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{preview-1780598604039.js → preview-1780929047751.js} +2 -2
- package/dist/ui/workspace/workspace-overview/hope-ai-icon.d.ts +10 -0
- package/dist/ui/workspace/workspace-overview/hope-ai-icon.js +135 -0
- package/dist/ui/workspace/workspace-overview/hope-ai-icon.js.map +1 -0
- package/dist/ui/workspace/workspace-overview/workspace-blank-state.d.ts +10 -0
- package/dist/ui/workspace/workspace-overview/workspace-blank-state.js +179 -0
- package/dist/ui/workspace/workspace-overview/workspace-blank-state.js.map +1 -0
- package/dist/ui/workspace/workspace-overview/workspace-blank-state.module.scss +252 -0
- package/dist/ui/workspace/workspace-overview/workspace-overview.js +15 -16
- package/dist/ui/workspace/workspace-overview/workspace-overview.js.map +1 -1
- package/package.json +37 -36
- package/ui/workspace/workspace-overview/hope-ai-icon.tsx +125 -0
- package/ui/workspace/workspace-overview/workspace-blank-state.module.scss +252 -0
- package/ui/workspace/workspace-overview/workspace-blank-state.tsx +124 -0
- package/ui/workspace/workspace-overview/workspace-overview.tsx +6 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.
|
|
2
|
-
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.
|
|
1
|
+
import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1008/dist/workspace.composition.js';
|
|
2
|
+
import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1008/dist/workspace.docs.mdx';
|
|
3
3
|
|
|
4
4
|
export const compositions = [compositions_0];
|
|
5
5
|
export const overview = [overview_0];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type HopeAiIconProps = {
|
|
3
|
+
/** Whether the icon is in active/loading state. */
|
|
4
|
+
active?: boolean;
|
|
5
|
+
/** Icon size in pixels. */
|
|
6
|
+
size?: number;
|
|
7
|
+
/** Additional class name. */
|
|
8
|
+
className?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function HopeAiIcon({ active, size, className }: HopeAiIconProps): React.JSX.Element;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.HopeAiIcon = HopeAiIcon;
|
|
7
|
+
function _react() {
|
|
8
|
+
const data = _interopRequireWildcard(require("react"));
|
|
9
|
+
_react = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
|
+
/**
|
|
16
|
+
* Inlined copy of `@teambit/hope.design.hope-icon`'s `HopeAiIcon`.
|
|
17
|
+
* Inlined here because the original lives in a private scope; replace with the
|
|
18
|
+
* package import once it is publicly available.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
let counter = 0;
|
|
22
|
+
function useGradientIds() {
|
|
23
|
+
const ref = (0, _react().useRef)(null);
|
|
24
|
+
if (!ref.current) {
|
|
25
|
+
counter += 1;
|
|
26
|
+
ref.current = {
|
|
27
|
+
idle: `hopeAiIdle${counter}`,
|
|
28
|
+
active: `hopeAiActive${counter}`
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return ref.current;
|
|
32
|
+
}
|
|
33
|
+
function HopeAiIcon({
|
|
34
|
+
active = false,
|
|
35
|
+
size = 24,
|
|
36
|
+
className
|
|
37
|
+
}) {
|
|
38
|
+
const {
|
|
39
|
+
idle,
|
|
40
|
+
active: activeId
|
|
41
|
+
} = useGradientIds();
|
|
42
|
+
const s = active ? `url(#${activeId})` : `url(#${idle})`;
|
|
43
|
+
return /*#__PURE__*/_react().default.createElement("svg", {
|
|
44
|
+
viewBox: "-2 -2 28 28",
|
|
45
|
+
fill: "none",
|
|
46
|
+
width: size,
|
|
47
|
+
height: size,
|
|
48
|
+
className: className,
|
|
49
|
+
style: {
|
|
50
|
+
display: 'inline-flex',
|
|
51
|
+
flexShrink: 0
|
|
52
|
+
}
|
|
53
|
+
}, /*#__PURE__*/_react().default.createElement("defs", null, /*#__PURE__*/_react().default.createElement("linearGradient", {
|
|
54
|
+
id: idle,
|
|
55
|
+
x1: "0%",
|
|
56
|
+
y1: "0%",
|
|
57
|
+
x2: "100%",
|
|
58
|
+
y2: "100%"
|
|
59
|
+
}, /*#__PURE__*/_react().default.createElement("stop", {
|
|
60
|
+
offset: "0%",
|
|
61
|
+
stopColor: "#6B8FA8"
|
|
62
|
+
}, /*#__PURE__*/_react().default.createElement("animate", {
|
|
63
|
+
attributeName: "stop-color",
|
|
64
|
+
values: "#6B8FA8;#7B6DB8;#A06B8F;#6B8FA8",
|
|
65
|
+
dur: "8s",
|
|
66
|
+
repeatCount: "indefinite"
|
|
67
|
+
})), /*#__PURE__*/_react().default.createElement("stop", {
|
|
68
|
+
offset: "100%",
|
|
69
|
+
stopColor: "#A06B8F"
|
|
70
|
+
}, /*#__PURE__*/_react().default.createElement("animate", {
|
|
71
|
+
attributeName: "stop-color",
|
|
72
|
+
values: "#A06B8F;#6B8FA8;#7B6DB8;#A06B8F",
|
|
73
|
+
dur: "8s",
|
|
74
|
+
repeatCount: "indefinite"
|
|
75
|
+
}))), /*#__PURE__*/_react().default.createElement("linearGradient", {
|
|
76
|
+
id: activeId,
|
|
77
|
+
x1: "0%",
|
|
78
|
+
y1: "0%",
|
|
79
|
+
x2: "100%",
|
|
80
|
+
y2: "100%"
|
|
81
|
+
}, /*#__PURE__*/_react().default.createElement("stop", {
|
|
82
|
+
offset: "0%",
|
|
83
|
+
stopColor: "#7EC8E3"
|
|
84
|
+
}, /*#__PURE__*/_react().default.createElement("animate", {
|
|
85
|
+
attributeName: "stop-color",
|
|
86
|
+
values: "#7EC8E3;#9B72F2;#F06B8A;#7EC8E3",
|
|
87
|
+
dur: "3s",
|
|
88
|
+
repeatCount: "indefinite"
|
|
89
|
+
})), /*#__PURE__*/_react().default.createElement("stop", {
|
|
90
|
+
offset: "100%",
|
|
91
|
+
stopColor: "#F06B8A"
|
|
92
|
+
}, /*#__PURE__*/_react().default.createElement("animate", {
|
|
93
|
+
attributeName: "stop-color",
|
|
94
|
+
values: "#F06B8A;#7EC8E3;#9B72F2;#F06B8A",
|
|
95
|
+
dur: "3s",
|
|
96
|
+
repeatCount: "indefinite"
|
|
97
|
+
})))), /*#__PURE__*/_react().default.createElement("path", {
|
|
98
|
+
d: "M12 2.5L13.8 10.2L21.5 12L13.8 13.8L12 21.5L10.2 13.8L2.5 12L10.2 10.2L12 2.5Z",
|
|
99
|
+
stroke: s,
|
|
100
|
+
strokeWidth: "1.5",
|
|
101
|
+
strokeLinejoin: "round",
|
|
102
|
+
fill: "none"
|
|
103
|
+
}, active && /*#__PURE__*/_react().default.createElement("animateTransform", {
|
|
104
|
+
attributeName: "transform",
|
|
105
|
+
type: "rotate",
|
|
106
|
+
values: "0 12 12;12 12 12;-12 12 12;0 12 12",
|
|
107
|
+
dur: "1s",
|
|
108
|
+
repeatCount: "indefinite"
|
|
109
|
+
})), /*#__PURE__*/_react().default.createElement("path", {
|
|
110
|
+
d: "M21 3L21.6 4.8L23.4 5.4L21.6 6L21 7.8L20.4 6L18.6 5.4L20.4 4.8L21 3Z",
|
|
111
|
+
stroke: s,
|
|
112
|
+
strokeWidth: "0.8",
|
|
113
|
+
strokeLinejoin: "round",
|
|
114
|
+
fill: "none"
|
|
115
|
+
}, active && /*#__PURE__*/_react().default.createElement("animate", {
|
|
116
|
+
attributeName: "opacity",
|
|
117
|
+
values: "1;0.2;1",
|
|
118
|
+
dur: "0.9s",
|
|
119
|
+
repeatCount: "indefinite"
|
|
120
|
+
})), /*#__PURE__*/_react().default.createElement("path", {
|
|
121
|
+
d: "M3.5 17.5L4 19L5.5 19.5L4 20L3.5 21.5L3 20L1.5 19.5L3 19L3.5 17.5Z",
|
|
122
|
+
stroke: s,
|
|
123
|
+
strokeWidth: "0.8",
|
|
124
|
+
strokeLinejoin: "round",
|
|
125
|
+
fill: "none"
|
|
126
|
+
}, active && /*#__PURE__*/_react().default.createElement("animate", {
|
|
127
|
+
attributeName: "opacity",
|
|
128
|
+
values: "1;0.15;1",
|
|
129
|
+
dur: "0.9s",
|
|
130
|
+
begin: "0.3s",
|
|
131
|
+
repeatCount: "indefinite"
|
|
132
|
+
})));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
//# sourceMappingURL=hope-ai-icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","counter","useGradientIds","ref","useRef","current","idle","active","HopeAiIcon","size","className","activeId","s","createElement","viewBox","fill","width","height","style","display","flexShrink","id","x1","y1","x2","y2","offset","stopColor","attributeName","values","dur","repeatCount","d","stroke","strokeWidth","strokeLinejoin","type","begin"],"sources":["hope-ai-icon.tsx"],"sourcesContent":["import React, { useRef } from 'react';\n\n/**\n * Inlined copy of `@teambit/hope.design.hope-icon`'s `HopeAiIcon`.\n * Inlined here because the original lives in a private scope; replace with the\n * package import once it is publicly available.\n */\n\nlet counter = 0;\n\nfunction useGradientIds() {\n const ref = useRef<{ idle: string; active: string } | null>(null);\n if (!ref.current) {\n counter += 1;\n ref.current = {\n idle: `hopeAiIdle${counter}`,\n active: `hopeAiActive${counter}`,\n };\n }\n return ref.current;\n}\n\nexport type HopeAiIconProps = {\n /** Whether the icon is in active/loading state. */\n active?: boolean;\n /** Icon size in pixels. */\n size?: number;\n /** Additional class name. */\n className?: string;\n};\n\nexport function HopeAiIcon({ active = false, size = 24, className }: HopeAiIconProps) {\n const { idle, active: activeId } = useGradientIds();\n const s = active ? `url(#${activeId})` : `url(#${idle})`;\n\n return (\n <svg\n viewBox=\"-2 -2 28 28\"\n fill=\"none\"\n width={size}\n height={size}\n className={className}\n style={{ display: 'inline-flex', flexShrink: 0 }}\n >\n <defs>\n <linearGradient id={idle} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor=\"#6B8FA8\">\n <animate\n attributeName=\"stop-color\"\n values=\"#6B8FA8;#7B6DB8;#A06B8F;#6B8FA8\"\n dur=\"8s\"\n repeatCount=\"indefinite\"\n />\n </stop>\n <stop offset=\"100%\" stopColor=\"#A06B8F\">\n <animate\n attributeName=\"stop-color\"\n values=\"#A06B8F;#6B8FA8;#7B6DB8;#A06B8F\"\n dur=\"8s\"\n repeatCount=\"indefinite\"\n />\n </stop>\n </linearGradient>\n <linearGradient id={activeId} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor=\"#7EC8E3\">\n <animate\n attributeName=\"stop-color\"\n values=\"#7EC8E3;#9B72F2;#F06B8A;#7EC8E3\"\n dur=\"3s\"\n repeatCount=\"indefinite\"\n />\n </stop>\n <stop offset=\"100%\" stopColor=\"#F06B8A\">\n <animate\n attributeName=\"stop-color\"\n values=\"#F06B8A;#7EC8E3;#9B72F2;#F06B8A\"\n dur=\"3s\"\n repeatCount=\"indefinite\"\n />\n </stop>\n </linearGradient>\n </defs>\n {/* main star */}\n <path\n d=\"M12 2.5L13.8 10.2L21.5 12L13.8 13.8L12 21.5L10.2 13.8L2.5 12L10.2 10.2L12 2.5Z\"\n stroke={s}\n strokeWidth=\"1.5\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n >\n {active && (\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n values=\"0 12 12;12 12 12;-12 12 12;0 12 12\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n />\n )}\n </path>\n {/* top-right mini sparkle */}\n <path\n d=\"M21 3L21.6 4.8L23.4 5.4L21.6 6L21 7.8L20.4 6L18.6 5.4L20.4 4.8L21 3Z\"\n stroke={s}\n strokeWidth=\"0.8\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n >\n {active && <animate attributeName=\"opacity\" values=\"1;0.2;1\" dur=\"0.9s\" repeatCount=\"indefinite\" />}\n </path>\n {/* bottom-left mini sparkle */}\n <path\n d=\"M3.5 17.5L4 19L5.5 19.5L4 20L3.5 21.5L3 20L1.5 19.5L3 19L3.5 17.5Z\"\n stroke={s}\n strokeWidth=\"0.8\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n >\n {active && (\n <animate attributeName=\"opacity\" values=\"1;0.15;1\" dur=\"0.9s\" begin=\"0.3s\" repeatCount=\"indefinite\" />\n )}\n </path>\n </svg>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Empty workspace state, shown when the workspace has no components.
|
|
4
|
+
* Replaces the legacy `@teambit/workspace.ui.empty-workspace` for the Hope flow.
|
|
5
|
+
*
|
|
6
|
+
* The default state guides the user through the Bit CLI in their terminal. In
|
|
7
|
+
* minimal mode (the embedded Hope experience) we additionally surface the
|
|
8
|
+
* "prompt Hope in the chat" CTA.
|
|
9
|
+
*/
|
|
10
|
+
export declare function WorkspaceBlankState(): React.JSX.Element;
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.WorkspaceBlankState = WorkspaceBlankState;
|
|
7
|
+
function _react() {
|
|
8
|
+
const data = _interopRequireWildcard(require("react"));
|
|
9
|
+
_react = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _evangelistElements() {
|
|
15
|
+
const data = require("@teambit/evangelist.elements.icon");
|
|
16
|
+
_evangelistElements = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _workspaceUi() {
|
|
22
|
+
const data = require("@teambit/workspace.ui.use-workspace-mode");
|
|
23
|
+
_workspaceUi = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _hopeAiIcon() {
|
|
29
|
+
const data = require("./hope-ai-icon");
|
|
30
|
+
_hopeAiIcon = function () {
|
|
31
|
+
return data;
|
|
32
|
+
};
|
|
33
|
+
return data;
|
|
34
|
+
}
|
|
35
|
+
function _workspaceBlankStateModule() {
|
|
36
|
+
const data = _interopRequireDefault(require("./workspace-blank-state.module.scss"));
|
|
37
|
+
_workspaceBlankStateModule = function () {
|
|
38
|
+
return data;
|
|
39
|
+
};
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
43
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
44
|
+
const DISCORD_URL = 'https://discord.bit.cloud/';
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Empty workspace state, shown when the workspace has no components.
|
|
48
|
+
* Replaces the legacy `@teambit/workspace.ui.empty-workspace` for the Hope flow.
|
|
49
|
+
*
|
|
50
|
+
* The default state guides the user through the Bit CLI in their terminal. In
|
|
51
|
+
* minimal mode (the embedded Hope experience) we additionally surface the
|
|
52
|
+
* "prompt Hope in the chat" CTA.
|
|
53
|
+
*/
|
|
54
|
+
function WorkspaceBlankState() {
|
|
55
|
+
const {
|
|
56
|
+
isMinimal
|
|
57
|
+
} = (0, _workspaceUi().useWorkspaceMode)();
|
|
58
|
+
return /*#__PURE__*/_react().default.createElement("div", {
|
|
59
|
+
className: _workspaceBlankStateModule().default.container
|
|
60
|
+
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
61
|
+
className: _workspaceBlankStateModule().default.vignette,
|
|
62
|
+
"aria-hidden": true
|
|
63
|
+
}), /*#__PURE__*/_react().default.createElement("div", {
|
|
64
|
+
className: _workspaceBlankStateModule().default.body
|
|
65
|
+
}, /*#__PURE__*/_react().default.createElement("h1", {
|
|
66
|
+
className: _workspaceBlankStateModule().default.headline
|
|
67
|
+
}, "Your workspace is ", /*#__PURE__*/_react().default.createElement("em", null, "ready"), " for its first component."), /*#__PURE__*/_react().default.createElement("p", {
|
|
68
|
+
className: _workspaceBlankStateModule().default.sub
|
|
69
|
+
}, "Components will appear here as they're built."), isMinimal && /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, /*#__PURE__*/_react().default.createElement("div", {
|
|
70
|
+
className: _workspaceBlankStateModule().default.hopeCallout
|
|
71
|
+
}, /*#__PURE__*/_react().default.createElement(_hopeAiIcon().HopeAiIcon, {
|
|
72
|
+
size: 32,
|
|
73
|
+
className: _workspaceBlankStateModule().default.hopeIcon
|
|
74
|
+
}), /*#__PURE__*/_react().default.createElement("div", {
|
|
75
|
+
className: _workspaceBlankStateModule().default.hopeText
|
|
76
|
+
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
77
|
+
className: _workspaceBlankStateModule().default.hopeTitle
|
|
78
|
+
}, "Prompt Hope in the chat"), /*#__PURE__*/_react().default.createElement("div", {
|
|
79
|
+
className: _workspaceBlankStateModule().default.hopeHelp
|
|
80
|
+
}, "Describe what you want to build, from one prompt to a whole company."))), /*#__PURE__*/_react().default.createElement("div", {
|
|
81
|
+
className: _workspaceBlankStateModule().default.sep
|
|
82
|
+
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
83
|
+
className: _workspaceBlankStateModule().default.sepLine
|
|
84
|
+
}), /*#__PURE__*/_react().default.createElement("span", {
|
|
85
|
+
className: _workspaceBlankStateModule().default.sepLabel
|
|
86
|
+
}, "or do it yourself"), /*#__PURE__*/_react().default.createElement("div", {
|
|
87
|
+
className: _workspaceBlankStateModule().default.sepLine
|
|
88
|
+
}))), /*#__PURE__*/_react().default.createElement("div", {
|
|
89
|
+
className: _workspaceBlankStateModule().default.diyGrid
|
|
90
|
+
}, /*#__PURE__*/_react().default.createElement(DiyRow, {
|
|
91
|
+
title: "Create",
|
|
92
|
+
body: "Scaffold a new component.",
|
|
93
|
+
cmd: "bit create react button"
|
|
94
|
+
}), /*#__PURE__*/_react().default.createElement(DiyRow, {
|
|
95
|
+
title: "Import",
|
|
96
|
+
body: "Bring one from another scope.",
|
|
97
|
+
cmd: "bit import org.scope/comp"
|
|
98
|
+
})), /*#__PURE__*/_react().default.createElement("div", {
|
|
99
|
+
className: _workspaceBlankStateModule().default.docsLinks
|
|
100
|
+
}, /*#__PURE__*/_react().default.createElement("a", {
|
|
101
|
+
href: "https://bit.dev/docs",
|
|
102
|
+
className: _workspaceBlankStateModule().default.link,
|
|
103
|
+
target: "_blank",
|
|
104
|
+
rel: "noopener noreferrer"
|
|
105
|
+
}, "CLI docs \u2197"), /*#__PURE__*/_react().default.createElement("a", {
|
|
106
|
+
href: "https://bit.cloud/docs",
|
|
107
|
+
className: _workspaceBlankStateModule().default.link,
|
|
108
|
+
target: "_blank",
|
|
109
|
+
rel: "noopener noreferrer"
|
|
110
|
+
}, "Cloud docs \u2197"))), /*#__PURE__*/_react().default.createElement("div", {
|
|
111
|
+
className: _workspaceBlankStateModule().default.bottom
|
|
112
|
+
}, /*#__PURE__*/_react().default.createElement(IconLink, {
|
|
113
|
+
href: "https://github.com/teambit/bit",
|
|
114
|
+
src: "https://static.bit.dev/harmony/github.svg",
|
|
115
|
+
label: "Bit on GitHub"
|
|
116
|
+
}), /*#__PURE__*/_react().default.createElement("a", {
|
|
117
|
+
href: DISCORD_URL,
|
|
118
|
+
className: _workspaceBlankStateModule().default.iconLink,
|
|
119
|
+
target: "_blank",
|
|
120
|
+
rel: "noopener noreferrer",
|
|
121
|
+
"aria-label": "Bit community on Discord"
|
|
122
|
+
}, /*#__PURE__*/_react().default.createElement(_evangelistElements().Icon, {
|
|
123
|
+
of: "discord",
|
|
124
|
+
className: _workspaceBlankStateModule().default.discordIcon
|
|
125
|
+
}))));
|
|
126
|
+
}
|
|
127
|
+
function IconLink({
|
|
128
|
+
href,
|
|
129
|
+
src,
|
|
130
|
+
label
|
|
131
|
+
}) {
|
|
132
|
+
return /*#__PURE__*/_react().default.createElement("a", {
|
|
133
|
+
href: href,
|
|
134
|
+
className: _workspaceBlankStateModule().default.iconLink,
|
|
135
|
+
target: "_blank",
|
|
136
|
+
rel: "noopener noreferrer",
|
|
137
|
+
"aria-label": label
|
|
138
|
+
}, /*#__PURE__*/_react().default.createElement("img", {
|
|
139
|
+
src: src,
|
|
140
|
+
alt: label,
|
|
141
|
+
className: _workspaceBlankStateModule().default.logo
|
|
142
|
+
}));
|
|
143
|
+
}
|
|
144
|
+
function DiyRow({
|
|
145
|
+
title,
|
|
146
|
+
body,
|
|
147
|
+
cmd
|
|
148
|
+
}) {
|
|
149
|
+
const [copied, setCopied] = (0, _react().useState)(false);
|
|
150
|
+
const onCopy = e => {
|
|
151
|
+
e.stopPropagation();
|
|
152
|
+
if (typeof navigator !== 'undefined' && navigator.clipboard) {
|
|
153
|
+
navigator.clipboard.writeText(cmd).catch(() => undefined);
|
|
154
|
+
}
|
|
155
|
+
setCopied(true);
|
|
156
|
+
setTimeout(() => setCopied(false), 1400);
|
|
157
|
+
};
|
|
158
|
+
return /*#__PURE__*/_react().default.createElement("div", {
|
|
159
|
+
className: _workspaceBlankStateModule().default.diyRow
|
|
160
|
+
}, /*#__PURE__*/_react().default.createElement("div", null, /*#__PURE__*/_react().default.createElement("div", {
|
|
161
|
+
className: _workspaceBlankStateModule().default.diyTitle
|
|
162
|
+
}, title), /*#__PURE__*/_react().default.createElement("div", {
|
|
163
|
+
className: _workspaceBlankStateModule().default.diyBody
|
|
164
|
+
}, body)), /*#__PURE__*/_react().default.createElement("div", {
|
|
165
|
+
className: _workspaceBlankStateModule().default.diyCmdRow
|
|
166
|
+
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
167
|
+
className: _workspaceBlankStateModule().default.diyCmd
|
|
168
|
+
}, /*#__PURE__*/_react().default.createElement("span", {
|
|
169
|
+
className: _workspaceBlankStateModule().default.diyPrompt
|
|
170
|
+
}, "$"), /*#__PURE__*/_react().default.createElement("span", {
|
|
171
|
+
className: _workspaceBlankStateModule().default.diyCmdText
|
|
172
|
+
}, cmd)), /*#__PURE__*/_react().default.createElement("button", {
|
|
173
|
+
type: "button",
|
|
174
|
+
onClick: onCopy,
|
|
175
|
+
className: _workspaceBlankStateModule().default.diyCopy
|
|
176
|
+
}, copied ? 'Copied' : 'Copy')));
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
//# sourceMappingURL=workspace-blank-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireWildcard","require","_evangelistElements","_workspaceUi","_hopeAiIcon","_workspaceBlankStateModule","_interopRequireDefault","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DISCORD_URL","WorkspaceBlankState","isMinimal","useWorkspaceMode","createElement","className","styles","container","vignette","body","headline","sub","Fragment","hopeCallout","HopeAiIcon","size","hopeIcon","hopeText","hopeTitle","hopeHelp","sep","sepLine","sepLabel","diyGrid","DiyRow","title","cmd","docsLinks","href","link","target","rel","bottom","IconLink","src","label","iconLink","Icon","of","discordIcon","alt","logo","copied","setCopied","useState","onCopy","stopPropagation","navigator","clipboard","writeText","catch","undefined","setTimeout","diyRow","diyTitle","diyBody","diyCmdRow","diyCmd","diyPrompt","diyCmdText","type","onClick","diyCopy"],"sources":["workspace-blank-state.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Icon } from '@teambit/evangelist.elements.icon';\nimport { useWorkspaceMode } from '@teambit/workspace.ui.use-workspace-mode';\nimport { HopeAiIcon } from './hope-ai-icon';\nimport styles from './workspace-blank-state.module.scss';\n\nconst DISCORD_URL = 'https://discord.bit.cloud/';\n\n/**\n * Empty workspace state, shown when the workspace has no components.\n * Replaces the legacy `@teambit/workspace.ui.empty-workspace` for the Hope flow.\n *\n * The default state guides the user through the Bit CLI in their terminal. In\n * minimal mode (the embedded Hope experience) we additionally surface the\n * \"prompt Hope in the chat\" CTA.\n */\nexport function WorkspaceBlankState() {\n const { isMinimal } = useWorkspaceMode();\n\n return (\n <div className={styles.container}>\n <div className={styles.vignette} aria-hidden />\n\n <div className={styles.body}>\n <h1 className={styles.headline}>\n Your workspace is <em>ready</em> for its first component.\n </h1>\n\n <p className={styles.sub}>Components will appear here as they're built.</p>\n\n {/* Primary — prompt Hope in the chat (minimal mode only) */}\n {isMinimal && (\n <>\n <div className={styles.hopeCallout}>\n <HopeAiIcon size={32} className={styles.hopeIcon} />\n <div className={styles.hopeText}>\n <div className={styles.hopeTitle}>Prompt Hope in the chat</div>\n <div className={styles.hopeHelp}>\n Describe what you want to build, from one prompt to a whole company.\n </div>\n </div>\n </div>\n\n {/* OR separator */}\n <div className={styles.sep}>\n <div className={styles.sepLine} />\n <span className={styles.sepLabel}>or do it yourself</span>\n <div className={styles.sepLine} />\n </div>\n </>\n )}\n\n {/* DIY CLI options */}\n <div className={styles.diyGrid}>\n <DiyRow title=\"Create\" body=\"Scaffold a new component.\" cmd=\"bit create react button\" />\n <DiyRow title=\"Import\" body=\"Bring one from another scope.\" cmd=\"bit import org.scope/comp\" />\n </div>\n\n <div className={styles.docsLinks}>\n <a href=\"https://bit.dev/docs\" className={styles.link} target=\"_blank\" rel=\"noopener noreferrer\">\n CLI docs ↗\n </a>\n <a href=\"https://bit.cloud/docs\" className={styles.link} target=\"_blank\" rel=\"noopener noreferrer\">\n Cloud docs ↗\n </a>\n </div>\n </div>\n\n <div className={styles.bottom}>\n <IconLink\n href=\"https://github.com/teambit/bit\"\n src=\"https://static.bit.dev/harmony/github.svg\"\n label=\"Bit on GitHub\"\n />\n <a\n href={DISCORD_URL}\n className={styles.iconLink}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"Bit community on Discord\"\n >\n <Icon of=\"discord\" className={styles.discordIcon} />\n </a>\n </div>\n </div>\n );\n}\n\nfunction IconLink({ href, src, label }: { href: string; src: string; label: string }) {\n return (\n <a href={href} className={styles.iconLink} target=\"_blank\" rel=\"noopener noreferrer\" aria-label={label}>\n <img src={src} alt={label} className={styles.logo} />\n </a>\n );\n}\n\nfunction DiyRow({ title, body, cmd }: { title: string; body: string; cmd: string }) {\n const [copied, setCopied] = useState(false);\n const onCopy = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (typeof navigator !== 'undefined' && navigator.clipboard) {\n navigator.clipboard.writeText(cmd).catch(() => undefined);\n }\n setCopied(true);\n setTimeout(() => setCopied(false), 1400);\n };\n return (\n <div className={styles.diyRow}>\n <div>\n <div className={styles.diyTitle}>{title}</div>\n <div className={styles.diyBody}>{body}</div>\n </div>\n <div className={styles.diyCmdRow}>\n <div className={styles.diyCmd}>\n <span className={styles.diyPrompt}>$</span>\n <span className={styles.diyCmdText}>{cmd}</span>\n </div>\n <button type=\"button\" onClick={onCopy} className={styles.diyCopy}>\n {copied ? 'Copied' : 'Copy'}\n </button>\n </div>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
.container {
|
|
2
|
+
width: 100%;
|
|
3
|
+
height: 100%;
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
background: var(--background-color);
|
|
7
|
+
overflow-y: auto;
|
|
8
|
+
position: relative;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.vignette {
|
|
12
|
+
position: absolute;
|
|
13
|
+
inset: 0;
|
|
14
|
+
pointer-events: none;
|
|
15
|
+
background: radial-gradient(ellipse at 50% 22%, var(--surface01-color, #f7f7f7) 0%, var(--background-color) 60%);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* Centered in the space above the footer via auto margins. */
|
|
19
|
+
.body {
|
|
20
|
+
position: relative;
|
|
21
|
+
z-index: 1;
|
|
22
|
+
box-sizing: border-box;
|
|
23
|
+
width: 100%;
|
|
24
|
+
max-width: 720px;
|
|
25
|
+
margin: auto;
|
|
26
|
+
padding: 48px 32px;
|
|
27
|
+
text-align: center;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.headline {
|
|
31
|
+
font-family: 'Instrument Serif', Georgia, serif;
|
|
32
|
+
margin: 0;
|
|
33
|
+
font-size: 44px;
|
|
34
|
+
line-height: 1.1;
|
|
35
|
+
font-weight: 400;
|
|
36
|
+
color: var(--on-background-high-color);
|
|
37
|
+
letter-spacing: -0.02em;
|
|
38
|
+
text-wrap: balance;
|
|
39
|
+
|
|
40
|
+
em {
|
|
41
|
+
color: var(--bit-accent-color, #6c5ce7);
|
|
42
|
+
font-style: italic;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.sub {
|
|
47
|
+
margin: 16px auto 40px;
|
|
48
|
+
max-width: 460px;
|
|
49
|
+
font-size: 14px;
|
|
50
|
+
line-height: 1.55;
|
|
51
|
+
color: var(--on-background-medium-color);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* ---- Primary CTA — Hope callout ---- */
|
|
55
|
+
|
|
56
|
+
.hopeCallout {
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
gap: 16px;
|
|
60
|
+
padding: 20px 24px;
|
|
61
|
+
background: var(--primary-surface-color, #f6f5fe);
|
|
62
|
+
border: 1.5px solid var(--border-primary-color, #6c5ce7);
|
|
63
|
+
border-radius: 14px;
|
|
64
|
+
box-shadow:
|
|
65
|
+
0 1px 2px rgba(93, 72, 255, 0.06),
|
|
66
|
+
0 18px 40px -18px rgba(93, 72, 255, 0.4);
|
|
67
|
+
text-align: left;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.hopeIcon {
|
|
71
|
+
flex-shrink: 0;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.hopeText {
|
|
75
|
+
flex: 1;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.hopeTitle {
|
|
79
|
+
font-size: 16px;
|
|
80
|
+
font-weight: 600;
|
|
81
|
+
color: var(--on-background-high-color);
|
|
82
|
+
letter-spacing: -0.01em;
|
|
83
|
+
margin-bottom: 3px;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.hopeHelp {
|
|
87
|
+
font-size: 13px;
|
|
88
|
+
color: var(--on-background-medium-color);
|
|
89
|
+
line-height: 1.5;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* ---- Separator ---- */
|
|
93
|
+
|
|
94
|
+
.sep {
|
|
95
|
+
display: flex;
|
|
96
|
+
align-items: center;
|
|
97
|
+
gap: 14px;
|
|
98
|
+
margin: 32px auto 20px;
|
|
99
|
+
max-width: 340px;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.sepLine {
|
|
103
|
+
flex: 1;
|
|
104
|
+
height: 1px;
|
|
105
|
+
background: var(--border-medium-color);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.sepLabel {
|
|
109
|
+
font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace;
|
|
110
|
+
font-size: 11px;
|
|
111
|
+
color: var(--on-background-low-color);
|
|
112
|
+
letter-spacing: 0.14em;
|
|
113
|
+
text-transform: uppercase;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* ---- DIY rows ---- */
|
|
117
|
+
|
|
118
|
+
.diyGrid {
|
|
119
|
+
display: grid;
|
|
120
|
+
grid-template-columns: 1fr 1fr;
|
|
121
|
+
gap: 16px;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.diyRow {
|
|
125
|
+
display: flex;
|
|
126
|
+
flex-direction: column;
|
|
127
|
+
gap: 14px;
|
|
128
|
+
padding: 16px 18px;
|
|
129
|
+
background: var(--surface-color);
|
|
130
|
+
border: 1px solid var(--border-medium-color);
|
|
131
|
+
border-radius: 12px;
|
|
132
|
+
text-align: left;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.diyTitle {
|
|
136
|
+
font-size: 14px;
|
|
137
|
+
font-weight: 600;
|
|
138
|
+
color: var(--on-background-high-color);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.diyBody {
|
|
142
|
+
font-size: 13px;
|
|
143
|
+
color: var(--on-background-medium-color);
|
|
144
|
+
line-height: 1.45;
|
|
145
|
+
margin-top: 2px;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.diyCmdRow {
|
|
149
|
+
display: flex;
|
|
150
|
+
align-items: center;
|
|
151
|
+
gap: 8px;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.diyCmd {
|
|
155
|
+
flex: 1;
|
|
156
|
+
display: flex;
|
|
157
|
+
align-items: center;
|
|
158
|
+
gap: 8px;
|
|
159
|
+
padding: 8px 10px;
|
|
160
|
+
background: var(--surface01-color, #f7f7f7);
|
|
161
|
+
border: 1px solid var(--border-medium-color);
|
|
162
|
+
border-radius: 8px;
|
|
163
|
+
font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace;
|
|
164
|
+
font-size: 13px;
|
|
165
|
+
color: var(--on-background-color);
|
|
166
|
+
min-width: 0;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.diyPrompt {
|
|
170
|
+
color: var(--on-background-low-color);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.diyCmdText {
|
|
174
|
+
flex: 1;
|
|
175
|
+
overflow: hidden;
|
|
176
|
+
text-overflow: ellipsis;
|
|
177
|
+
white-space: nowrap;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.diyCopy {
|
|
181
|
+
height: 30px;
|
|
182
|
+
padding: 0 12px;
|
|
183
|
+
background: transparent;
|
|
184
|
+
border: 1px solid var(--border-medium-color);
|
|
185
|
+
border-radius: 8px;
|
|
186
|
+
font-size: 12px;
|
|
187
|
+
font-weight: 500;
|
|
188
|
+
color: var(--on-background-medium-color);
|
|
189
|
+
cursor: pointer;
|
|
190
|
+
flex-shrink: 0;
|
|
191
|
+
transition: background 0.12s ease;
|
|
192
|
+
|
|
193
|
+
&:hover {
|
|
194
|
+
background: var(--surface01-color, #f7f7f7);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/* ---- Docs links ---- */
|
|
199
|
+
|
|
200
|
+
.docsLinks {
|
|
201
|
+
margin-top: 32px;
|
|
202
|
+
display: flex;
|
|
203
|
+
justify-content: center;
|
|
204
|
+
gap: 28px;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.link {
|
|
208
|
+
color: var(--bit-accent-color, #6c5ce7);
|
|
209
|
+
text-decoration: none;
|
|
210
|
+
font-weight: 500;
|
|
211
|
+
font-size: 13px;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/* ---- Footer ---- */
|
|
215
|
+
|
|
216
|
+
.bottom {
|
|
217
|
+
flex-shrink: 0;
|
|
218
|
+
position: relative;
|
|
219
|
+
z-index: 1;
|
|
220
|
+
padding: 20px 24px;
|
|
221
|
+
display: flex;
|
|
222
|
+
align-items: center;
|
|
223
|
+
justify-content: center;
|
|
224
|
+
gap: 8px;
|
|
225
|
+
border-top: 1px solid var(--border-medium-color);
|
|
226
|
+
background: var(--surface-color);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.iconLink {
|
|
230
|
+
display: inline-flex;
|
|
231
|
+
padding: 8px;
|
|
232
|
+
border-radius: 10px;
|
|
233
|
+
text-decoration: none;
|
|
234
|
+
transition: background 0.14s ease;
|
|
235
|
+
|
|
236
|
+
&:hover {
|
|
237
|
+
background: var(--surface-hover-color, rgba(120, 120, 140, 0.12));
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.logo {
|
|
242
|
+
width: 28px;
|
|
243
|
+
height: 28px;
|
|
244
|
+
display: block;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.discordIcon {
|
|
248
|
+
display: block;
|
|
249
|
+
font-size: 28px;
|
|
250
|
+
line-height: 1;
|
|
251
|
+
color: var(--on-background-medium-color);
|
|
252
|
+
}
|