@teambit/lanes.ui.menus.use-lanes-menu 0.0.1

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.
@@ -0,0 +1 @@
1
+ export { UseLaneMenu } from './use-lanes-menu';
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UseLaneMenu = void 0;
4
+ var use_lanes_menu_1 = require("./use-lanes-menu");
5
+ Object.defineProperty(exports, "UseLaneMenu", { enumerable: true, get: function () { return use_lanes_menu_1.UseLaneMenu; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,mDAA+C;AAAtC,6GAAA,WAAW,OAAA"}
@@ -0,0 +1,32 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": [
4
+ "es2019",
5
+ "DOM",
6
+ "ES6",
7
+ "DOM.Iterable"
8
+ ],
9
+ "target": "es2015",
10
+ "module": "CommonJS",
11
+ "jsx": "react",
12
+ "allowJs": true,
13
+ "composite": true,
14
+ "declaration": true,
15
+ "sourceMap": true,
16
+ "skipLibCheck": true,
17
+ "experimentalDecorators": true,
18
+ "outDir": "dist",
19
+ "moduleResolution": "node",
20
+ "esModuleInterop": true,
21
+ "rootDir": ".",
22
+ "resolveJsonModule": true
23
+ },
24
+ "exclude": [
25
+ "dist",
26
+ "package.json"
27
+ ],
28
+ "include": [
29
+ "**/*",
30
+ "**/*.json"
31
+ ]
32
+ }
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { LanesHost } from '@teambit/lanes.ui.models.lanes-model';
3
+ import { LaneId } from '@teambit/lane-id';
4
+ export declare type LaneImportContentProps = {
5
+ currentLaneId: LaneId;
6
+ switchedOutToCurrentLane: boolean;
7
+ host: LanesHost;
8
+ } & React.HTMLAttributes<HTMLDivElement>;
9
+ export declare function UseLaneMenu({ host, viewedLaneId, currentLaneId, }: {
10
+ host: LanesHost;
11
+ viewedLaneId: LaneId;
12
+ currentLaneId?: LaneId;
13
+ }): JSX.Element;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.UseLaneMenu = void 0;
18
+ const react_1 = __importDefault(require("react"));
19
+ const evangelist_elements_icon_1 = require("@teambit/evangelist.elements.icon");
20
+ const documenter_ui_copy_box_1 = require("@teambit/documenter.ui.copy-box");
21
+ const ui_foundation_ui_use_box_tab_content_1 = require("@teambit/ui-foundation.ui.use-box.tab-content");
22
+ const design_ui_styles_ellipsis_1 = require("@teambit/design.ui.styles.ellipsis");
23
+ const ui_foundation_ui_use_box_bottom_link_1 = require("@teambit/ui-foundation.ui.use-box.bottom-link");
24
+ const ui_foundation_ui_use_box_dropdown_1 = require("@teambit/ui-foundation.ui.use-box.dropdown");
25
+ const base_react_navigation_link_1 = require("@teambit/base-react.navigation.link");
26
+ const use_lanes_menu_module_scss_1 = __importDefault(require("./use-lanes-menu.module.scss"));
27
+ function UseLaneMenu({ host, viewedLaneId, currentLaneId, }) {
28
+ const switchedOutToCurrentLane = !!(currentLaneId === null || currentLaneId === void 0 ? void 0 : currentLaneId.isEqual(currentLaneId));
29
+ const Menu = (react_1.default.createElement("div", { className: use_lanes_menu_module_scss_1.default.lanesMenu },
30
+ react_1.default.createElement("div", { className: use_lanes_menu_module_scss_1.default.top },
31
+ react_1.default.createElement("div", { className: use_lanes_menu_module_scss_1.default.title },
32
+ react_1.default.createElement(evangelist_elements_icon_1.Icon, { className: use_lanes_menu_module_scss_1.default.titleIcon, of: "terminal" }),
33
+ react_1.default.createElement(design_ui_styles_ellipsis_1.Ellipsis, { className: use_lanes_menu_module_scss_1.default.titleText }, `Bulk import from ${viewedLaneId.name}`))),
34
+ react_1.default.createElement(ui_foundation_ui_use_box_tab_content_1.ExpandableTabContent, { content: react_1.default.createElement(LaneImportContent, { host: host, currentLaneId: viewedLaneId, switchedOutToCurrentLane: switchedOutToCurrentLane }), drawerTitle: react_1.default.createElement("div", { className: use_lanes_menu_module_scss_1.default.drawerTitle }, "Learn more about Lanes"), drawerContent: react_1.default.createElement(LaneInfo, null) })));
35
+ return react_1.default.createElement(ui_foundation_ui_use_box_dropdown_1.UseBoxDropdown, { position: "bottom-end", className: use_lanes_menu_module_scss_1.default.useBox, Menu: Menu });
36
+ }
37
+ exports.UseLaneMenu = UseLaneMenu;
38
+ function LaneImportContent({ host, currentLaneId, switchedOutToCurrentLane }) {
39
+ const laneId = host === 'workspace' ? currentLaneId.name : currentLaneId.toString();
40
+ if (switchedOutToCurrentLane) {
41
+ return (react_1.default.createElement("div", { className: use_lanes_menu_module_scss_1.default.importContent },
42
+ react_1.default.createElement("div", { className: use_lanes_menu_module_scss_1.default.importContentLabel },
43
+ "Import all components from ",
44
+ laneId),
45
+ react_1.default.createElement(documenter_ui_copy_box_1.CopyBox, { className: use_lanes_menu_module_scss_1.default.importContentCmd }, `bit merge`)));
46
+ }
47
+ return (react_1.default.createElement("div", { className: use_lanes_menu_module_scss_1.default.importContent },
48
+ react_1.default.createElement("div", { className: use_lanes_menu_module_scss_1.default.importContentLabel },
49
+ "Switch and Import all components from ",
50
+ laneId),
51
+ react_1.default.createElement(documenter_ui_copy_box_1.CopyBox, { className: use_lanes_menu_module_scss_1.default.importContentCmd }, `bit lane import ${laneId}`)));
52
+ }
53
+ function LaneInfo(_a) {
54
+ var rest = __rest(_a, []);
55
+ return (react_1.default.createElement(ui_foundation_ui_use_box_tab_content_1.TabContent, Object.assign({}, rest, { className: use_lanes_menu_module_scss_1.default.moreInfo, bottom: react_1.default.createElement(base_react_navigation_link_1.Link, { external: true, href: 'https://bit.dev/docs/lanes/lanes-overview', className: ui_foundation_ui_use_box_bottom_link_1.linkStyles },
56
+ react_1.default.createElement(evangelist_elements_icon_1.Icon, { of: "information-sign" }),
57
+ react_1.default.createElement("span", null, "Getting Started with Lanes")) })));
58
+ }
59
+ //# sourceMappingURL=use-lanes-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-lanes-menu.js","sourceRoot":"","sources":["../use-lanes-menu.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gFAAyD;AACzD,4EAA0D;AAC1D,wGAAiG;AACjG,kFAA8D;AAC9D,wGAA2E;AAE3E,kGAA4E;AAC5E,oFAA2D;AAE3D,8FAAkD;AAQlD,SAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,YAAY,EACZ,aAAa,GAKd;IACC,MAAM,wBAAwB,GAAG,CAAC,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAC,aAAa,CAAC,CAAA,CAAC;IACzE,MAAM,IAAI,GAAG,CACX,uCAAK,SAAS,EAAE,oCAAM,CAAC,SAAS;QAC9B,uCAAK,SAAS,EAAE,oCAAM,CAAC,GAAG;YACxB,uCAAK,SAAS,EAAE,oCAAM,CAAC,KAAK;gBAC1B,8BAAC,+BAAI,IAAC,SAAS,EAAE,oCAAM,CAAC,SAAS,EAAE,EAAE,EAAC,UAAU,GAAG;gBACnD,8BAAC,oCAAQ,IAAC,SAAS,EAAE,oCAAM,CAAC,SAAS,IAAG,oBAAoB,YAAY,CAAC,IAAI,EAAE,CAAY,CACvF,CACF;QACN,8BAAC,2DAAoB,IACnB,OAAO,EACL,8BAAC,iBAAiB,IAChB,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,YAAY,EAC3B,wBAAwB,EAAE,wBAAwB,GAClD,EAEJ,WAAW,EAAE,uCAAK,SAAS,EAAE,oCAAM,CAAC,WAAW,6BAA8B,EAC7E,aAAa,EAAE,8BAAC,QAAQ,OAAG,GAC3B,CACE,CACP,CAAC;IAEF,OAAO,8BAAC,kDAAc,IAAC,QAAQ,EAAC,YAAY,EAAC,SAAS,EAAE,oCAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,GAAI,CAAC;AACxF,CAAC;AAjCD,kCAiCC;AAED,SAAS,iBAAiB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB,EAA0B;IAClG,MAAM,MAAM,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IACpF,IAAI,wBAAwB,EAAE;QAC5B,OAAO,CACL,uCAAK,SAAS,EAAE,oCAAM,CAAC,aAAa;YAClC,uCAAK,SAAS,EAAE,oCAAM,CAAC,kBAAkB;;gBAA8B,MAAM,CAAO;YACpF,8BAAC,gCAAO,IAAC,SAAS,EAAE,oCAAM,CAAC,gBAAgB,IAAG,WAAW,CAAW,CAChE,CACP,CAAC;KACH;IACD,OAAO,CACL,uCAAK,SAAS,EAAE,oCAAM,CAAC,aAAa;QAClC,uCAAK,SAAS,EAAE,oCAAM,CAAC,kBAAkB;;YAAyC,MAAM,CAAO;QAC/F,8BAAC,gCAAO,IAAC,SAAS,EAAE,oCAAM,CAAC,gBAAgB,IAAG,mBAAmB,MAAM,EAAE,CAAW,CAChF,CACP,CAAC;AACJ,CAAC;AAID,SAAS,QAAQ,CAAC,EAA0B;QAArB,IAAI,cAAT,EAAW,CAAF;IACzB,OAAO,CACL,8BAAC,iDAAU,oBACL,IAAI,IACR,SAAS,EAAE,oCAAM,CAAC,QAAQ,EAC1B,MAAM,EACJ,8BAAC,iCAAI,IAAC,QAAQ,QAAC,IAAI,EAAE,2CAA2C,EAAE,SAAS,EAAE,iDAAU;YACrF,8BAAC,+BAAI,IAAC,EAAE,EAAC,kBAAkB,GAAG;YAC9B,yEAAuC,CAClC,IAEG,CACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,38 @@
1
+ .top {
2
+ padding: 16px 24px;
3
+ color: var(--bit-text-color, #414141);
4
+ }
5
+
6
+ .title {
7
+ display: flex;
8
+ align-items: center;
9
+ font-size: var(--bit-p-xs, 14px);
10
+ font-weight: bold;
11
+ }
12
+
13
+ .titleIcon,
14
+ .titleText {
15
+ color: var(--bit-text-color-heavy, #2b2b2b);
16
+ font-weight: bold;
17
+ margin-right: 8px;
18
+ }
19
+
20
+ .importContentLabel,
21
+ .importContentCmd {
22
+ margin: 12px 0;
23
+ }
24
+
25
+ .drawerTitle {
26
+ display: flex;
27
+ align-items: center;
28
+ margin-right: 8px;
29
+ }
30
+
31
+ .useBox {
32
+ --bit-drawer-margin: 14px;
33
+ }
34
+
35
+ .lanesMenu {
36
+ background-color: var(--bit-bg-color, #ffffff);
37
+ border-bottom: 1px solid var(--bit-border-color-lightest, #ededed);
38
+ }
package/index.ts ADDED
@@ -0,0 +1 @@
1
+ export { UseLaneMenu } from './use-lanes-menu';
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@teambit/lanes.ui.menus.use-lanes-menu",
3
+ "version": "0.0.1",
4
+ "main": "dist/index.js",
5
+ "componentId": {
6
+ "scope": "teambit.lanes",
7
+ "name": "ui/menus/use-lanes-menu",
8
+ "version": "0.0.1"
9
+ },
10
+ "dependencies": {
11
+ "core-js": "^3.0.0",
12
+ "@teambit/base-react.navigation.link": "2.0.27",
13
+ "@teambit/documenter.ui.copy-box": "4.0.1",
14
+ "@teambit/evangelist.elements.icon": "1.0.2",
15
+ "@teambit/design.ui.styles.ellipsis": "0.0.353",
16
+ "@teambit/lane-id": "0.0.97",
17
+ "@teambit/lanes.ui.models.lanes-model": "0.0.1",
18
+ "@teambit/ui-foundation.ui.use-box.bottom-link": "0.0.110",
19
+ "@teambit/ui-foundation.ui.use-box.dropdown": "0.0.122",
20
+ "@teambit/ui-foundation.ui.use-box.tab-content": "0.0.111"
21
+ },
22
+ "devDependencies": {
23
+ "@types/react": "^17.0.8",
24
+ "@types/mocha": "9.1.0",
25
+ "@types/testing-library__jest-dom": "5.9.5",
26
+ "@babel/runtime": "7.12.18",
27
+ "@types/jest": "^26.0.0",
28
+ "@types/react-dom": "^17.0.5",
29
+ "@types/node": "12.20.4"
30
+ },
31
+ "peerDependencies": {
32
+ "react-dom": "^16.8.0 || ^17.0.0",
33
+ "react": "^16.8.0 || ^17.0.0"
34
+ },
35
+ "license": "Apache-2.0",
36
+ "private": false,
37
+ "engines": {
38
+ "node": ">=12.22.0"
39
+ },
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "https://github.com/teambit/bit"
43
+ },
44
+ "keywords": [
45
+ "bit",
46
+ "components",
47
+ "collaboration",
48
+ "web",
49
+ "react",
50
+ "react-components",
51
+ "angular",
52
+ "angular-components"
53
+ ]
54
+ }
@@ -0,0 +1,7 @@
1
+ ;
2
+ ;
3
+
4
+ export const compositions = [];
5
+ export const overview = [];
6
+
7
+ export const compositions_metadata = {"compositions":[]};
package/tsconfig.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": [
4
+ "es2019",
5
+ "DOM",
6
+ "ES6",
7
+ "DOM.Iterable"
8
+ ],
9
+ "target": "es2015",
10
+ "module": "CommonJS",
11
+ "jsx": "react",
12
+ "allowJs": true,
13
+ "composite": true,
14
+ "declaration": true,
15
+ "sourceMap": true,
16
+ "skipLibCheck": true,
17
+ "experimentalDecorators": true,
18
+ "outDir": "dist",
19
+ "moduleResolution": "node",
20
+ "esModuleInterop": true,
21
+ "rootDir": ".",
22
+ "resolveJsonModule": true
23
+ },
24
+ "exclude": [
25
+ "dist",
26
+ "package.json"
27
+ ],
28
+ "include": [
29
+ "**/*",
30
+ "**/*.json"
31
+ ]
32
+ }
@@ -0,0 +1,29 @@
1
+ declare module '*.png' {
2
+ const value: any;
3
+ export = value;
4
+ }
5
+ declare module '*.svg' {
6
+ import type { FunctionComponent, SVGProps } from 'react';
7
+
8
+ export const ReactComponent: FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>;
9
+ const src: string;
10
+ export default src;
11
+ }
12
+
13
+ // @TODO Gilad
14
+ declare module '*.jpg' {
15
+ const value: any;
16
+ export = value;
17
+ }
18
+ declare module '*.jpeg' {
19
+ const value: any;
20
+ export = value;
21
+ }
22
+ declare module '*.gif' {
23
+ const value: any;
24
+ export = value;
25
+ }
26
+ declare module '*.bmp' {
27
+ const value: any;
28
+ export = value;
29
+ }
@@ -0,0 +1,42 @@
1
+ declare module '*.module.css' {
2
+ const classes: { readonly [key: string]: string };
3
+ export default classes;
4
+ }
5
+ declare module '*.module.scss' {
6
+ const classes: { readonly [key: string]: string };
7
+ export default classes;
8
+ }
9
+ declare module '*.module.sass' {
10
+ const classes: { readonly [key: string]: string };
11
+ export default classes;
12
+ }
13
+
14
+ declare module '*.module.less' {
15
+ const classes: { readonly [key: string]: string };
16
+ export default classes;
17
+ }
18
+
19
+ declare module '*.less' {
20
+ const classes: { readonly [key: string]: string };
21
+ export default classes;
22
+ }
23
+
24
+ declare module '*.css' {
25
+ const classes: { readonly [key: string]: string };
26
+ export default classes;
27
+ }
28
+
29
+ declare module '*.sass' {
30
+ const classes: { readonly [key: string]: string };
31
+ export default classes;
32
+ }
33
+
34
+ declare module '*.scss' {
35
+ const classes: { readonly [key: string]: string };
36
+ export default classes;
37
+ }
38
+
39
+ declare module '*.mdx' {
40
+ const component: any;
41
+ export default component;
42
+ }
@@ -0,0 +1,38 @@
1
+ .top {
2
+ padding: 16px 24px;
3
+ color: var(--bit-text-color, #414141);
4
+ }
5
+
6
+ .title {
7
+ display: flex;
8
+ align-items: center;
9
+ font-size: var(--bit-p-xs, 14px);
10
+ font-weight: bold;
11
+ }
12
+
13
+ .titleIcon,
14
+ .titleText {
15
+ color: var(--bit-text-color-heavy, #2b2b2b);
16
+ font-weight: bold;
17
+ margin-right: 8px;
18
+ }
19
+
20
+ .importContentLabel,
21
+ .importContentCmd {
22
+ margin: 12px 0;
23
+ }
24
+
25
+ .drawerTitle {
26
+ display: flex;
27
+ align-items: center;
28
+ margin-right: 8px;
29
+ }
30
+
31
+ .useBox {
32
+ --bit-drawer-margin: 14px;
33
+ }
34
+
35
+ .lanesMenu {
36
+ background-color: var(--bit-bg-color, #ffffff);
37
+ border-bottom: 1px solid var(--bit-border-color-lightest, #ededed);
38
+ }
@@ -0,0 +1,87 @@
1
+ import React from 'react';
2
+ import { Icon } from '@teambit/evangelist.elements.icon';
3
+ import { CopyBox } from '@teambit/documenter.ui.copy-box';
4
+ import { ExpandableTabContent, TabContent } from '@teambit/ui-foundation.ui.use-box.tab-content';
5
+ import { Ellipsis } from '@teambit/design.ui.styles.ellipsis';
6
+ import { linkStyles } from '@teambit/ui-foundation.ui.use-box.bottom-link';
7
+ import { LanesHost } from '@teambit/lanes.ui.models.lanes-model';
8
+ import { UseBoxDropdown } from '@teambit/ui-foundation.ui.use-box.dropdown';
9
+ import { Link } from '@teambit/base-react.navigation.link';
10
+ import { LaneId } from '@teambit/lane-id';
11
+ import styles from './use-lanes-menu.module.scss';
12
+
13
+ export type LaneImportContentProps = {
14
+ currentLaneId: LaneId;
15
+ switchedOutToCurrentLane: boolean;
16
+ host: LanesHost;
17
+ } & React.HTMLAttributes<HTMLDivElement>;
18
+
19
+ export function UseLaneMenu({
20
+ host,
21
+ viewedLaneId,
22
+ currentLaneId,
23
+ }: {
24
+ host: LanesHost;
25
+ viewedLaneId: LaneId;
26
+ currentLaneId?: LaneId;
27
+ }) {
28
+ const switchedOutToCurrentLane = !!currentLaneId?.isEqual(currentLaneId);
29
+ const Menu = (
30
+ <div className={styles.lanesMenu}>
31
+ <div className={styles.top}>
32
+ <div className={styles.title}>
33
+ <Icon className={styles.titleIcon} of="terminal" />
34
+ <Ellipsis className={styles.titleText}>{`Bulk import from ${viewedLaneId.name}`}</Ellipsis>
35
+ </div>
36
+ </div>
37
+ <ExpandableTabContent
38
+ content={
39
+ <LaneImportContent
40
+ host={host}
41
+ currentLaneId={viewedLaneId}
42
+ switchedOutToCurrentLane={switchedOutToCurrentLane}
43
+ />
44
+ }
45
+ drawerTitle={<div className={styles.drawerTitle}>Learn more about Lanes</div>}
46
+ drawerContent={<LaneInfo />}
47
+ />
48
+ </div>
49
+ );
50
+
51
+ return <UseBoxDropdown position="bottom-end" className={styles.useBox} Menu={Menu} />;
52
+ }
53
+
54
+ function LaneImportContent({ host, currentLaneId, switchedOutToCurrentLane }: LaneImportContentProps) {
55
+ const laneId = host === 'workspace' ? currentLaneId.name : currentLaneId.toString();
56
+ if (switchedOutToCurrentLane) {
57
+ return (
58
+ <div className={styles.importContent}>
59
+ <div className={styles.importContentLabel}>Import all components from {laneId}</div>
60
+ <CopyBox className={styles.importContentCmd}>{`bit merge`}</CopyBox>
61
+ </div>
62
+ );
63
+ }
64
+ return (
65
+ <div className={styles.importContent}>
66
+ <div className={styles.importContentLabel}>Switch and Import all components from {laneId}</div>
67
+ <CopyBox className={styles.importContentCmd}>{`bit lane import ${laneId}`}</CopyBox>
68
+ </div>
69
+ );
70
+ }
71
+
72
+ type LaneInfoProps = {} & React.HTMLAttributes<HTMLDivElement>;
73
+
74
+ function LaneInfo({ ...rest }: LaneInfoProps) {
75
+ return (
76
+ <TabContent
77
+ {...rest}
78
+ className={styles.moreInfo}
79
+ bottom={
80
+ <Link external href={'https://bit.dev/docs/lanes/lanes-overview'} className={linkStyles}>
81
+ <Icon of="information-sign" />
82
+ <span>Getting Started with Lanes</span>
83
+ </Link>
84
+ }
85
+ ></TabContent>
86
+ );
87
+ }