@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.
@@ -1,5 +1,5 @@
1
- import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1006/dist/workspace.composition.js';
2
- import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.workspace_workspace@1.0.1006/dist/workspace.docs.mdx';
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
+ }