@teambit/component.ui.version-dropdown 0.0.0-0aa660598a05d04f2b124cb0ae8b4a1c05b66d78

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 (52) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.js +9 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/lane-info/index.d.ts +2 -0
  5. package/dist/lane-info/index.js +6 -0
  6. package/dist/lane-info/index.js.map +1 -0
  7. package/dist/lane-info/lane-info.d.ts +6 -0
  8. package/dist/lane-info/lane-info.js +20 -0
  9. package/dist/lane-info/lane-info.js.map +1 -0
  10. package/dist/lane-info/lane-info.module.scss +27 -0
  11. package/dist/preview-1753890535938.js +7 -0
  12. package/dist/version-dropdown-placeholder.d.ts +17 -0
  13. package/dist/version-dropdown-placeholder.js +92 -0
  14. package/dist/version-dropdown-placeholder.js.map +1 -0
  15. package/dist/version-dropdown-placeholder.module.scss +50 -0
  16. package/dist/version-dropdown.composition.d.ts +3 -0
  17. package/dist/version-dropdown.composition.js +28 -0
  18. package/dist/version-dropdown.composition.js.map +1 -0
  19. package/dist/version-dropdown.d.ts +53 -0
  20. package/dist/version-dropdown.docs.d.ts +35 -0
  21. package/dist/version-dropdown.docs.js +67 -0
  22. package/dist/version-dropdown.docs.js.map +1 -0
  23. package/dist/version-dropdown.js +153 -0
  24. package/dist/version-dropdown.js.map +1 -0
  25. package/dist/version-dropdown.module.scss +128 -0
  26. package/dist/version-dropdown.spec.d.ts +1 -0
  27. package/dist/version-dropdown.spec.js +33 -0
  28. package/dist/version-dropdown.spec.js.map +1 -0
  29. package/dist/version-info/index.d.ts +2 -0
  30. package/dist/version-info/index.js +6 -0
  31. package/dist/version-info/index.js.map +1 -0
  32. package/dist/version-info/version-info.d.ts +10 -0
  33. package/dist/version-info/version-info.js +79 -0
  34. package/dist/version-info/version-info.js.map +1 -0
  35. package/dist/version-info/version-info.module.scss +54 -0
  36. package/index.ts +4 -0
  37. package/lane-info/index.ts +2 -0
  38. package/lane-info/lane-info.module.scss +27 -0
  39. package/lane-info/lane-info.tsx +23 -0
  40. package/package.json +71 -0
  41. package/types/asset.d.ts +29 -0
  42. package/types/style.d.ts +42 -0
  43. package/version-dropdown-placeholder.module.scss +50 -0
  44. package/version-dropdown-placeholder.tsx +109 -0
  45. package/version-dropdown.composition.tsx +36 -0
  46. package/version-dropdown.docs.tsx +68 -0
  47. package/version-dropdown.module.scss +128 -0
  48. package/version-dropdown.spec.tsx +29 -0
  49. package/version-dropdown.tsx +331 -0
  50. package/version-info/index.ts +2 -0
  51. package/version-info/version-info.module.scss +54 -0
  52. package/version-info/version-info.tsx +87 -0
@@ -0,0 +1,4 @@
1
+ export { SimpleVersion, DetailedVersion } from './version-dropdown-placeholder';
2
+ export type { VersionProps } from './version-dropdown-placeholder';
3
+ export { VersionDropdown } from './version-dropdown';
4
+ export type { DropdownComponentVersion, GetActiveTabIndex } from './version-dropdown';
package/dist/index.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VersionDropdown = exports.DetailedVersion = exports.SimpleVersion = void 0;
4
+ var version_dropdown_placeholder_1 = require("./version-dropdown-placeholder");
5
+ Object.defineProperty(exports, "SimpleVersion", { enumerable: true, get: function () { return version_dropdown_placeholder_1.SimpleVersion; } });
6
+ Object.defineProperty(exports, "DetailedVersion", { enumerable: true, get: function () { return version_dropdown_placeholder_1.DetailedVersion; } });
7
+ var version_dropdown_1 = require("./version-dropdown");
8
+ Object.defineProperty(exports, "VersionDropdown", { enumerable: true, get: function () { return version_dropdown_1.VersionDropdown; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,+EAAgF;AAAvE,6HAAA,aAAa,OAAA;AAAE,+HAAA,eAAe,OAAA;AAEvC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA"}
@@ -0,0 +1,2 @@
1
+ export { LaneInfo } from './lane-info';
2
+ export type { LaneInfoProps } from './lane-info';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LaneInfo = void 0;
4
+ var lane_info_1 = require("./lane-info");
5
+ Object.defineProperty(exports, "LaneInfo", { enumerable: true, get: function () { return lane_info_1.LaneInfo; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lane-info/index.ts"],"names":[],"mappings":";;;AAAA,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA"}
@@ -0,0 +1,6 @@
1
+ import type { LaneModel } from '@teambit/lanes.ui.models.lanes-model';
2
+ import React from 'react';
3
+ export type LaneInfoProps = LaneModel & {
4
+ currentLane?: LaneModel;
5
+ };
6
+ export declare function LaneInfo({ id, currentLane }: LaneInfoProps): React.JSX.Element;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.LaneInfo = LaneInfo;
7
+ const lanes_ui_models_lanes_model_1 = require("@teambit/lanes.ui.models.lanes-model");
8
+ const react_1 = __importDefault(require("react"));
9
+ const design_ui_surfaces_menu_link_item_1 = require("@teambit/design.ui.surfaces.menu.link-item");
10
+ const evangelist_elements_icon_1 = require("@teambit/evangelist.elements.icon");
11
+ const lane_info_module_scss_1 = __importDefault(require("./lane-info.module.scss"));
12
+ function LaneInfo({ id, currentLane }) {
13
+ const isCurrent = currentLane && id.isEqual(currentLane.id);
14
+ return (react_1.default.createElement("div", { key: id.toString() },
15
+ react_1.default.createElement(design_ui_surfaces_menu_link_item_1.MenuLinkItem, { active: isCurrent, href: lanes_ui_models_lanes_model_1.LanesModel.getLaneUrl(id), className: lane_info_module_scss_1.default.versionRow },
16
+ react_1.default.createElement("span", null,
17
+ react_1.default.createElement(evangelist_elements_icon_1.Icon, { className: lane_info_module_scss_1.default.laneIcon, of: "lane" }),
18
+ id.toString()))));
19
+ }
20
+ //# sourceMappingURL=lane-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lane-info.js","sourceRoot":"","sources":["../../lane-info/lane-info.tsx"],"names":[],"mappings":";;;;;AASA,4BAaC;AArBD,sFAAkE;AAClE,kDAA0B;AAC1B,kGAA0E;AAC1E,gFAAyD;AACzD,oFAA6C;AAI7C,SAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAiB;IACzD,MAAM,SAAS,GAAG,WAAW,IAAI,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAE5D,OAAO,CACL,uCAAK,GAAG,EAAE,EAAE,CAAC,QAAQ,EAAE;QACrB,8BAAC,gDAAY,IAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,wCAAU,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,+BAAM,CAAC,UAAU;YAC5F;gBACE,8BAAC,+BAAI,IAAC,SAAS,EAAE,+BAAM,CAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,GAAQ;gBAClD,EAAE,CAAC,QAAQ,EAAE,CACT,CACM,CACX,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,27 @@
1
+ .versionRow {
2
+ display: flex;
3
+ justify-content: space-between;
4
+ align-items: center;
5
+ height: 40px;
6
+ padding: 0 24px;
7
+
8
+ .versionTimestamp {
9
+ margin-right: 2px;
10
+ }
11
+ .versionUserAvatar {
12
+ padding: 0px 8px;
13
+ }
14
+ .laneIcon {
15
+ padding: 0px 4px;
16
+ }
17
+ .version {
18
+ width: 60%;
19
+ display: flex;
20
+ flex-direction: row;
21
+ align-content: space-between;
22
+ align-items: center;
23
+ }
24
+ .versionName {
25
+ padding: 0px 8px;
26
+ }
27
+ }
@@ -0,0 +1,7 @@
1
+ import * as compositions_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_ui_version-dropdown@0aa660598a05d04f2b124cb0ae8b4a1c05b66d78/dist/version-dropdown.composition.js';
2
+ import * as overview_0 from '/home/circleci/Library/Caches/Bit/capsules/8891be5ad/teambit.component_ui_version-dropdown@0aa660598a05d04f2b124cb0ae8b4a1c05b66d78/dist/version-dropdown.docs.js';
3
+
4
+ export const compositions = [compositions_0];
5
+ export const overview = [overview_0];
6
+
7
+ export const compositions_metadata = {"compositions":[{"displayName":"Version dropdown with one version","identifier":"VersionDropdownWithOneVersion"},{"displayName":"Version dropdown with multiple versions","identifier":"VersionDropdownWithMultipleVersions"}]};
@@ -0,0 +1,17 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ import React from 'react';
3
+ import type { DropdownComponentVersion } from './version-dropdown';
4
+ export type VersionProps = {
5
+ currentVersion?: string;
6
+ isTag?: (version?: string) => boolean;
7
+ disabled?: boolean;
8
+ hasMoreVersions?: boolean;
9
+ showFullVersion?: boolean;
10
+ loading?: boolean;
11
+ useCurrentVersionLog?: (props: {
12
+ skip?: boolean;
13
+ version?: string;
14
+ }) => DropdownComponentVersion | undefined;
15
+ } & HTMLAttributes<HTMLDivElement>;
16
+ export declare function SimpleVersion({ currentVersion, className, disabled, hasMoreVersions, isTag, useCurrentVersionLog, showFullVersion, loading, ...rest }: VersionProps): React.JSX.Element;
17
+ export declare function DetailedVersion({ currentVersion, className, disabled, hasMoreVersions, isTag, loading, useCurrentVersionLog, showFullVersion, ...rest }: VersionProps): React.JSX.Element;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.SimpleVersion = SimpleVersion;
41
+ exports.DetailedVersion = DetailedVersion;
42
+ const react_1 = __importDefault(require("react"));
43
+ const design_ui_styles_ellipsis_1 = require("@teambit/design.ui.styles.ellipsis");
44
+ const classnames_1 = __importDefault(require("classnames"));
45
+ const semver = __importStar(require("semver"));
46
+ const evangelist_elements_icon_1 = require("@teambit/evangelist.elements.icon");
47
+ const design_ui_time_ago_1 = require("@teambit/design.ui.time-ago");
48
+ const design_ui_avatar_1 = require("@teambit/design.ui.avatar");
49
+ const base_ui_loaders_skeleton_1 = require("@teambit/base-ui.loaders.skeleton");
50
+ const version_dropdown_placeholder_module_scss_1 = __importDefault(require("./version-dropdown-placeholder.module.scss"));
51
+ function SimpleVersion(_a) {
52
+ var { currentVersion, className, disabled, hasMoreVersions, isTag = (version) => semver.valid(version) !== null,
53
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
54
+ useCurrentVersionLog, showFullVersion, loading } = _a, rest = __rest(_a, ["currentVersion", "className", "disabled", "hasMoreVersions", "isTag", "useCurrentVersionLog", "showFullVersion", "loading"]);
55
+ if (loading)
56
+ return react_1.default.createElement(base_ui_loaders_skeleton_1.WordSkeleton, { className: version_dropdown_placeholder_module_scss_1.default.loader, length: 9 });
57
+ const formattedVersion = showFullVersion || isTag(currentVersion) ? currentVersion : currentVersion === null || currentVersion === void 0 ? void 0 : currentVersion.slice(0, 6);
58
+ return (react_1.default.createElement("div", Object.assign({}, rest, { className: (0, classnames_1.default)(version_dropdown_placeholder_module_scss_1.default.simple, className, disabled && version_dropdown_placeholder_module_scss_1.default.disabled) }),
59
+ react_1.default.createElement(design_ui_styles_ellipsis_1.Ellipsis, { className: (0, classnames_1.default)(version_dropdown_placeholder_module_scss_1.default.versionName), onClick: rest.onClick }, formattedVersion),
60
+ hasMoreVersions && react_1.default.createElement(evangelist_elements_icon_1.Icon, { of: "fat-arrow-down", onClick: rest.onClick })));
61
+ }
62
+ function DetailedVersion(_a) {
63
+ var { currentVersion, className, disabled, hasMoreVersions, isTag = (version) => semver.valid(version) !== null, loading, useCurrentVersionLog, showFullVersion } = _a, rest = __rest(_a, ["currentVersion", "className", "disabled", "hasMoreVersions", "isTag", "loading", "useCurrentVersionLog", "showFullVersion"]);
64
+ const currentVersionLog = useCurrentVersionLog === null || useCurrentVersionLog === void 0 ? void 0 : useCurrentVersionLog({ skip: loading, version: currentVersion });
65
+ const { displayName, message, username, email, date: _date, profileImage } = currentVersionLog || {};
66
+ const author = react_1.default.useMemo(() => {
67
+ return {
68
+ displayName: displayName !== null && displayName !== void 0 ? displayName : '',
69
+ email,
70
+ name: username !== null && username !== void 0 ? username : '',
71
+ profileImage,
72
+ };
73
+ }, [displayName, email, username, profileImage]);
74
+ const formattedVersion = showFullVersion || isTag(currentVersion) ? currentVersion : currentVersion === null || currentVersion === void 0 ? void 0 : currentVersion.slice(0, 6);
75
+ const date = _date ? new Date(+_date) : undefined;
76
+ const timestamp = react_1.default.useMemo(() => (date ? new Date(+date).toString() : new Date().toString()), [date]);
77
+ if (loading)
78
+ return react_1.default.createElement(base_ui_loaders_skeleton_1.WordSkeleton, { className: version_dropdown_placeholder_module_scss_1.default.loader, length: 9 });
79
+ return (react_1.default.createElement("div", Object.assign({}, rest, { className: (0, classnames_1.default)(version_dropdown_placeholder_module_scss_1.default.detailed, className, disabled && version_dropdown_placeholder_module_scss_1.default.disabled) }),
80
+ react_1.default.createElement(design_ui_avatar_1.UserAvatar, { size: 24, account: author !== null && author !== void 0 ? author : {}, className: version_dropdown_placeholder_module_scss_1.default.versionUserAvatar, showTooltip: true, onClick: rest.onClick }),
81
+ react_1.default.createElement(design_ui_styles_ellipsis_1.Ellipsis, { className: (0, classnames_1.default)(version_dropdown_placeholder_module_scss_1.default.versionName), onClick: rest.onClick }, formattedVersion),
82
+ commitMessage(message, rest.onClick),
83
+ react_1.default.createElement(design_ui_styles_ellipsis_1.Ellipsis, { className: version_dropdown_placeholder_module_scss_1.default.versionTimestamp, onClick: rest.onClick },
84
+ react_1.default.createElement(design_ui_time_ago_1.TimeAgo, { date: timestamp, onClick: rest.onClick })),
85
+ hasMoreVersions && react_1.default.createElement(evangelist_elements_icon_1.Icon, { of: "fat-arrow-down", onClick: rest.onClick })));
86
+ }
87
+ function commitMessage(message, onClick) {
88
+ if (!message || message === '')
89
+ return (react_1.default.createElement(design_ui_styles_ellipsis_1.Ellipsis, { className: version_dropdown_placeholder_module_scss_1.default.emptyMessage, onClick: onClick }, "No commit message"));
90
+ return (react_1.default.createElement(design_ui_styles_ellipsis_1.Ellipsis, { className: version_dropdown_placeholder_module_scss_1.default.commitMessage, onClick: onClick }, message));
91
+ }
92
+ //# sourceMappingURL=version-dropdown-placeholder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-dropdown-placeholder.js","sourceRoot":"","sources":["../version-dropdown-placeholder.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ .simple,
2
+ .detailed {
3
+ cursor: pointer;
4
+ border: 1px solid var(--bit-border-color, #babec9);
5
+ border-radius: 6px;
6
+ transition: background-color 300ms ease-in-out;
7
+ height: 30px;
8
+ display: flex;
9
+ align-items: center;
10
+ box-sizing: border-box;
11
+ user-select: none;
12
+ flex-wrap: nowrap;
13
+ gap: 8px;
14
+ padding: 8px;
15
+ line-height: 1.2em;
16
+
17
+ &:hover {
18
+ background-color: var(--bit-bg-heavy);
19
+ }
20
+
21
+ &.disabled {
22
+ cursor: default;
23
+ background-color: var(--border-medium-color, #ededed);
24
+ color: var(--on-background-medium-color, #707279);
25
+ > span {
26
+ display: none;
27
+ }
28
+ }
29
+ }
30
+ .versionName {
31
+ flex-grow: 1;
32
+ min-width: fit-content;
33
+ }
34
+
35
+ .commitMessage {
36
+ flex-grow: 1;
37
+ max-width: 200px;
38
+ }
39
+
40
+ .versionUserAvatar {
41
+ flex: none;
42
+ margin-right: 5px;
43
+ }
44
+
45
+ .loader {
46
+ color: var(--bit-bg-dent, #f6f6f6);
47
+ > span {
48
+ padding: 4px;
49
+ }
50
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const VersionDropdownWithOneVersion: () => React.JSX.Element;
3
+ export declare const VersionDropdownWithMultipleVersions: () => React.JSX.Element;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.VersionDropdownWithMultipleVersions = exports.VersionDropdownWithOneVersion = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const react_router_dom_1 = require("react-router-dom");
9
+ const documenter_theme_theme_compositions_1 = require("@teambit/documenter.theme.theme-compositions");
10
+ const version_dropdown_1 = require("./version-dropdown");
11
+ const style = { display: 'flex', justifyContent: 'center', alignContent: 'center' };
12
+ const VersionDropdownWithOneVersion = () => {
13
+ return (react_1.default.createElement(documenter_theme_theme_compositions_1.ThemeCompositions, { style: style },
14
+ react_1.default.createElement(version_dropdown_1.VersionDropdown, { useComponentVersions: () => ({
15
+ tags: [{ version: '0.1' }],
16
+ }), currentVersion: "0.1" })));
17
+ };
18
+ exports.VersionDropdownWithOneVersion = VersionDropdownWithOneVersion;
19
+ const VersionDropdownWithMultipleVersions = () => {
20
+ const versions = ['0.3', '0.2', '0.1'].map((version) => ({ version }));
21
+ return (react_1.default.createElement(documenter_theme_theme_compositions_1.ThemeCompositions, { style: style },
22
+ react_1.default.createElement(react_router_dom_1.MemoryRouter, null,
23
+ react_1.default.createElement(version_dropdown_1.VersionDropdown, { useComponentVersions: () => ({
24
+ tags: [{ version: '0.1' }],
25
+ }), currentVersion: versions[0].version }))));
26
+ };
27
+ exports.VersionDropdownWithMultipleVersions = VersionDropdownWithMultipleVersions;
28
+ //# sourceMappingURL=version-dropdown.composition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-dropdown.composition.js","sourceRoot":"","sources":["../version-dropdown.composition.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,uDAAgD;AAChD,sGAAiF;AACjF,yDAAqD;AAErD,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAE7E,MAAM,6BAA6B,GAAG,GAAG,EAAE;IAChD,OAAO,CACL,8BAAC,uDAAiB,IAAC,KAAK,EAAE,KAAK;QAC7B,8BAAC,kCAAe,IACd,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aAC3B,CAAC,EACF,cAAc,EAAC,KAAK,GACpB,CACgB,CACrB,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,6BAA6B,iCAWxC;AAEK,MAAM,mCAAmC,GAAG,GAAG,EAAE;IACtD,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAEvE,OAAO,CACL,8BAAC,uDAAiB,IAAC,KAAK,EAAE,KAAK;QAC7B,8BAAC,+BAAY;YACX,8BAAC,kCAAe,IACd,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC3B,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;iBAC3B,CAAC,EACF,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,GACnC,CACW,CACG,CACrB,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,mCAAmC,uCAe9C"}
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+ import type { LegacyComponentLog } from '@teambit/legacy-component-log';
3
+ import type { LaneModel } from '@teambit/lanes.ui.models.lanes-model';
4
+ import type { VersionProps } from './version-dropdown-placeholder';
5
+ export declare const LOCAL_VERSION = "workspace";
6
+ export type DropdownComponentVersion = Partial<LegacyComponentLog> & {
7
+ version: string;
8
+ };
9
+ export type UseComponentDropdownVersionsResult = {
10
+ tags?: DropdownComponentVersion[];
11
+ snaps?: DropdownComponentVersion[];
12
+ loading?: boolean;
13
+ };
14
+ export type UseComponentDropdownVersionsProps = {
15
+ skip?: boolean;
16
+ };
17
+ export type UseComponentDropdownVersions = (props?: UseComponentDropdownVersionsProps) => UseComponentDropdownVersionsResult;
18
+ export type GetActiveTabIndex = (currentVersion?: string, tabs?: Array<VersionMenuTab>, tags?: DropdownComponentVersion[], snaps?: DropdownComponentVersion[], currentLane?: LaneModel) => number;
19
+ export type VersionDropdownProps = {
20
+ localVersion?: boolean;
21
+ latestVersion?: string;
22
+ currentVersion: string;
23
+ useCurrentVersionLog?: (props?: {
24
+ skip?: boolean;
25
+ version?: string;
26
+ }) => DropdownComponentVersion | undefined;
27
+ hasMoreVersions?: boolean;
28
+ loading?: boolean;
29
+ useComponentVersions?: UseComponentDropdownVersions;
30
+ currentLane?: LaneModel;
31
+ lanes?: LaneModel[];
32
+ getActiveTabIndex?: GetActiveTabIndex;
33
+ overrideVersionHref?: (version: string) => string;
34
+ placeholderClassName?: string;
35
+ dropdownClassName?: string;
36
+ menuClassName?: string;
37
+ showVersionDetails?: boolean;
38
+ disabled?: boolean;
39
+ PlaceholderComponent?: React.ComponentType<VersionProps>;
40
+ } & React.HTMLAttributes<HTMLDivElement>;
41
+ export declare const VersionDropdown: React.MemoExoticComponent<typeof _VersionDropdown>;
42
+ declare function _VersionDropdown({ currentVersion, latestVersion, localVersion, useCurrentVersionLog, hasMoreVersions, loading, overrideVersionHref, className, placeholderClassName, getActiveTabIndex, dropdownClassName, menuClassName, showVersionDetails, disabled, PlaceholderComponent: _PlaceholderComponent, currentLane, useComponentVersions, lanes, ...rest }: VersionDropdownProps): React.JSX.Element;
43
+ export type VersionMenuTab = {
44
+ name: 'SNAP';
45
+ payload: DropdownComponentVersion[];
46
+ } | {
47
+ name: 'LANE';
48
+ payload: LaneModel[];
49
+ } | {
50
+ name: 'TAG';
51
+ payload: DropdownComponentVersion[];
52
+ };
53
+ export {};
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { MemoryRouter } from 'react-router-dom';
3
+ declare function Overview(): React.JSX.Element;
4
+ declare namespace Overview {
5
+ var abstract: string;
6
+ var labels: string[];
7
+ var examples: ({
8
+ scope: {
9
+ VersionDropdown: React.MemoExoticComponent<({ currentVersion, latestVersion, localVersion, useCurrentVersionLog, hasMoreVersions, loading, overrideVersionHref, className, placeholderClassName, getActiveTabIndex, dropdownClassName, menuClassName, showVersionDetails, disabled, PlaceholderComponent: _PlaceholderComponent, currentLane, useComponentVersions, lanes, ...rest }: import("./version-dropdown").VersionDropdownProps) => React.JSX.Element>;
10
+ style: {
11
+ display: string;
12
+ justifyContent: string;
13
+ alignContent: string;
14
+ };
15
+ MemoryRouter?: undefined;
16
+ };
17
+ title: string;
18
+ description: string;
19
+ code: string;
20
+ } | {
21
+ scope: {
22
+ VersionDropdown: React.MemoExoticComponent<({ currentVersion, latestVersion, localVersion, useCurrentVersionLog, hasMoreVersions, loading, overrideVersionHref, className, placeholderClassName, getActiveTabIndex, dropdownClassName, menuClassName, showVersionDetails, disabled, PlaceholderComponent: _PlaceholderComponent, currentLane, useComponentVersions, lanes, ...rest }: import("./version-dropdown").VersionDropdownProps) => React.JSX.Element>;
23
+ style: {
24
+ display: string;
25
+ justifyContent: string;
26
+ alignContent: string;
27
+ };
28
+ MemoryRouter: typeof MemoryRouter;
29
+ };
30
+ title: string;
31
+ description: string;
32
+ code: string;
33
+ })[];
34
+ }
35
+ export default Overview;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = Overview;
7
+ const react_1 = __importDefault(require("react"));
8
+ const react_router_dom_1 = require("react-router-dom");
9
+ const documenter_ui_section_1 = require("@teambit/documenter.ui.section");
10
+ const documenter_theme_theme_compositions_1 = require("@teambit/documenter.theme.theme-compositions");
11
+ const documenter_ui_separator_1 = require("@teambit/documenter.ui.separator");
12
+ const version_dropdown_1 = require("./version-dropdown");
13
+ function Overview() {
14
+ return (react_1.default.createElement(documenter_theme_theme_compositions_1.ThemeCompositions, null,
15
+ react_1.default.createElement(react_1.default.Fragment, null,
16
+ react_1.default.createElement(documenter_ui_section_1.Section, null,
17
+ "The version-dropdown displays the latest version of the viewed component. ",
18
+ react_1.default.createElement("br", null),
19
+ "If previous versions are available, the component will display a list of them, when clicked. ",
20
+ react_1.default.createElement("br", null),
21
+ "This allows the user to navigate to previous versions, and explore them."),
22
+ react_1.default.createElement(documenter_ui_separator_1.Separator, null))));
23
+ }
24
+ Overview.abstract = 'The version-dropdown lists the latest and previous versions of the viewed component.';
25
+ Overview.labels = ['react', 'typescript', 'version', 'dropdown'];
26
+ const style = { display: 'flex', justifyContent: 'center', alignContent: 'center' };
27
+ Overview.examples = [
28
+ {
29
+ scope: {
30
+ VersionDropdown: version_dropdown_1.VersionDropdown,
31
+ style,
32
+ },
33
+ title: 'Version Dropdown',
34
+ description: 'Using the Version Dropdown component with one verion',
35
+ code: `
36
+ () => {
37
+ return (
38
+ <div style={{...style, minHeight: 150 }}>
39
+ <VersionDropdown versions={['0.1']} currentVersion="0.1" />
40
+ </div>
41
+ );
42
+ }
43
+ `,
44
+ },
45
+ {
46
+ scope: {
47
+ VersionDropdown: version_dropdown_1.VersionDropdown,
48
+ style,
49
+ MemoryRouter: react_router_dom_1.MemoryRouter,
50
+ },
51
+ title: 'Version Dropdown with multiple versions',
52
+ description: 'Using the Version Dropdown component with more than one version',
53
+ code: `
54
+ () => {
55
+ const versions = ['0.3', '0.2', '0.1'];
56
+ return (
57
+ <div style={{...style, minHeight: 400, alignItems: 'end', justifyContent: 'flex-end', margin: 10 }}>
58
+ <MemoryRouter>
59
+ <VersionDropdown versions={versions} currentVersion={versions[0]} />
60
+ </MemoryRouter>
61
+ </div>
62
+ );
63
+ }
64
+ `,
65
+ },
66
+ ];
67
+ //# sourceMappingURL=version-dropdown.docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-dropdown.docs.js","sourceRoot":"","sources":["../version-dropdown.docs.tsx"],"names":[],"mappings":";;;;;AAOA,2BAaC;AApBD,kDAA0B;AAC1B,uDAAgD;AAChD,0EAAyD;AACzD,sGAAiF;AACjF,8EAA6D;AAC7D,yDAAqD;AAErD,SAAwB,QAAQ;IAC9B,OAAO,CACL,8BAAC,uDAAiB;QAChB;YACE,8BAAC,+BAAO;;gBACoE,yCAAM;;gBACa,yCAAM;2FAE3F;YACV,8BAAC,mCAAS,OAAG,CACZ,CACe,CACrB,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,QAAQ,GAAG,sFAAsF,CAAC;AAE3G,QAAQ,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAEjE,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEpF,QAAQ,CAAC,QAAQ,GAAG;IAClB;QACE,KAAK,EAAE;YACL,eAAe,EAAf,kCAAe;YACf,KAAK;SACN;QACD,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,sDAAsD;QACnE,IAAI,EAAE;;;;;;;;OAQH;KACJ;IACD;QACE,KAAK,EAAE;YACL,eAAe,EAAf,kCAAe;YACf,KAAK;YACL,YAAY,EAAZ,+BAAY;SACb;QACD,KAAK,EAAE,yCAAyC;QAChD,WAAW,EAAE,iEAAiE;QAC9E,IAAI,EAAE;;;;;;;;;;;OAWH;KACJ;CACF,CAAC"}