@burdenoff/fe-libs 2026.1018.1 → 2026.1019.2

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