@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.
Files changed (59) 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/ui/AssistantMarkdownRenderer.d.ts +6 -6
  44. package/dist/shared/assistant/ui/AssistantMarkdownRenderer.js +86 -85
  45. package/dist/shared/assistant/ui/AssistantMessageItem.js +101 -96
  46. package/dist/shared/assistant/ui/WorkflowAssistantPanel.js +152 -140
  47. package/dist/shared/events/sinks/RybbitSink.js +2 -2
  48. package/dist/shared/providers/shell/authProvider/useAuthActions.d.ts +19 -0
  49. package/dist/shared/providers/shell/authProvider/useAuthActions.js +97 -91
  50. package/dist/shared/providers/shell/interpolateShellLabel.d.ts +3 -0
  51. package/dist/shared/providers/shell/interpolateShellLabel.js +11 -0
  52. package/dist/shared/providers/shell/useAssistantShellLabels.d.ts +45 -0
  53. package/dist/shared/providers/shell/useAssistantShellLabels.js +54 -0
  54. package/dist/shared/tours/TourPlayer.js +33 -32
  55. package/dist/shared/tours/TourTooltip.js +108 -109
  56. package/dist/shared/tours/tourTrigger/MobileTourSheet.js +98 -85
  57. package/dist/shared/tours/tourTrigger/TourListItemDesktop.js +20 -18
  58. package/dist/shared/tours/tourTrigger/TourListItemMobile.js +23 -25
  59. package/package.json +3 -3
@@ -1,253 +1,255 @@
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/globalSearch/AdvancedFiltersPanel.tsx
3
- function n({ filters: n }) {
4
- return /* @__PURE__ */ t("div", {
4
+ function r({ filters: r }) {
5
+ let i = e();
6
+ return /* @__PURE__ */ n("div", {
5
7
  className: "px-3 py-2 border-b border-border-subtle space-y-2 bg-bg-sunken/40 max-h-64 overflow-y-auto",
6
8
  children: [
7
- /* @__PURE__ */ t("div", {
9
+ /* @__PURE__ */ n("div", {
8
10
  className: "flex items-center gap-2",
9
- children: [/* @__PURE__ */ e("label", {
11
+ children: [/* @__PURE__ */ t("label", {
10
12
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
11
- children: "Sort by"
12
- }), /* @__PURE__ */ t("select", {
13
- value: n.sortBy,
14
- onChange: (e) => n.setSortBy(e.target.value),
13
+ children: i("search.sortBy", "Sort by")
14
+ }), /* @__PURE__ */ n("select", {
15
+ value: r.sortBy,
16
+ onChange: (e) => r.setSortBy(e.target.value),
15
17
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong scheme-normal dark:scheme-dark transition-colors [&_option]:bg-bg-surface [&_option]:text-text-primary",
16
18
  children: [
17
- /* @__PURE__ */ e("option", {
19
+ /* @__PURE__ */ t("option", {
18
20
  value: "SCORE_DESC",
19
- children: "Relevance"
21
+ children: i("search.relevance", "Relevance")
20
22
  }),
21
- /* @__PURE__ */ e("option", {
23
+ /* @__PURE__ */ t("option", {
22
24
  value: "CREATED_DESC",
23
- children: "Newest first"
25
+ children: i("search.newestFirst", "Newest first")
24
26
  }),
25
- /* @__PURE__ */ e("option", {
27
+ /* @__PURE__ */ t("option", {
26
28
  value: "CREATED_ASC",
27
- children: "Oldest first"
29
+ children: i("search.oldestFirst", "Oldest first")
28
30
  }),
29
- /* @__PURE__ */ e("option", {
31
+ /* @__PURE__ */ t("option", {
30
32
  value: "UPDATED_DESC",
31
- children: "Recently updated"
33
+ children: i("search.recentlyUpdated", "Recently updated")
32
34
  }),
33
- /* @__PURE__ */ e("option", {
35
+ /* @__PURE__ */ t("option", {
34
36
  value: "UPDATED_ASC",
35
- children: "Least recently updated"
37
+ children: i("search.leastRecentlyUpdated", "Least recently updated")
36
38
  }),
37
- /* @__PURE__ */ e("option", {
39
+ /* @__PURE__ */ t("option", {
38
40
  value: "TITLE_ASC",
39
- children: "Title A-Z"
41
+ children: i("search.titleAZ", "Title A-Z")
40
42
  }),
41
- /* @__PURE__ */ e("option", {
43
+ /* @__PURE__ */ t("option", {
42
44
  value: "TITLE_DESC",
43
- children: "Title Z-A"
45
+ children: i("search.titleZA", "Title Z-A")
44
46
  })
45
47
  ]
46
48
  })]
47
49
  }),
48
- /* @__PURE__ */ t("div", {
50
+ /* @__PURE__ */ n("div", {
49
51
  className: "flex items-center gap-2",
50
- children: [/* @__PURE__ */ e("label", {
52
+ children: [/* @__PURE__ */ t("label", {
51
53
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
52
- children: "Products"
53
- }), /* @__PURE__ */ e("input", {
54
- "aria-label": "Product sources filter",
54
+ children: i("search.products", "Products")
55
+ }), /* @__PURE__ */ t("input", {
56
+ "aria-label": i("search.productSourcesFilter", "Product sources filter"),
55
57
  type: "text",
56
58
  placeholder: "vibecontrols, wspace-tags",
57
- value: n.productSourcesInput,
58
- onChange: (e) => n.setProductSourcesInput(e.target.value),
59
+ value: r.productSourcesInput,
60
+ onChange: (e) => r.setProductSourcesInput(e.target.value),
59
61
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong placeholder:text-text-placeholder transition-colors"
60
62
  })]
61
63
  }),
62
- /* @__PURE__ */ t("div", {
64
+ /* @__PURE__ */ n("div", {
63
65
  className: "flex items-center gap-2",
64
- children: [/* @__PURE__ */ e("label", {
66
+ children: [/* @__PURE__ */ t("label", {
65
67
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
66
- children: "Project"
67
- }), /* @__PURE__ */ e("input", {
68
- "aria-label": "Project ID filter",
68
+ children: i("contextSwitcher.project", "Project")
69
+ }), /* @__PURE__ */ t("input", {
70
+ "aria-label": i("search.projectIDFilter", "Project ID filter"),
69
71
  type: "text",
70
- placeholder: "Project ID",
71
- value: n.projectId,
72
- onChange: (e) => n.setProjectId(e.target.value),
72
+ placeholder: i("projectDetail.projectId", "Project ID"),
73
+ value: r.projectId,
74
+ onChange: (e) => r.setProjectId(e.target.value),
73
75
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong placeholder:text-text-placeholder transition-colors"
74
76
  })]
75
77
  }),
76
- /* @__PURE__ */ t("div", {
78
+ /* @__PURE__ */ n("div", {
77
79
  className: "flex items-center gap-2",
78
- children: [/* @__PURE__ */ e("label", {
80
+ children: [/* @__PURE__ */ t("label", {
79
81
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
80
- children: "Created by"
81
- }), /* @__PURE__ */ e("input", {
82
+ children: i("search.createdBy", "Created by")
83
+ }), /* @__PURE__ */ t("input", {
82
84
  type: "text",
83
- placeholder: "Actor ID",
84
- value: n.createdBy,
85
- onChange: (e) => n.setCreatedBy(e.target.value),
85
+ placeholder: i("rbac.checker.form.actorId.label", "Actor ID"),
86
+ value: r.createdBy,
87
+ onChange: (e) => r.setCreatedBy(e.target.value),
86
88
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong placeholder:text-text-placeholder transition-colors"
87
89
  })]
88
90
  }),
89
- /* @__PURE__ */ t("div", {
91
+ /* @__PURE__ */ n("div", {
90
92
  className: "flex items-center gap-2",
91
- children: [/* @__PURE__ */ e("label", {
93
+ children: [/* @__PURE__ */ t("label", {
92
94
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
93
- children: "Updated by"
94
- }), /* @__PURE__ */ e("input", {
95
- "aria-label": "Updated by filter",
95
+ children: i("search.updatedBy", "Updated by")
96
+ }), /* @__PURE__ */ t("input", {
97
+ "aria-label": i("search.updatedByFilter", "Updated by filter"),
96
98
  type: "text",
97
- placeholder: "Actor ID",
98
- value: n.updatedBy,
99
- onChange: (e) => n.setUpdatedBy(e.target.value),
99
+ placeholder: i("rbac.checker.form.actorId.label", "Actor ID"),
100
+ value: r.updatedBy,
101
+ onChange: (e) => r.setUpdatedBy(e.target.value),
100
102
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong placeholder:text-text-placeholder transition-colors"
101
103
  })]
102
104
  }),
103
- /* @__PURE__ */ t("div", {
105
+ /* @__PURE__ */ n("div", {
104
106
  className: "flex items-center gap-2",
105
- children: [/* @__PURE__ */ e("label", {
107
+ children: [/* @__PURE__ */ t("label", {
106
108
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
107
- children: "Date from"
108
- }), /* @__PURE__ */ e("input", {
109
+ children: i("search.dateFrom", "Date from")
110
+ }), /* @__PURE__ */ t("input", {
109
111
  type: "date",
110
- value: n.dateFrom,
111
- onChange: (e) => n.setDateFrom(e.target.value),
112
+ value: r.dateFrom,
113
+ onChange: (e) => r.setDateFrom(e.target.value),
112
114
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong transition-colors"
113
115
  })]
114
116
  }),
115
- /* @__PURE__ */ t("div", {
117
+ /* @__PURE__ */ n("div", {
116
118
  className: "flex items-center gap-2",
117
- children: [/* @__PURE__ */ e("label", {
119
+ children: [/* @__PURE__ */ t("label", {
118
120
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
119
- children: "Date to"
120
- }), /* @__PURE__ */ e("input", {
121
+ children: i("search.dateTo", "Date to")
122
+ }), /* @__PURE__ */ t("input", {
121
123
  type: "date",
122
- value: n.dateTo,
123
- onChange: (e) => n.setDateTo(e.target.value),
124
+ value: r.dateTo,
125
+ onChange: (e) => r.setDateTo(e.target.value),
124
126
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong transition-colors"
125
127
  })]
126
128
  }),
127
- /* @__PURE__ */ t("div", {
129
+ /* @__PURE__ */ n("div", {
128
130
  className: "flex items-center gap-2",
129
- children: [/* @__PURE__ */ e("label", {
131
+ children: [/* @__PURE__ */ t("label", {
130
132
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
131
- children: "Updated from"
132
- }), /* @__PURE__ */ e("input", {
133
- "aria-label": "Updated from date",
133
+ children: i("search.updatedFrom", "Updated from")
134
+ }), /* @__PURE__ */ t("input", {
135
+ "aria-label": i("search.updatedFromDate", "Updated from date"),
134
136
  type: "date",
135
- value: n.updatedDateFrom,
136
- onChange: (e) => n.setUpdatedDateFrom(e.target.value),
137
+ value: r.updatedDateFrom,
138
+ onChange: (e) => r.setUpdatedDateFrom(e.target.value),
137
139
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong transition-colors"
138
140
  })]
139
141
  }),
140
- /* @__PURE__ */ t("div", {
142
+ /* @__PURE__ */ n("div", {
141
143
  className: "flex items-center gap-2",
142
- children: [/* @__PURE__ */ e("label", {
144
+ children: [/* @__PURE__ */ t("label", {
143
145
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
144
- children: "Updated to"
145
- }), /* @__PURE__ */ e("input", {
146
- "aria-label": "Updated to date",
146
+ children: i("search.updatedTo", "Updated to")
147
+ }), /* @__PURE__ */ t("input", {
148
+ "aria-label": i("search.updatedToDate", "Updated to date"),
147
149
  type: "date",
148
- value: n.updatedDateTo,
149
- onChange: (e) => n.setUpdatedDateTo(e.target.value),
150
+ value: r.updatedDateTo,
151
+ onChange: (e) => r.setUpdatedDateTo(e.target.value),
150
152
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong transition-colors"
151
153
  })]
152
154
  }),
153
- /* @__PURE__ */ t("div", {
155
+ /* @__PURE__ */ n("div", {
154
156
  className: "flex items-center gap-2",
155
- children: [/* @__PURE__ */ e("label", {
157
+ children: [/* @__PURE__ */ t("label", {
156
158
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
157
- children: "Tag keys"
158
- }), /* @__PURE__ */ e("input", {
159
- "aria-label": "Tag keys filter",
159
+ children: i("search.tagKeys", "Tag keys")
160
+ }), /* @__PURE__ */ t("input", {
161
+ "aria-label": i("search.tagKeysFilter", "Tag keys filter"),
160
162
  type: "text",
161
163
  placeholder: "search, team/platform",
162
- value: n.tagKeysInput,
163
- onChange: (e) => n.setTagKeysInput(e.target.value),
164
+ value: r.tagKeysInput,
165
+ onChange: (e) => r.setTagKeysInput(e.target.value),
164
166
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong placeholder:text-text-placeholder transition-colors"
165
167
  })]
166
168
  }),
167
- /* @__PURE__ */ t("div", {
169
+ /* @__PURE__ */ n("div", {
168
170
  className: "flex items-center gap-2",
169
- children: [/* @__PURE__ */ e("label", {
171
+ children: [/* @__PURE__ */ t("label", {
170
172
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
171
- children: "Tag IDs"
172
- }), /* @__PURE__ */ e("input", {
173
- "aria-label": "Tag IDs filter",
173
+ children: i("search.tagIDs", "Tag IDs")
174
+ }), /* @__PURE__ */ t("input", {
175
+ "aria-label": i("search.tagIDsFilter", "Tag IDs filter"),
174
176
  type: "text",
175
- placeholder: "Comma-separated IDs",
176
- value: n.tagIdsInput,
177
- onChange: (e) => n.setTagIdsInput(e.target.value),
177
+ placeholder: i("search.commaSeparatedIDs", "Comma-separated IDs"),
178
+ value: r.tagIdsInput,
179
+ onChange: (e) => r.setTagIdsInput(e.target.value),
178
180
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong placeholder:text-text-placeholder transition-colors"
179
181
  })]
180
182
  }),
181
- /* @__PURE__ */ t("div", {
183
+ /* @__PURE__ */ n("div", {
182
184
  className: "flex items-center gap-2",
183
- children: [/* @__PURE__ */ e("label", {
185
+ children: [/* @__PURE__ */ t("label", {
184
186
  className: "text-[10px] font-medium text-text-muted w-16 flex-shrink-0",
185
- children: "Tag paths"
186
- }), /* @__PURE__ */ e("input", {
187
- "aria-label": "Tag hierarchy filter",
187
+ children: i("search.tagPaths", "Tag paths")
188
+ }), /* @__PURE__ */ t("input", {
189
+ "aria-label": i("search.tagHierarchyFilter", "Tag hierarchy filter"),
188
190
  type: "text",
189
191
  placeholder: "team/engineering",
190
- value: n.tagPathsInput,
191
- onChange: (e) => n.setTagPathsInput(e.target.value),
192
+ value: r.tagPathsInput,
193
+ onChange: (e) => r.setTagPathsInput(e.target.value),
192
194
  className: "flex-1 h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong placeholder:text-text-placeholder transition-colors"
193
195
  })]
194
196
  }),
195
- /* @__PURE__ */ t("div", {
197
+ /* @__PURE__ */ n("div", {
196
198
  className: "grid grid-cols-[1fr_auto_1fr] gap-2 items-center",
197
199
  children: [
198
- /* @__PURE__ */ e("input", {
199
- "aria-label": "Metadata key filter",
200
+ /* @__PURE__ */ t("input", {
201
+ "aria-label": i("search.metadataKeyFilter", "Metadata key filter"),
200
202
  type: "text",
201
203
  placeholder: "metadata.path",
202
- value: n.metadataKey,
203
- onChange: (e) => n.setMetadataKey(e.target.value),
204
+ value: r.metadataKey,
205
+ onChange: (e) => r.setMetadataKey(e.target.value),
204
206
  className: "h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong placeholder:text-text-placeholder transition-colors"
205
207
  }),
206
- /* @__PURE__ */ t("select", {
207
- "aria-label": "Metadata operator filter",
208
- value: n.metadataOperator,
209
- onChange: (e) => n.setMetadataOperator(e.target.value),
208
+ /* @__PURE__ */ n("select", {
209
+ "aria-label": i("search.metadataOperatorFilter", "Metadata operator filter"),
210
+ value: r.metadataOperator,
211
+ onChange: (e) => r.setMetadataOperator(e.target.value),
210
212
  className: "h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong scheme-normal dark:scheme-dark transition-colors [&_option]:bg-bg-surface [&_option]:text-text-primary",
211
213
  children: [
212
- /* @__PURE__ */ e("option", {
214
+ /* @__PURE__ */ t("option", {
213
215
  value: "EQUALS",
214
216
  children: "="
215
217
  }),
216
- /* @__PURE__ */ e("option", {
218
+ /* @__PURE__ */ t("option", {
217
219
  value: "NOT_EQUALS",
218
220
  children: "≠"
219
221
  }),
220
- /* @__PURE__ */ e("option", {
222
+ /* @__PURE__ */ t("option", {
221
223
  value: "CONTAINS",
222
- children: "contains"
224
+ children: i("search.contains", "contains")
223
225
  }),
224
- /* @__PURE__ */ e("option", {
226
+ /* @__PURE__ */ t("option", {
225
227
  value: "STARTS_WITH",
226
- children: "starts"
228
+ children: i("search.starts", "starts")
227
229
  })
228
230
  ]
229
231
  }),
230
- /* @__PURE__ */ e("input", {
231
- "aria-label": "Metadata value filter",
232
+ /* @__PURE__ */ t("input", {
233
+ "aria-label": i("search.metadataValueFilter", "Metadata value filter"),
232
234
  type: "text",
233
- placeholder: "Value",
234
- value: n.metadataValue,
235
- onChange: (e) => n.setMetadataValue(e.target.value),
235
+ placeholder: i("search.value", "Value"),
236
+ value: r.metadataValue,
237
+ onChange: (e) => r.setMetadataValue(e.target.value),
236
238
  className: "h-7 text-xs rounded-input border border-border-subtle bg-bg-surface text-text-primary px-2 outline-none focus:border-border-strong placeholder:text-text-placeholder transition-colors"
237
239
  })
238
240
  ]
239
241
  }),
240
- /* @__PURE__ */ e("div", {
242
+ /* @__PURE__ */ t("div", {
241
243
  className: "flex justify-end",
242
- children: /* @__PURE__ */ e("button", {
244
+ children: /* @__PURE__ */ t("button", {
243
245
  type: "button",
244
- onClick: n.reset,
246
+ onClick: r.reset,
245
247
  className: "text-[10px] text-text-muted hover:text-text-primary transition-colors",
246
- children: "Clear filters"
248
+ children: i("common.clearFilters", "Clear filters")
247
249
  })
248
250
  })
249
251
  ]
250
252
  });
251
253
  }
252
254
  //#endregion
253
- export { n as AdvancedFiltersPanel };
255
+ export { r as AdvancedFiltersPanel };
@@ -1,50 +1,48 @@
1
- import { Clock as e, Loader2 as t } from "lucide-react";
2
- import { jsx as n, jsxs as r } from "react/jsx-runtime";
1
+ import { useShellLabel as e } from "../../shared/providers/shell/useShellLabel.js";
2
+ import { Clock as t, Loader2 as n } from "lucide-react";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
3
4
  //#region src/chrome/globalSearch/ResultsList.tsx
4
- function i({ loading: i, error: a, query: o, results: s, groupedResults: c, recentSearches: l, onRecentSelect: u, onResultSelect: d }) {
5
- return /* @__PURE__ */ r("div", {
5
+ function a({ loading: a, error: o, query: s, results: c, groupedResults: l, recentSearches: u, onRecentSelect: d, onResultSelect: f }) {
6
+ let p = e();
7
+ return /* @__PURE__ */ i("div", {
6
8
  className: "max-h-[60dvh] overflow-y-auto p-2",
7
9
  children: [
8
- i && /* @__PURE__ */ n("div", {
10
+ a && /* @__PURE__ */ r("div", {
9
11
  className: "flex items-center justify-center py-6",
10
- children: /* @__PURE__ */ n(t, { className: "size-4 animate-spin" })
12
+ children: /* @__PURE__ */ r(n, { className: "size-4 animate-spin" })
11
13
  }),
12
- a && /* @__PURE__ */ n("div", {
14
+ o && /* @__PURE__ */ r("div", {
13
15
  className: "py-6 text-center text-sm text-status-error-text",
14
- children: a
16
+ children: o
15
17
  }),
16
- !i && !a && !o && l.length > 0 && /* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("div", {
18
+ !a && !o && !s && u.length > 0 && /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("div", {
17
19
  className: "px-2 py-1.5 text-[11px] font-medium uppercase tracking-wider text-text-muted",
18
- children: "Recent Searches"
19
- }), l.map((t, i) => /* @__PURE__ */ r("button", {
20
+ children: p("search.recentSearches", "Recent Searches")
21
+ }), u.map((e, n) => /* @__PURE__ */ i("button", {
20
22
  type: "button",
21
- onClick: () => u(t),
23
+ onClick: () => d(e),
22
24
  className: "w-full flex items-center gap-2 px-2 py-2 text-sm rounded-button text-text-secondary hover:bg-bg-sunken hover:text-text-primary transition-colors text-left",
23
- children: [/* @__PURE__ */ n(e, { className: "size-4 opacity-50" }), t]
24
- }, i))] }),
25
- !i && !a && o && s.length === 0 && /* @__PURE__ */ r("div", {
25
+ children: [/* @__PURE__ */ r(t, { className: "size-4 opacity-50" }), e]
26
+ }, n))] }),
27
+ !a && !o && s && c.length === 0 && /* @__PURE__ */ r("div", {
26
28
  className: "py-6 text-center text-sm text-text-muted",
27
- children: [
28
- "No results found for \"",
29
- o,
30
- "\""
31
- ]
29
+ children: p("search.noResultsFor", "No results found for \"{{query}}\"", { query: s })
32
30
  }),
33
- !i && !a && Object.entries(c).map(([e, t]) => /* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("div", {
31
+ !a && !o && Object.entries(l).map(([e, t]) => /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ r("div", {
34
32
  className: "px-2 py-1.5 text-[11px] font-medium uppercase tracking-wider text-text-muted",
35
33
  children: e
36
34
  }), t.map((e) => {
37
35
  let t = e.icon;
38
- return /* @__PURE__ */ r("button", {
36
+ return /* @__PURE__ */ i("button", {
39
37
  type: "button",
40
- onClick: () => d(e),
38
+ onClick: () => f(e),
41
39
  className: "w-full flex items-start gap-2 px-2 py-2 text-sm rounded-button text-text-secondary hover:bg-bg-sunken hover:text-text-primary transition-colors text-left",
42
- children: [t && /* @__PURE__ */ n(t, { className: "size-4 mt-0.5 flex-shrink-0" }), /* @__PURE__ */ r("div", {
40
+ children: [t && /* @__PURE__ */ r(t, { className: "size-4 mt-0.5 flex-shrink-0" }), /* @__PURE__ */ i("div", {
43
41
  className: "flex-1 min-w-0",
44
- children: [/* @__PURE__ */ n("div", {
42
+ children: [/* @__PURE__ */ r("div", {
45
43
  className: "font-medium truncate text-text-primary",
46
44
  children: e.title
47
- }), e.description && /* @__PURE__ */ n("div", {
45
+ }), e.description && /* @__PURE__ */ r("div", {
48
46
  className: "text-xs text-text-muted truncate",
49
47
  children: e.description
50
48
  })]
@@ -55,4 +53,4 @@ function i({ loading: i, error: a, query: o, results: s, groupedResults: c, rece
55
53
  });
56
54
  }
57
55
  //#endregion
58
- export { i as ResultsList };
56
+ export { a as ResultsList };
@@ -1,28 +1,30 @@
1
- import { Search as e, X as t } from "lucide-react";
2
- import { jsx as n, jsxs as r } from "react/jsx-runtime";
1
+ import { useShellLabel as e } from "../../shared/providers/shell/useShellLabel.js";
2
+ import { Search as t, X as n } from "lucide-react";
3
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
3
4
  //#region src/chrome/globalSearch/SearchInput.tsx
4
- function i({ value: i, placeholder: a, onChange: o, onClear: s }) {
5
- return /* @__PURE__ */ r("div", {
5
+ function a({ value: a, placeholder: o, onChange: s, onClear: c }) {
6
+ let l = e();
7
+ return /* @__PURE__ */ i("div", {
6
8
  className: "flex items-center border-b border-border-subtle px-4",
7
9
  children: [
8
- /* @__PURE__ */ n(e, { className: "size-4 mr-2 flex-shrink-0 text-text-muted" }),
9
- /* @__PURE__ */ n("input", {
10
+ /* @__PURE__ */ r(t, { className: "size-4 mr-2 flex-shrink-0 text-text-muted" }),
11
+ /* @__PURE__ */ r("input", {
10
12
  type: "text",
11
- placeholder: a,
12
- value: i,
13
- onChange: (e) => o(e.target.value),
13
+ placeholder: o,
14
+ value: a,
15
+ onChange: (e) => s(e.target.value),
14
16
  className: "flex-1 bg-transparent py-3.5 text-sm text-text-primary outline-none placeholder:text-text-placeholder",
15
17
  autoFocus: !0
16
18
  }),
17
- i && /* @__PURE__ */ n("button", {
19
+ a && /* @__PURE__ */ r("button", {
18
20
  type: "button",
19
- onClick: s,
21
+ onClick: c,
20
22
  className: "ml-2 rounded-button p-1 text-text-muted hover:bg-bg-sunken hover:text-text-primary transition-colors",
21
- "aria-label": "Clear search",
22
- children: /* @__PURE__ */ n(t, { className: "size-4" })
23
+ "aria-label": l("common.clearSearch", "Clear search"),
24
+ children: /* @__PURE__ */ r(n, { className: "size-4" })
23
25
  })
24
26
  ]
25
27
  });
26
28
  }
27
29
  //#endregion
28
- export { i as SearchInput };
30
+ export { a as SearchInput };