@burdenoff/fe-libs 2026.1017.12 → 2026.1019.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.
- package/dist/chrome/AccountSwitcher.js +90 -89
- package/dist/chrome/Breadcrumbs.js +1 -1
- package/dist/chrome/CommandPalette.js +91 -90
- package/dist/chrome/Footer.js +31 -8
- package/dist/chrome/GlobalSearch.js +78 -77
- package/dist/chrome/HeaderBar.js +1 -1
- package/dist/chrome/HeaderThemeSwitcher.js +48 -47
- package/dist/chrome/LanguagePickerSheet.js +23 -22
- package/dist/chrome/NavCustomizeDialog.d.ts +0 -14
- package/dist/chrome/NavCustomizeDialog.js +114 -122
- package/dist/chrome/PanelTabs.js +45 -41
- package/dist/chrome/PersonaSurfaceControls.d.ts +0 -17
- package/dist/chrome/PersonaSurfaceControls.js +115 -118
- package/dist/chrome/PluginSettingsPage.js +29 -28
- package/dist/chrome/PluginWidgetGrid.js +19 -18
- package/dist/chrome/ProductPickerSheet.js +44 -47
- package/dist/chrome/ProductSwitcher.js +2 -6
- package/dist/chrome/ProfileSwitcher.js +6 -10
- package/dist/chrome/ShortcutHelpDialog.js +60 -65
- package/dist/chrome/SideNavigation.js +2 -2
- package/dist/chrome/Sidebar.js +44 -43
- package/dist/chrome/ThemePreferences.js +289 -267
- package/dist/chrome/contextSwitcher/EmptyState.js +31 -27
- package/dist/chrome/contextSwitcher/OrganizationList.js +40 -30
- package/dist/chrome/contextSwitcher/ProjectList.js +48 -44
- package/dist/chrome/contextSwitcher/SearchInput.js +44 -40
- package/dist/chrome/contextSwitcher/TriggerButton.js +2 -2
- package/dist/chrome/contextSwitcher/WorkspaceList.js +36 -32
- package/dist/chrome/globalSearch/AdvancedFiltersPanel.js +128 -126
- package/dist/chrome/globalSearch/ResultsList.js +25 -27
- package/dist/chrome/globalSearch/SearchInput.js +16 -14
- package/dist/chrome/notificationCenter/NotificationCardItem.js +58 -47
- package/dist/chrome/notificationCenter/NotificationFilters.js +76 -62
- package/dist/chrome/notificationCenter/NotificationFooter.js +21 -21
- package/dist/chrome/notificationCenter/NotificationHeader.js +67 -63
- package/dist/chrome/notificationCenter/NotificationList.js +75 -71
- package/dist/chrome/notificationCenter/NotificationPanel.js +37 -33
- package/dist/chrome/notificationCenter/PushOptInToggle.js +33 -32
- package/dist/chrome/notificationCenter/constants.d.ts +6 -1
- package/dist/chrome/notificationCenter/constants.js +12 -11
- package/dist/chrome/useThemeOptionLabels.d.ts +33 -0
- package/dist/chrome/useThemeOptionLabels.js +39 -0
- package/dist/shared/assistant/ui/AssistantMarkdownRenderer.d.ts +6 -6
- package/dist/shared/assistant/ui/AssistantMarkdownRenderer.js +86 -85
- package/dist/shared/assistant/ui/AssistantMessageItem.js +101 -96
- package/dist/shared/assistant/ui/WorkflowAssistantPanel.js +152 -140
- package/dist/shared/events/sinks/RybbitSink.js +2 -2
- package/dist/shared/providers/shell/authProvider/useAuthActions.d.ts +19 -0
- package/dist/shared/providers/shell/authProvider/useAuthActions.js +97 -91
- package/dist/shared/providers/shell/interpolateShellLabel.d.ts +3 -0
- package/dist/shared/providers/shell/interpolateShellLabel.js +11 -0
- package/dist/shared/providers/shell/useAssistantShellLabels.d.ts +45 -0
- package/dist/shared/providers/shell/useAssistantShellLabels.js +54 -0
- package/dist/shared/tours/TourPlayer.js +33 -32
- package/dist/shared/tours/TourTooltip.js +108 -109
- package/dist/shared/tours/tourTrigger/MobileTourSheet.js +98 -85
- package/dist/shared/tours/tourTrigger/TourListItemDesktop.js +20 -18
- package/dist/shared/tours/tourTrigger/TourListItemMobile.js +23 -25
- package/package.json +3 -3
|
@@ -1,32 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useShellLabel as e } from "../../shared/providers/shell/useShellLabel.js";
|
|
2
|
+
import { Fragment as t, jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
2
3
|
//#region src/chrome/contextSwitcher/EmptyState.tsx
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
4
|
+
var i = ({ message: i, isSearchResult: a }) => {
|
|
5
|
+
let o = e();
|
|
6
|
+
return /* @__PURE__ */ n("div", {
|
|
7
|
+
className: "px-4 py-8 text-center animate-in fade-in-0 duration-200",
|
|
8
|
+
children: a ? /* @__PURE__ */ r(t, { children: [
|
|
9
|
+
/* @__PURE__ */ n("svg", {
|
|
10
|
+
className: "size-8 mx-auto mb-2 text-[var(--color-text-tertiary)]",
|
|
11
|
+
fill: "none",
|
|
12
|
+
stroke: "currentColor",
|
|
13
|
+
viewBox: "0 0 24 24",
|
|
14
|
+
children: /* @__PURE__ */ n("path", {
|
|
15
|
+
strokeLinecap: "round",
|
|
16
|
+
strokeLinejoin: "round",
|
|
17
|
+
strokeWidth: 2,
|
|
18
|
+
d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
|
|
19
|
+
})
|
|
20
|
+
}),
|
|
21
|
+
/* @__PURE__ */ n("p", {
|
|
22
|
+
className: "text-[var(--color-text-secondary)] text-sm",
|
|
23
|
+
children: o("common.noResults", "No results found")
|
|
24
|
+
}),
|
|
25
|
+
/* @__PURE__ */ n("p", {
|
|
26
|
+
className: "text-[var(--color-text-tertiary)] text-xs mt-1",
|
|
27
|
+
children: o("contextSwitcher.emptyHint", "Try a different search term")
|
|
16
28
|
})
|
|
17
|
-
}),
|
|
18
|
-
/* @__PURE__ */ t("p", {
|
|
29
|
+
] }) : /* @__PURE__ */ n("p", {
|
|
19
30
|
className: "text-[var(--color-text-secondary)] text-sm",
|
|
20
|
-
children:
|
|
21
|
-
}),
|
|
22
|
-
/* @__PURE__ */ t("p", {
|
|
23
|
-
className: "text-[var(--color-text-tertiary)] text-xs mt-1",
|
|
24
|
-
children: "Try a different search term"
|
|
31
|
+
children: i
|
|
25
32
|
})
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
children: r
|
|
29
|
-
})
|
|
30
|
-
});
|
|
33
|
+
});
|
|
34
|
+
};
|
|
31
35
|
//#endregion
|
|
32
|
-
export {
|
|
36
|
+
export { i as EmptyState };
|
|
@@ -1,45 +1,55 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { useShellLabel as e } from "../../shared/providers/shell/useShellLabel.js";
|
|
2
|
+
import { organizationDetail as t } from "./organizationLabel.js";
|
|
3
|
+
import { SearchInput as n } from "./SearchInput.js";
|
|
4
|
+
import { EmptyState as r } from "./EmptyState.js";
|
|
5
|
+
import { BuildingIcon as i, CheckIcon as a } from "./icons.js";
|
|
6
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
6
7
|
//#region src/chrome/contextSwitcher/OrganizationList.tsx
|
|
7
|
-
var
|
|
8
|
+
var c = ({ organizations: e, searchedOrganizations: n, currentOrganizationId: r, searchQuery: c, onSearchChange: d, onSelect: f, searchInputRef: p }) => /* @__PURE__ */ s("div", {
|
|
8
9
|
className: "h-full flex flex-col",
|
|
9
|
-
children: [/* @__PURE__ */
|
|
10
|
-
value:
|
|
10
|
+
children: [/* @__PURE__ */ o(l, {
|
|
11
|
+
value: c,
|
|
11
12
|
onChange: d,
|
|
12
|
-
placeholder: "Search organizations...",
|
|
13
13
|
inputRef: p
|
|
14
|
-
}), /* @__PURE__ */
|
|
14
|
+
}), /* @__PURE__ */ o("div", {
|
|
15
15
|
className: "flex-1 overflow-y-auto py-1",
|
|
16
|
-
children:
|
|
17
|
-
let
|
|
18
|
-
return /* @__PURE__ */
|
|
19
|
-
"aria-label":
|
|
20
|
-
onClick: () => f(
|
|
21
|
-
className: `w-full flex items-center gap-3 px-4 py-3 text-sm transition-all duration-200 ease-[var(--motion-easing-out)] animate-in fade-in-0 slide-in-from-left-2 ${
|
|
22
|
-
style: { animationDelay: `${
|
|
16
|
+
children: n.length > 0 ? n.map((n, c) => {
|
|
17
|
+
let l = t(n, e);
|
|
18
|
+
return /* @__PURE__ */ s("button", {
|
|
19
|
+
"aria-label": l ? `${n.name} (${l})` : void 0,
|
|
20
|
+
onClick: () => f(n),
|
|
21
|
+
className: `w-full flex items-center gap-3 px-4 py-3 text-sm transition-all duration-200 ease-[var(--motion-easing-out)] animate-in fade-in-0 slide-in-from-left-2 ${n.id === r ? "bg-[var(--color-accent-soft)] text-text-primary font-medium" : "text-text-primary hover:bg-bg-sunken hover:translate-x-0.5"}`,
|
|
22
|
+
style: { animationDelay: `${c * 30}ms` },
|
|
23
23
|
children: [
|
|
24
|
-
/* @__PURE__ */
|
|
25
|
-
/* @__PURE__ */
|
|
24
|
+
/* @__PURE__ */ o(i, { className: "size-5 text-[var(--color-text-secondary)] flex-shrink-0" }),
|
|
25
|
+
/* @__PURE__ */ s("span", {
|
|
26
26
|
className: "flex-1 min-w-0 text-left",
|
|
27
|
-
children: [/* @__PURE__ */
|
|
27
|
+
children: [/* @__PURE__ */ o("span", {
|
|
28
28
|
className: "block truncate",
|
|
29
|
-
children:
|
|
30
|
-
}),
|
|
29
|
+
children: n.name
|
|
30
|
+
}), l && /* @__PURE__ */ o("span", {
|
|
31
31
|
className: "block break-all text-xs text-[var(--color-text-secondary)]",
|
|
32
|
-
children:
|
|
32
|
+
children: l
|
|
33
33
|
})]
|
|
34
34
|
}),
|
|
35
|
-
|
|
35
|
+
n.id === r && /* @__PURE__ */ o(a, { className: "size-5 text-[var(--color-action-primary-bg)] flex-shrink-0 animate-in zoom-in-50 duration-200" })
|
|
36
36
|
]
|
|
37
|
-
},
|
|
38
|
-
}) : /* @__PURE__ */
|
|
39
|
-
message: "No organizations available",
|
|
40
|
-
isSearchResult: u.length > 0
|
|
41
|
-
})
|
|
37
|
+
}, n.id);
|
|
38
|
+
}) : /* @__PURE__ */ o(u, { isSearchResult: c.length > 0 })
|
|
42
39
|
})]
|
|
43
40
|
});
|
|
41
|
+
function l(t) {
|
|
42
|
+
let r = e();
|
|
43
|
+
return /* @__PURE__ */ o(n, {
|
|
44
|
+
...t,
|
|
45
|
+
placeholder: r("organizations.list.searchPlaceholder", "Search organizations...")
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function u({ isSearchResult: t }) {
|
|
49
|
+
return /* @__PURE__ */ o(r, {
|
|
50
|
+
isSearchResult: t,
|
|
51
|
+
message: e()("contextSwitcher.noOrganizations", "No organizations available")
|
|
52
|
+
});
|
|
53
|
+
}
|
|
44
54
|
//#endregion
|
|
45
|
-
export {
|
|
55
|
+
export { c as OrganizationList };
|
|
@@ -1,47 +1,51 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { useShellLabel as e } from "../../shared/providers/shell/useShellLabel.js";
|
|
2
|
+
import { SearchInput as t } from "./SearchInput.js";
|
|
3
|
+
import { EmptyState as n } from "./EmptyState.js";
|
|
4
|
+
import { CheckIcon as r, FolderIcon as i } from "./icons.js";
|
|
5
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
5
6
|
//#region src/chrome/contextSwitcher/ProjectList.tsx
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
className: "
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
className: "
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
7
|
+
var s = ({ filteredProjects: s, searchedProjects: c, currentProjectId: l, searchQuery: u, onSearchChange: d, onSelect: f, onWorkspaceWideSelect: p, searchInputRef: m }) => {
|
|
8
|
+
let h = e();
|
|
9
|
+
return /* @__PURE__ */ o("div", {
|
|
10
|
+
className: "h-full flex flex-col",
|
|
11
|
+
children: [/* @__PURE__ */ a(t, {
|
|
12
|
+
value: u,
|
|
13
|
+
onChange: d,
|
|
14
|
+
placeholder: h("projectsList.searchPlaceholder", "Search projects..."),
|
|
15
|
+
inputRef: m
|
|
16
|
+
}), /* @__PURE__ */ o("div", {
|
|
17
|
+
className: "flex-1 overflow-y-auto py-1",
|
|
18
|
+
children: [p && /* @__PURE__ */ o("button", {
|
|
19
|
+
type: "button",
|
|
20
|
+
onClick: p,
|
|
21
|
+
className: "w-full flex items-center gap-3 px-4 py-3 text-sm text-text-primary hover:bg-bg-sunken",
|
|
22
|
+
"aria-pressed": !l,
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ a(i, { className: "size-5 text-[var(--color-text-secondary)] flex-shrink-0" }),
|
|
25
|
+
/* @__PURE__ */ a("span", {
|
|
26
|
+
className: "flex-1 text-left",
|
|
27
|
+
children: h("contextSwitcher.allProjectsWorkspaceWide", "All projects (workspace-wide)")
|
|
28
|
+
}),
|
|
29
|
+
!l && /* @__PURE__ */ a(r, { className: "size-5 text-[var(--color-action-primary-bg)] flex-shrink-0" })
|
|
30
|
+
]
|
|
31
|
+
}), s.length === 0 ? /* @__PURE__ */ a(n, { message: h("contextSwitcher.noProjectsInWorkspace", "No projects in this workspace") }) : c.length > 0 ? c.map((e, t) => /* @__PURE__ */ o("button", {
|
|
32
|
+
onClick: () => f(e),
|
|
33
|
+
className: `w-full flex items-center gap-3 px-4 py-3 text-sm transition-all duration-200 ease-[var(--motion-easing-out)] animate-in fade-in-0 slide-in-from-left-2 ${e.id === l ? "bg-[var(--color-accent-soft)] text-text-primary font-medium" : "text-text-primary hover:bg-bg-sunken hover:translate-x-0.5"}`,
|
|
34
|
+
style: { animationDelay: `${t * 30}ms` },
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ a(i, { className: "size-5 text-[var(--color-text-secondary)] flex-shrink-0" }),
|
|
37
|
+
/* @__PURE__ */ a("span", {
|
|
38
|
+
className: "flex-1 text-left truncate",
|
|
39
|
+
children: e.name
|
|
40
|
+
}),
|
|
41
|
+
e.id === l && /* @__PURE__ */ a(r, { className: "size-5 text-[var(--color-action-primary-bg)] flex-shrink-0 animate-in zoom-in-50 duration-200" })
|
|
42
|
+
]
|
|
43
|
+
}, e.id)) : /* @__PURE__ */ a(n, {
|
|
44
|
+
message: h("projectsList.noProjectsFound", "No projects found"),
|
|
45
|
+
isSearchResult: u.length > 0
|
|
46
|
+
})]
|
|
43
47
|
})]
|
|
44
|
-
})
|
|
45
|
-
}
|
|
48
|
+
});
|
|
49
|
+
};
|
|
46
50
|
//#endregion
|
|
47
|
-
export {
|
|
51
|
+
export { s as ProjectList };
|
|
@@ -1,50 +1,54 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useShellLabel as e } from "../../shared/providers/shell/useShellLabel.js";
|
|
2
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
2
3
|
//#region src/chrome/contextSwitcher/SearchInput.tsx
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
className: "relative",
|
|
7
|
-
children:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
viewBox: "0 0 24 24",
|
|
13
|
-
children: /* @__PURE__ */ e("path", {
|
|
14
|
-
strokeLinecap: "round",
|
|
15
|
-
strokeLinejoin: "round",
|
|
16
|
-
strokeWidth: 2,
|
|
17
|
-
d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
|
|
18
|
-
})
|
|
19
|
-
}),
|
|
20
|
-
/* @__PURE__ */ e("input", {
|
|
21
|
-
ref: a,
|
|
22
|
-
type: "text",
|
|
23
|
-
value: n,
|
|
24
|
-
onChange: (e) => r(e.target.value),
|
|
25
|
-
placeholder: i,
|
|
26
|
-
className: "w-full pl-9 pr-8 py-2 text-sm bg-[var(--color-bg-surface)] border border-[var(--color-border-subtle)] rounded-md focus:outline-none focus:ring-2 focus:ring-[var(--color-action-primary-border)] focus:border-transparent text-[var(--color-text-primary)] placeholder:text-[var(--color-text-tertiary)] transition-all duration-200"
|
|
27
|
-
}),
|
|
28
|
-
n && /* @__PURE__ */ e("button", {
|
|
29
|
-
type: "button",
|
|
30
|
-
onClick: () => r(""),
|
|
31
|
-
className: "absolute right-2 top-1/2 -translate-y-1/2 p-1 rounded-button hover:bg-bg-sunken text-text-muted hover:text-text-primary transition-all duration-150 ease-[var(--motion-easing-out)]",
|
|
32
|
-
"aria-label": "Clear search",
|
|
33
|
-
children: /* @__PURE__ */ e("svg", {
|
|
34
|
-
className: "size-4",
|
|
4
|
+
var r = ({ value: r, onChange: i, placeholder: a, inputRef: o }) => {
|
|
5
|
+
let s = e();
|
|
6
|
+
return /* @__PURE__ */ t("div", {
|
|
7
|
+
className: "relative px-3 py-2 border-b border-[var(--color-border-subtle)]",
|
|
8
|
+
children: /* @__PURE__ */ n("div", {
|
|
9
|
+
className: "relative",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ t("svg", {
|
|
12
|
+
className: "absolute left-3 top-1/2 -translate-y-1/2 size-4 text-[var(--color-text-tertiary)]",
|
|
35
13
|
fill: "none",
|
|
36
14
|
stroke: "currentColor",
|
|
37
15
|
viewBox: "0 0 24 24",
|
|
38
|
-
children: /* @__PURE__ */
|
|
16
|
+
children: /* @__PURE__ */ t("path", {
|
|
39
17
|
strokeLinecap: "round",
|
|
40
18
|
strokeLinejoin: "round",
|
|
41
19
|
strokeWidth: 2,
|
|
42
|
-
d: "
|
|
20
|
+
d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
|
|
21
|
+
})
|
|
22
|
+
}),
|
|
23
|
+
/* @__PURE__ */ t("input", {
|
|
24
|
+
ref: o,
|
|
25
|
+
type: "text",
|
|
26
|
+
value: r,
|
|
27
|
+
onChange: (e) => i(e.target.value),
|
|
28
|
+
placeholder: a,
|
|
29
|
+
className: "w-full pl-9 pr-8 py-2 text-sm bg-[var(--color-bg-surface)] border border-[var(--color-border-subtle)] rounded-md focus:outline-none focus:ring-2 focus:ring-[var(--color-action-primary-border)] focus:border-transparent text-[var(--color-text-primary)] placeholder:text-[var(--color-text-tertiary)] transition-all duration-200"
|
|
30
|
+
}),
|
|
31
|
+
r && /* @__PURE__ */ t("button", {
|
|
32
|
+
type: "button",
|
|
33
|
+
onClick: () => i(""),
|
|
34
|
+
className: "absolute right-2 top-1/2 -translate-y-1/2 p-1 rounded-button hover:bg-bg-sunken text-text-muted hover:text-text-primary transition-all duration-150 ease-[var(--motion-easing-out)]",
|
|
35
|
+
"aria-label": s("common.clearSearch", "Clear search"),
|
|
36
|
+
children: /* @__PURE__ */ t("svg", {
|
|
37
|
+
className: "size-4",
|
|
38
|
+
fill: "none",
|
|
39
|
+
stroke: "currentColor",
|
|
40
|
+
viewBox: "0 0 24 24",
|
|
41
|
+
children: /* @__PURE__ */ t("path", {
|
|
42
|
+
strokeLinecap: "round",
|
|
43
|
+
strokeLinejoin: "round",
|
|
44
|
+
strokeWidth: 2,
|
|
45
|
+
d: "M6 18L18 6M6 6l12 12"
|
|
46
|
+
})
|
|
43
47
|
})
|
|
44
48
|
})
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
})
|
|
48
|
-
}
|
|
49
|
+
]
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
};
|
|
49
53
|
//#endregion
|
|
50
|
-
export {
|
|
54
|
+
export { r as SearchInput };
|
|
@@ -16,7 +16,7 @@ var o = ({ isOpen: o, compact: s, currentOrg: c, currentWorkspace: l, currentPro
|
|
|
16
16
|
children: [
|
|
17
17
|
/* @__PURE__ */ i("span", {
|
|
18
18
|
className: "text-[var(--color-text-primary)] font-medium",
|
|
19
|
-
children: c?.name || "Select Org"
|
|
19
|
+
children: c?.name || f("contextSwitcher.selectOrg", "Select Org")
|
|
20
20
|
}),
|
|
21
21
|
/* @__PURE__ */ i("span", {
|
|
22
22
|
className: "text-[var(--color-text-tertiary)]",
|
|
@@ -24,7 +24,7 @@ var o = ({ isOpen: o, compact: s, currentOrg: c, currentWorkspace: l, currentPro
|
|
|
24
24
|
}),
|
|
25
25
|
/* @__PURE__ */ i("span", {
|
|
26
26
|
className: "text-[var(--color-text-secondary)]",
|
|
27
|
-
children: l?.name || "Workspace"
|
|
27
|
+
children: l?.name || f("contextSwitcher.workspace", "Workspace")
|
|
28
28
|
}),
|
|
29
29
|
u && /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i("span", {
|
|
30
30
|
className: "text-[var(--color-text-tertiary)]",
|
|
@@ -1,34 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { useShellLabel as e } from "../../shared/providers/shell/useShellLabel.js";
|
|
2
|
+
import { SearchInput as t } from "./SearchInput.js";
|
|
3
|
+
import { EmptyState as n } from "./EmptyState.js";
|
|
4
|
+
import { BriefcaseIcon as r, CheckIcon as i } from "./icons.js";
|
|
5
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
5
6
|
//#region src/chrome/contextSwitcher/WorkspaceList.tsx
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
className: "
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
})
|
|
7
|
+
var s = ({ filteredWorkspaces: s, searchedWorkspaces: c, currentWorkspaceId: l, searchQuery: u, onSearchChange: d, onSelect: f, searchInputRef: p }) => {
|
|
8
|
+
let m = e();
|
|
9
|
+
return /* @__PURE__ */ o("div", {
|
|
10
|
+
className: "h-full flex flex-col",
|
|
11
|
+
children: [/* @__PURE__ */ a(t, {
|
|
12
|
+
value: u,
|
|
13
|
+
onChange: d,
|
|
14
|
+
placeholder: m("workspaces.list.searchPlaceholder", "Search workspaces..."),
|
|
15
|
+
inputRef: p
|
|
16
|
+
}), /* @__PURE__ */ a("div", {
|
|
17
|
+
className: "flex-1 overflow-y-auto py-1",
|
|
18
|
+
children: s.length === 0 ? /* @__PURE__ */ a(n, { message: m("contextSwitcher.noWorkspacesInOrganization", "No workspaces in this organization") }) : c.length > 0 ? c.map((e, t) => /* @__PURE__ */ o("button", {
|
|
19
|
+
onClick: () => f(e),
|
|
20
|
+
className: `w-full flex items-center gap-3 px-4 py-3 text-sm transition-all duration-200 ease-[var(--motion-easing-out)] animate-in fade-in-0 slide-in-from-left-2 ${e.id === l ? "bg-[var(--color-accent-soft)] text-text-primary font-medium" : "text-text-primary hover:bg-bg-sunken hover:translate-x-0.5"}`,
|
|
21
|
+
style: { animationDelay: `${t * 30}ms` },
|
|
22
|
+
children: [
|
|
23
|
+
/* @__PURE__ */ a(r, { className: "size-5 text-[var(--color-text-secondary)] flex-shrink-0" }),
|
|
24
|
+
/* @__PURE__ */ a("span", {
|
|
25
|
+
className: "flex-1 text-left truncate",
|
|
26
|
+
children: e.name
|
|
27
|
+
}),
|
|
28
|
+
e.id === l && /* @__PURE__ */ a(i, { className: "size-5 text-[var(--color-action-primary-bg)] flex-shrink-0 animate-in zoom-in-50 duration-200" })
|
|
29
|
+
]
|
|
30
|
+
}, e.id)) : /* @__PURE__ */ a(n, {
|
|
31
|
+
message: m("workspaces.list.emptyNoneTitle", "No workspaces found"),
|
|
32
|
+
isSearchResult: u.length > 0
|
|
33
|
+
})
|
|
34
|
+
})]
|
|
35
|
+
});
|
|
36
|
+
};
|
|
33
37
|
//#endregion
|
|
34
|
-
export {
|
|
38
|
+
export { s as WorkspaceList };
|