@burdenoff/fe-libs 2026.527.3 → 2026.527.4

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 (94) hide show
  1. package/dist/chrome/ContextSwitcher.js +90 -339
  2. package/dist/chrome/GlobalSearch.js +72 -456
  3. package/dist/chrome/NotificationCenter.js +69 -703
  4. package/dist/chrome/SideNavigation.js +73 -241
  5. package/dist/chrome/contextSwitcher/EmptyState.js +32 -0
  6. package/dist/chrome/contextSwitcher/OrganizationList.js +34 -0
  7. package/dist/chrome/contextSwitcher/ProjectList.js +34 -0
  8. package/dist/chrome/contextSwitcher/SearchInput.js +50 -0
  9. package/dist/chrome/contextSwitcher/TabButton.js +9 -0
  10. package/dist/chrome/contextSwitcher/TriggerButton.js +38 -0
  11. package/dist/chrome/contextSwitcher/WorkspaceList.js +34 -0
  12. package/dist/chrome/contextSwitcher/icons.js +58 -0
  13. package/dist/chrome/contextSwitcher/useIsMobile.js +11 -0
  14. package/dist/chrome/globalSearch/AdvancedFiltersPanel.js +253 -0
  15. package/dist/chrome/globalSearch/CategoryTabs.js +28 -0
  16. package/dist/chrome/globalSearch/ResultsList.js +58 -0
  17. package/dist/chrome/globalSearch/SearchInput.js +28 -0
  18. package/dist/chrome/globalSearch/SearchModeBar.js +36 -0
  19. package/dist/chrome/globalSearch/useAdvancedFilters.js +78 -0
  20. package/dist/chrome/globalSearch/utils.js +22 -0
  21. package/dist/chrome/notificationCenter/BellButton.js +27 -0
  22. package/dist/chrome/notificationCenter/NotificationCardItem.js +129 -0
  23. package/dist/chrome/notificationCenter/NotificationFilters.js +67 -0
  24. package/dist/chrome/notificationCenter/NotificationFooter.js +23 -0
  25. package/dist/chrome/notificationCenter/NotificationHeader.js +75 -0
  26. package/dist/chrome/notificationCenter/NotificationList.js +75 -0
  27. package/dist/chrome/notificationCenter/NotificationPanel.js +19 -0
  28. package/dist/chrome/notificationCenter/SkeletonCard.js +18 -0
  29. package/dist/chrome/notificationCenter/constants.js +93 -0
  30. package/dist/chrome/notificationCenter/gql.js +58 -0
  31. package/dist/chrome/notificationCenter/useNotificationCenter.js +149 -0
  32. package/dist/chrome/notificationCenter/usePanelChrome.js +36 -0
  33. package/dist/chrome/sideNavigation/CollapseToggle.js +29 -0
  34. package/dist/chrome/sideNavigation/MobileActionsBar.js +25 -0
  35. package/dist/chrome/sideNavigation/NavItemRenderer.js +79 -0
  36. package/dist/chrome/sideNavigation/SidebarHeader.js +29 -0
  37. package/dist/chrome/sideNavigation/helpers.js +19 -0
  38. package/dist/chrome/sideNavigation/useSideNavigationState.js +45 -0
  39. package/dist/shared/components/ContextConversationWidget.js +173 -767
  40. package/dist/shared/components/contextConversationWidget/Composer.js +66 -0
  41. package/dist/shared/components/contextConversationWidget/MessageItem.js +124 -0
  42. package/dist/shared/components/contextConversationWidget/MessageList.js +32 -0
  43. package/dist/shared/components/contextConversationWidget/NoWorkspaceCard.js +19 -0
  44. package/dist/shared/components/contextConversationWidget/PendingAttachmentsBar.js +28 -0
  45. package/dist/shared/components/contextConversationWidget/ReplyBanner.js +32 -0
  46. package/dist/shared/components/contextConversationWidget/WidgetHeader.js +70 -0
  47. package/dist/shared/components/contextConversationWidget/queries.js +197 -0
  48. package/dist/shared/components/contextConversationWidget/types.js +10 -0
  49. package/dist/shared/components/contextConversationWidget/useAttachmentUpload.js +57 -0
  50. package/dist/shared/components/contextConversationWidget/useConversationSubscriptions.js +26 -0
  51. package/dist/shared/components/contextConversationWidget/useMessageActions.js +34 -0
  52. package/dist/shared/components/contextConversationWidget/useSendMessage.js +45 -0
  53. package/dist/shared/components/contextConversationWidget/useWidgetMessages.js +44 -0
  54. package/dist/shared/components/contextConversationWidget/utils.js +56 -0
  55. package/dist/shared/pages/SearchPage.js +293 -1076
  56. package/dist/shared/pages/searchPage/ActiveFilterChips.js +176 -0
  57. package/dist/shared/pages/searchPage/FiltersPanel.js +329 -0
  58. package/dist/shared/pages/searchPage/ResultsList.js +119 -0
  59. package/dist/shared/pages/searchPage/ResultsStatus.js +32 -0
  60. package/dist/shared/pages/searchPage/SearchInput.js +31 -0
  61. package/dist/shared/pages/searchPage/SearchPagination.js +37 -0
  62. package/dist/shared/pages/searchPage/SearchToolbar.js +58 -0
  63. package/dist/shared/pages/searchPage/constants.js +155 -0
  64. package/dist/shared/pages/searchPage/utils.js +24 -0
  65. package/dist/shared/providers/shell/AuthProvider.js +130 -384
  66. package/dist/shared/providers/shell/authProvider/bridgeStateSync.js +34 -0
  67. package/dist/shared/providers/shell/authProvider/jwt.js +13 -0
  68. package/dist/shared/providers/shell/authProvider/ssoRelay.js +38 -0
  69. package/dist/shared/providers/shell/authProvider/useAuthActions.js +170 -0
  70. package/dist/shared/providers/shell/authProvider/useBridgeInitialization.js +86 -0
  71. package/dist/shared/providers/shell/authProvider/useRemoteSLO.js +32 -0
  72. package/dist/shared/providers/shell/authProvider/useStorageSync.js +35 -0
  73. package/dist/shared/providers/shell/authProvider/useTokenExpiryTimer.js +37 -0
  74. package/dist/shared/tours/TourTrigger.js +86 -262
  75. package/dist/shared/tours/ToursContext.js +108 -398
  76. package/dist/shared/tours/tourTrigger/DesktopTourDropdown.js +48 -0
  77. package/dist/shared/tours/tourTrigger/MobileTourSheet.js +68 -0
  78. package/dist/shared/tours/tourTrigger/TourListItemDesktop.js +36 -0
  79. package/dist/shared/tours/tourTrigger/TourListItemMobile.js +47 -0
  80. package/dist/shared/tours/tourTrigger/TourStatusChip.js +30 -0
  81. package/dist/shared/tours/tourTrigger/TourTriggerButton.js +22 -0
  82. package/dist/shared/tours/toursContext/errors.js +18 -0
  83. package/dist/shared/tours/toursContext/gql.js +152 -0
  84. package/dist/shared/tours/toursContext/route.js +20 -0
  85. package/dist/shared/tours/toursContext/session.js +19 -0
  86. package/dist/shared/tours/toursContext/useIdleReady.js +18 -0
  87. package/dist/shared/tours/toursContext/useTourMutations.js +118 -0
  88. package/dist/tag/TagsWidget.js +81 -226
  89. package/dist/tag/tagsWidget/AddTagTrigger.js +14 -0
  90. package/dist/tag/tagsWidget/TagBadgeList.js +17 -0
  91. package/dist/tag/tagsWidget/TagSearchPopover.js +80 -0
  92. package/dist/tag/tagsWidget/operations.js +64 -0
  93. package/dist/tag/tagsWidget/useVocabResolver.js +30 -0
  94. package/package.json +1 -1
@@ -0,0 +1,31 @@
1
+ import { Search as e, X as t } from "lucide-react";
2
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
3
+ //#region src/shared/pages/searchPage/SearchInput.tsx
4
+ function i({ inputValue: i, placeholder: a, onInputChange: o, onSubmit: s, onClear: c }) {
5
+ return /* @__PURE__ */ n("form", {
6
+ onSubmit: s,
7
+ className: "mb-6",
8
+ children: /* @__PURE__ */ r("div", {
9
+ className: "relative",
10
+ children: [
11
+ /* @__PURE__ */ n(e, { className: "absolute left-4 top-1/2 -translate-y-1/2 size-5 text-text-tertiary" }),
12
+ /* @__PURE__ */ n("input", {
13
+ type: "text",
14
+ value: i,
15
+ onChange: (e) => o(e.target.value),
16
+ placeholder: a,
17
+ className: "w-full h-12 pl-12 pr-12 text-lg rounded-lg border border-border-default bg-bg-surface text-text-primary placeholder:text-text-tertiary focus:outline-none focus:ring-2 focus:ring-primary-default focus:border-transparent",
18
+ autoFocus: !0
19
+ }),
20
+ i && /* @__PURE__ */ n("button", {
21
+ type: "button",
22
+ onClick: c,
23
+ className: "absolute right-4 top-1/2 -translate-y-1/2 p-1 rounded hover:bg-bg-muted transition-colors",
24
+ children: /* @__PURE__ */ n(t, { className: "size-4 text-text-tertiary" })
25
+ })
26
+ ]
27
+ })
28
+ });
29
+ }
30
+ //#endregion
31
+ export { i as SearchInput };
@@ -0,0 +1,37 @@
1
+ import { ChevronLeft as e, ChevronRight as t } from "lucide-react";
2
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
3
+ //#region src/shared/pages/searchPage/SearchPagination.tsx
4
+ function i({ currentPage: i, totalPages: a, hasMore: o, onPageChange: s }) {
5
+ return /* @__PURE__ */ r("div", {
6
+ className: "flex items-center justify-center gap-2 mt-8",
7
+ children: [
8
+ /* @__PURE__ */ r("button", {
9
+ type: "button",
10
+ onClick: () => s(Math.max(1, i - 1)),
11
+ disabled: i === 1,
12
+ className: "flex items-center gap-1 px-3 py-2 text-sm rounded-md border border-border-default bg-bg-surface text-text-secondary hover:bg-bg-muted disabled:opacity-50 disabled:cursor-not-allowed",
13
+ children: [/* @__PURE__ */ n(e, { className: "size-4" }), "Previous"]
14
+ }),
15
+ /* @__PURE__ */ n("div", {
16
+ className: "flex items-center gap-1",
17
+ children: Array.from({ length: Math.min(5, a) }, (e, t) => {
18
+ let r;
19
+ return r = a <= 5 || i <= 3 ? t + 1 : i >= a - 2 ? a - 4 + t : i - 2 + t, /* @__PURE__ */ n("button", {
20
+ onClick: () => s(r),
21
+ className: `w-9 h-9 text-sm rounded-md transition-colors ${i === r ? "bg-primary-default text-primary-foreground" : "border border-border-default bg-bg-surface text-text-secondary hover:bg-bg-muted"}`,
22
+ children: r
23
+ }, r);
24
+ })
25
+ }),
26
+ /* @__PURE__ */ r("button", {
27
+ type: "button",
28
+ onClick: () => s(Math.min(a, i + 1)),
29
+ disabled: i === a || !o,
30
+ className: "flex items-center gap-1 px-3 py-2 text-sm rounded-md border border-border-default bg-bg-surface text-text-secondary hover:bg-bg-muted disabled:opacity-50 disabled:cursor-not-allowed",
31
+ children: ["Next", /* @__PURE__ */ n(t, { className: "size-4" })]
32
+ })
33
+ ]
34
+ });
35
+ }
36
+ //#endregion
37
+ export { i as SearchPagination };
@@ -0,0 +1,58 @@
1
+ import { SEARCH_MODE_INFO as e, SORT_OPTIONS as t } from "./constants.js";
2
+ import { ArrowUpDown as n, ChevronDown as r, ChevronUp as i, SlidersHorizontal as a } from "lucide-react";
3
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
4
+ //#region src/shared/pages/searchPage/SearchToolbar.tsx
5
+ function c({ searchMode: c, sortBy: l, showFilters: u, activeFilterCount: d, onSearchModeChange: f, onSortByChange: p, onToggleFilters: m, onClearFilters: h }) {
6
+ return /* @__PURE__ */ s("div", {
7
+ className: "flex flex-wrap items-center gap-4 mb-6",
8
+ children: [
9
+ /* @__PURE__ */ o("div", {
10
+ className: "flex items-center gap-1 bg-bg-surface rounded-lg p-1 border border-border-default",
11
+ children: [
12
+ "PARTIAL",
13
+ "FULLTEXT",
14
+ "EXACT"
15
+ ].map((t) => /* @__PURE__ */ o("button", {
16
+ type: "button",
17
+ onClick: () => f(t),
18
+ className: `px-3 py-1.5 text-sm font-medium rounded-md transition-colors ${c === t ? "bg-primary-default text-primary-foreground" : "text-text-secondary hover:bg-bg-muted"}`,
19
+ title: e[t].description,
20
+ children: e[t].label
21
+ }, t))
22
+ }),
23
+ /* @__PURE__ */ s("div", {
24
+ className: "flex items-center gap-2",
25
+ children: [/* @__PURE__ */ o(n, { className: "size-4 text-text-tertiary" }), /* @__PURE__ */ o("select", {
26
+ value: l,
27
+ onChange: (e) => p(e.target.value),
28
+ className: "h-9 px-3 text-sm rounded-md border border-border-default bg-bg-surface text-text-primary focus:outline-none focus:ring-2 focus:ring-primary-default",
29
+ children: t.map((e) => /* @__PURE__ */ o("option", {
30
+ value: e.value,
31
+ children: e.label
32
+ }, e.value))
33
+ })]
34
+ }),
35
+ /* @__PURE__ */ s("button", {
36
+ onClick: m,
37
+ className: `flex items-center gap-2 px-3 py-2 text-sm rounded-md border transition-colors ${u || d > 0 ? "border-primary-default bg-primary-default/10 text-primary-default" : "border-border-default bg-bg-surface text-text-secondary hover:bg-bg-muted"}`,
38
+ children: [
39
+ /* @__PURE__ */ o(a, { className: "size-4" }),
40
+ "Filters",
41
+ d > 0 && /* @__PURE__ */ o("span", {
42
+ className: "ml-1 px-1.5 py-0.5 text-xs font-medium bg-primary-default text-primary-foreground rounded-full",
43
+ children: d
44
+ }),
45
+ o(u ? i : r, { className: "size-4" })
46
+ ]
47
+ }),
48
+ d > 0 && /* @__PURE__ */ o("button", {
49
+ type: "button",
50
+ onClick: h,
51
+ className: "text-sm text-text-secondary hover:text-text-primary underline",
52
+ children: "Clear all filters"
53
+ })
54
+ ]
55
+ });
56
+ }
57
+ //#endregion
58
+ export { c as SearchToolbar };
@@ -0,0 +1,155 @@
1
+ import { Calendar as e, CheckSquare as t, File as n, FileText as r, FolderKanban as i, LayoutGrid as a, MessageSquare as o, Server as s, Tag as c, Terminal as l, Users as u } from "lucide-react";
2
+ //#region src/shared/pages/searchPage/constants.ts
3
+ var d = {
4
+ UniversalTag: c,
5
+ TagVocabulary: c,
6
+ tag: c,
7
+ document: r,
8
+ file: n,
9
+ page: r,
10
+ member: u,
11
+ user: u,
12
+ "calendar-event": e,
13
+ meeting: e,
14
+ project: i,
15
+ conversation: o,
16
+ thread: o,
17
+ task: t,
18
+ projects: i,
19
+ workspaces: a,
20
+ workspace: a,
21
+ docs: r,
22
+ tags: c,
23
+ members: u,
24
+ calendar: e,
25
+ conversations: o,
26
+ tasks: t,
27
+ Agent: s,
28
+ agent: s,
29
+ agents: s,
30
+ Vibe: i,
31
+ vibe: i,
32
+ vibes: i,
33
+ Session: l,
34
+ session: l,
35
+ sessions: l,
36
+ Note: r,
37
+ note: r,
38
+ notes: r,
39
+ Target: s,
40
+ target: s,
41
+ targets: s
42
+ }, f = {
43
+ PARTIAL: {
44
+ label: "Partial",
45
+ description: "Matches prefixes and substrings (autocomplete)"
46
+ },
47
+ FULLTEXT: {
48
+ label: "Full-text",
49
+ description: "BM25 word matching with stemming"
50
+ },
51
+ EXACT: {
52
+ label: "Exact",
53
+ description: "All search terms must appear exactly"
54
+ }
55
+ }, p = [
56
+ {
57
+ value: "SCORE_DESC",
58
+ label: "Relevance"
59
+ },
60
+ {
61
+ value: "CREATED_DESC",
62
+ label: "Newest first"
63
+ },
64
+ {
65
+ value: "CREATED_ASC",
66
+ label: "Oldest first"
67
+ },
68
+ {
69
+ value: "UPDATED_DESC",
70
+ label: "Recently updated"
71
+ },
72
+ {
73
+ value: "UPDATED_ASC",
74
+ label: "Least recently updated"
75
+ },
76
+ {
77
+ value: "TITLE_ASC",
78
+ label: "Title A-Z"
79
+ },
80
+ {
81
+ value: "TITLE_DESC",
82
+ label: "Title Z-A"
83
+ }
84
+ ], m = [
85
+ {
86
+ value: "workspace",
87
+ label: "Workspaces"
88
+ },
89
+ {
90
+ value: "project",
91
+ label: "Projects"
92
+ },
93
+ {
94
+ value: "member",
95
+ label: "Members"
96
+ },
97
+ {
98
+ value: "user",
99
+ label: "Users"
100
+ },
101
+ {
102
+ value: "UniversalTag",
103
+ label: "Tags"
104
+ },
105
+ {
106
+ value: "TagVocabulary",
107
+ label: "Vocabularies"
108
+ },
109
+ {
110
+ value: "document",
111
+ label: "Documents"
112
+ },
113
+ {
114
+ value: "file",
115
+ label: "Files"
116
+ },
117
+ {
118
+ value: "task",
119
+ label: "Tasks"
120
+ },
121
+ {
122
+ value: "calendar-event",
123
+ label: "Calendar Events"
124
+ },
125
+ {
126
+ value: "conversation",
127
+ label: "Conversations"
128
+ },
129
+ {
130
+ value: "Agent",
131
+ label: "Agents"
132
+ },
133
+ {
134
+ value: "Vibe",
135
+ label: "Vibes"
136
+ },
137
+ {
138
+ value: "Session",
139
+ label: "Sessions"
140
+ },
141
+ {
142
+ value: "Note",
143
+ label: "Notes"
144
+ },
145
+ {
146
+ value: "Target",
147
+ label: "Targets"
148
+ }
149
+ ], h = [], g = {
150
+ key: "",
151
+ value: "",
152
+ operator: "EQUALS"
153
+ };
154
+ //#endregion
155
+ export { g as EMPTY_METADATA_CONDITION, d as ENTITY_TYPE_ICONS, m as ENTITY_TYPE_OPTIONS, h as PRODUCT_OPTIONS, f as SEARCH_MODE_INFO, p as SORT_OPTIONS };
@@ -0,0 +1,24 @@
1
+ //#region src/shared/pages/searchPage/utils.ts
2
+ function e(e) {
3
+ return e.split(",").map((e) => e.trim()).filter(Boolean);
4
+ }
5
+ function t(e) {
6
+ return e.length > 0 ? e.join(",") : void 0;
7
+ }
8
+ function n(e, t) {
9
+ if (!e) return t;
10
+ try {
11
+ return JSON.parse(e);
12
+ } catch {
13
+ return t;
14
+ }
15
+ }
16
+ function r(e) {
17
+ return (e ?? []).filter((e) => e.key?.trim() || e.value?.trim()).map((e) => ({
18
+ key: e.key ?? "",
19
+ value: e.value ?? "",
20
+ operator: e.operator ?? "EQUALS"
21
+ }));
22
+ }
23
+ //#endregion
24
+ export { r as normalizeMetadataConditions, n as safeParseJson, t as serializeCsv, e as splitCsv };