@burdenoff/fe-libs 2026.527.2 → 2026.527.3
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/button/Button.js +18 -16
- package/dist/chrome/AccountSwitcher.js +10 -7
- package/dist/chrome/AutoBreadcrumbs.js +2 -0
- package/dist/chrome/Breadcrumbs.js +2 -0
- package/dist/chrome/CommandPalette.js +5 -3
- package/dist/chrome/ContextSwitcher.js +12 -11
- package/dist/chrome/DynamicFooter.js +7 -7
- package/dist/chrome/Footer.js +5 -5
- package/dist/chrome/GeographySwitcher.js +3 -3
- package/dist/chrome/GlobalSearch.js +18 -9
- package/dist/chrome/HeaderBar.js +6 -1
- package/dist/chrome/LanguagePickerSheet.js +1 -1
- package/dist/chrome/LanguageSwitcher.js +2 -2
- package/dist/chrome/NotificationCenter.js +19 -10
- package/dist/chrome/PanelTabs.js +7 -4
- package/dist/chrome/PluginContextMenuTarget.js +1 -1
- package/dist/chrome/ProductPickerSheet.js +4 -4
- package/dist/chrome/ProductSideNav.js +1 -1
- package/dist/chrome/ProductSwitcher.js +3 -3
- package/dist/chrome/ProfileSwitcher.js +13 -8
- package/dist/chrome/ShortcutHelpDialog.js +2 -1
- package/dist/chrome/SideNavigation.js +7 -3
- package/dist/chrome/Sidebar.js +1 -0
- package/dist/form/Checkbox.js +17 -15
- package/dist/form/FormDescription.js +9 -10
- package/dist/form/FormField.js +11 -12
- package/dist/form/FormLabel.js +13 -13
- package/dist/form/FormMessage.js +10 -11
- package/dist/form/Input.js +11 -10
- package/dist/form/Radio.js +25 -21
- package/dist/form/Select.js +81 -66
- package/dist/form/Textarea.js +10 -9
- package/dist/shared/components/AccessDenied.js +8 -4
- package/dist/shared/components/AppErrorBoundary.js +2 -0
- package/dist/shared/components/ContextConversationWidget.js +15 -15
- package/dist/shared/components/ErrorFallback.js +3 -0
- package/dist/shared/components/PWAInstallBanner.js +8 -4
- package/dist/shared/components/RequireAuth.js +4 -4
- package/dist/shared/components/SSORedirectGuard.js +1 -1
- package/dist/shared/feature-flags/FeatureFlagProvider.js +21 -21
- package/dist/shared/geography/GeographyProvider.js +20 -20
- package/dist/shared/graphql/GatewayContext.js +1 -1
- package/dist/shared/motion/MotionList.js +1 -1
- package/dist/shared/pages/AiPage.js +3 -3
- package/dist/shared/pages/SearchPage.js +38 -33
- package/dist/shared/plugins/PluginRuntimeProvider.js +1 -1
- package/dist/shared/providers/shell/ActiveContextProvider.js +12 -12
- package/dist/shared/providers/shell/AppShellContext.js +1 -1
- package/dist/shared/providers/shell/AuthProvider.js +17 -17
- package/dist/shared/providers/shell/AuthTokenProvider.js +6 -6
- package/dist/shared/providers/shell/ContextManagerProvider.js +1 -1
- package/dist/shared/providers/shell/FeatureFlagsProvider.js +5 -5
- package/dist/shared/providers/shell/GlobalUiProvider.js +17 -17
- package/dist/shared/providers/shell/I18nProvider.js +15 -15
- package/dist/shared/providers/shell/PageConversationContextProvider.js +14 -14
- package/dist/shared/providers/shell/PermissionProvider.js +16 -16
- package/dist/shared/providers/shell/ShellUiProvider.js +13 -13
- package/dist/shared/providers/shell/ThemeProvider.js +9 -9
- package/dist/shared/tours/TourPlayer.js +1 -0
- package/dist/shared/tours/TourPlayerProvider.js +1 -1
- package/dist/shared/tours/TourTooltip.js +3 -0
- package/dist/shared/tours/TourTrigger.js +12 -9
- package/dist/shared/tours/ToursContext.js +11 -11
- package/dist/shared-events.js +3 -3
- package/dist/shared-hooks.js +1 -1
- package/dist/storage/SaveToFilesButton.js +3 -3
- package/dist/storage/SaveToFilesDialog.js +1 -1
- package/dist/tag/TagBadge.js +1 -1
- package/dist/tag/TagsWidget.js +6 -6
- package/dist/ui/card.js +44 -39
- package/dist/ui/dropdown-menu.js +82 -66
- package/dist/ui/input.js +10 -10
- package/dist/ui/label.js +13 -11
- package/dist/ui/select.js +80 -66
- package/dist/ui/table.js +61 -54
- package/dist/ui/textarea.js +9 -9
- package/dist/ui/tooltip.js +13 -11
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useTourPlayer as e } from "./useTourPlayer.js";
|
|
2
2
|
import { TourSpotlight as t } from "./TourSpotlight.js";
|
|
3
3
|
import { TourTooltip as n } from "./TourTooltip.js";
|
|
4
|
-
import { createContext as r,
|
|
4
|
+
import { createContext as r, use as i, useEffect as a } from "react";
|
|
5
5
|
import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
6
6
|
//#region src/shared/tours/TourPlayerProvider.tsx
|
|
7
7
|
var l = r(null);
|
|
@@ -166,6 +166,7 @@ var u = e(function({ step: e, stepIndex: s, totalSteps: u, onNext: d, onPrevious
|
|
|
166
166
|
backgroundColor: "#f9fafb"
|
|
167
167
|
},
|
|
168
168
|
children: [/* @__PURE__ */ i("button", {
|
|
169
|
+
type: "button",
|
|
169
170
|
onClick: p,
|
|
170
171
|
style: {
|
|
171
172
|
padding: "8px 12px",
|
|
@@ -186,6 +187,7 @@ var u = e(function({ step: e, stepIndex: s, totalSteps: u, onNext: d, onPrevious
|
|
|
186
187
|
gap: 8
|
|
187
188
|
},
|
|
188
189
|
children: [g && /* @__PURE__ */ i("button", {
|
|
190
|
+
type: "button",
|
|
189
191
|
onClick: f,
|
|
190
192
|
style: {
|
|
191
193
|
padding: "8px 16px",
|
|
@@ -205,6 +207,7 @@ var u = e(function({ step: e, stepIndex: s, totalSteps: u, onNext: d, onPrevious
|
|
|
205
207
|
},
|
|
206
208
|
children: "Previous"
|
|
207
209
|
}), /* @__PURE__ */ i("button", {
|
|
210
|
+
type: "button",
|
|
208
211
|
onClick: _ ? m : d,
|
|
209
212
|
disabled: !h,
|
|
210
213
|
style: {
|
|
@@ -163,7 +163,7 @@ function N({ pathname: r, navigateTo: i }) {
|
|
|
163
163
|
"aria-expanded": a,
|
|
164
164
|
"aria-haspopup": "true",
|
|
165
165
|
title: "Help & Tours",
|
|
166
|
-
children: [/* @__PURE__ */ _(f, { className: "
|
|
166
|
+
children: [/* @__PURE__ */ _(f, { className: "size-5" }), U && /* @__PURE__ */ _("span", { className: "absolute top-1 right-1 size-2 bg-action-primary-bg rounded-full" })]
|
|
167
167
|
}),
|
|
168
168
|
a && b && /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _("div", {
|
|
169
169
|
className: "fixed inset-0 bg-black/50 z-[100] animate-in fade-in duration-200",
|
|
@@ -180,28 +180,30 @@ function N({ pathname: r, navigateTo: i }) {
|
|
|
180
180
|
className: "flex items-center justify-between px-4 pb-3 border-b border-border-subtle",
|
|
181
181
|
children: [/* @__PURE__ */ v("div", {
|
|
182
182
|
className: "flex items-center gap-2",
|
|
183
|
-
children: [/* @__PURE__ */ _(m, { className: "
|
|
183
|
+
children: [/* @__PURE__ */ _(m, { className: "size-5 text-action-primary-bg" }), /* @__PURE__ */ _("h2", {
|
|
184
184
|
className: "text-lg font-semibold text-text-primary",
|
|
185
185
|
children: "Product Tours"
|
|
186
186
|
})]
|
|
187
187
|
}), /* @__PURE__ */ _("button", {
|
|
188
|
+
type: "button",
|
|
188
189
|
onClick: () => y(!1),
|
|
189
190
|
className: "p-2 hover:bg-action-ghost-bg-hover rounded-full",
|
|
190
191
|
"aria-label": "Close",
|
|
191
|
-
children: /* @__PURE__ */ _(h, { className: "
|
|
192
|
+
children: /* @__PURE__ */ _(h, { className: "size-5" })
|
|
192
193
|
})]
|
|
193
194
|
}),
|
|
194
195
|
/* @__PURE__ */ _("div", {
|
|
195
196
|
className: "flex-1 overflow-y-auto p-4",
|
|
196
197
|
children: I ? /* @__PURE__ */ _("div", {
|
|
197
198
|
className: "flex items-center justify-center py-8",
|
|
198
|
-
children: /* @__PURE__ */ _("div", { className: "animate-spin rounded-full
|
|
199
|
+
children: /* @__PURE__ */ _("div", { className: "animate-spin rounded-full size-6 border-2 border-action-primary-bg border-t-transparent" })
|
|
199
200
|
}) : H.length > 0 ? /* @__PURE__ */ v("div", {
|
|
200
201
|
className: "space-y-3",
|
|
201
202
|
children: [/* @__PURE__ */ _("p", {
|
|
202
203
|
className: "text-sm text-text-secondary mb-4",
|
|
203
204
|
children: "Take a guided tour. Current-page tours are shown first."
|
|
204
205
|
}), H.map((e) => /* @__PURE__ */ _("button", {
|
|
206
|
+
type: "button",
|
|
205
207
|
onClick: () => B(e),
|
|
206
208
|
className: "w-full p-4 bg-bg-muted hover:bg-action-ghost-bg-hover rounded-xl transition-colors text-left group",
|
|
207
209
|
children: /* @__PURE__ */ v("div", {
|
|
@@ -235,14 +237,14 @@ function N({ pathname: r, navigateTo: i }) {
|
|
|
235
237
|
]
|
|
236
238
|
}), /* @__PURE__ */ _("div", {
|
|
237
239
|
className: "ml-3 p-2 bg-action-primary-bg rounded-full text-action-primary-text group-hover:scale-110 transition-transform",
|
|
238
|
-
children: /* @__PURE__ */ _(p, { className: "
|
|
240
|
+
children: /* @__PURE__ */ _(p, { className: "size-4" })
|
|
239
241
|
})]
|
|
240
242
|
})
|
|
241
243
|
}, e.id))]
|
|
242
244
|
}) : /* @__PURE__ */ v("div", {
|
|
243
245
|
className: "text-center py-8",
|
|
244
246
|
children: [
|
|
245
|
-
/* @__PURE__ */ _(f, { className: "
|
|
247
|
+
/* @__PURE__ */ _(f, { className: "size-12 mx-auto text-text-tertiary mb-3" }),
|
|
246
248
|
/* @__PURE__ */ _("p", {
|
|
247
249
|
className: "text-text-secondary",
|
|
248
250
|
children: "No tours available for this page"
|
|
@@ -263,7 +265,7 @@ function N({ pathname: r, navigateTo: i }) {
|
|
|
263
265
|
children: [
|
|
264
266
|
/* @__PURE__ */ v("div", {
|
|
265
267
|
className: "flex items-center gap-2 px-4 py-3 border-b border-border-subtle",
|
|
266
|
-
children: [/* @__PURE__ */ _(m, { className: "
|
|
268
|
+
children: [/* @__PURE__ */ _(m, { className: "size-4 text-action-primary-bg" }), /* @__PURE__ */ _("h3", {
|
|
267
269
|
className: "font-medium text-text-primary",
|
|
268
270
|
children: "Product Tours"
|
|
269
271
|
})]
|
|
@@ -272,10 +274,11 @@ function N({ pathname: r, navigateTo: i }) {
|
|
|
272
274
|
className: "max-h-80 overflow-y-auto",
|
|
273
275
|
children: I ? /* @__PURE__ */ _("div", {
|
|
274
276
|
className: "flex items-center justify-center py-6",
|
|
275
|
-
children: /* @__PURE__ */ _("div", { className: "animate-spin rounded-full
|
|
277
|
+
children: /* @__PURE__ */ _("div", { className: "animate-spin rounded-full size-5 border-2 border-action-primary-bg border-t-transparent" })
|
|
276
278
|
}) : H.length > 0 ? /* @__PURE__ */ _("div", {
|
|
277
279
|
className: "p-2",
|
|
278
280
|
children: H.map((e) => /* @__PURE__ */ _("button", {
|
|
281
|
+
type: "button",
|
|
279
282
|
onClick: () => B(e),
|
|
280
283
|
className: "w-full p-3 hover:bg-action-ghost-bg-hover rounded-md transition-colors text-left group",
|
|
281
284
|
children: /* @__PURE__ */ v("div", {
|
|
@@ -299,7 +302,7 @@ function N({ pathname: r, navigateTo: i }) {
|
|
|
299
302
|
children: /* @__PURE__ */ v("span", { children: [e.steps?.length || 0, " steps"] })
|
|
300
303
|
})
|
|
301
304
|
]
|
|
302
|
-
}), /* @__PURE__ */ _(d, { className: "
|
|
305
|
+
}), /* @__PURE__ */ _(d, { className: "size-4 text-text-tertiary group-hover:text-action-primary-bg group-hover:translate-x-0.5 transition-all" })]
|
|
303
306
|
})
|
|
304
307
|
}, e.id))
|
|
305
308
|
}) : /* @__PURE__ */ _("div", {
|
|
@@ -8,7 +8,7 @@ import "../../shared-logger.js";
|
|
|
8
8
|
import { detectDeviceType as a } from "./types.js";
|
|
9
9
|
import { isTourVisibleForContext as o } from "./routeCatalog.js";
|
|
10
10
|
import { withTourProgressStatus as s } from "./progress.js";
|
|
11
|
-
import { createContext as c,
|
|
11
|
+
import { createContext as c, use as l, useCallback as u, useEffect as d, useMemo as f, useRef as p, useState as m } from "react";
|
|
12
12
|
import { jsx as ee } from "react/jsx-runtime";
|
|
13
13
|
import { gql as h } from "@apollo/client/core";
|
|
14
14
|
import { useLocation as te } from "react-router-dom";
|
|
@@ -209,10 +209,10 @@ function le(e, t, n, r) {
|
|
|
209
209
|
};
|
|
210
210
|
}
|
|
211
211
|
var w = c(null);
|
|
212
|
-
function T({ children: a, defaultPageId: c = "home", getPageIdFromPath:
|
|
213
|
-
let g = te(), _ = e("global"), { workspaceId: x } = n(), { user: S } = t(), { productSlug: T } = r(), E = i("ToursContext"), D = x ?? void 0, O = h || g.pathname.startsWith("/devportal"), { moduleId: k, pageId: A } = f(() => le(g.pathname, T, c,
|
|
212
|
+
function T({ children: a, defaultPageId: c = "home", getPageIdFromPath: l, disabled: h = !1 }) {
|
|
213
|
+
let g = te(), _ = e("global"), { workspaceId: x } = n(), { user: S } = t(), { productSlug: T } = r(), E = i("ToursContext"), D = x ?? void 0, O = h || g.pathname.startsWith("/devportal"), { moduleId: k, pageId: A } = f(() => le(g.pathname, T, c, l), [
|
|
214
214
|
c,
|
|
215
|
-
|
|
215
|
+
l,
|
|
216
216
|
g.pathname,
|
|
217
217
|
T
|
|
218
218
|
]), [j, M] = m([]), [N, P] = m(!1), [F, I] = m(null), [L, ue] = m(!1);
|
|
@@ -231,7 +231,7 @@ function T({ children: a, defaultPageId: c = "home", getPageIdFromPath: u, disab
|
|
|
231
231
|
d(() => (U.current = !0, () => {
|
|
232
232
|
U.current = !1;
|
|
233
233
|
}), []);
|
|
234
|
-
let K =
|
|
234
|
+
let K = u(async (e = !1) => {
|
|
235
235
|
if (!L && !e) return;
|
|
236
236
|
if (O) {
|
|
237
237
|
U.current && (M([]), P(!1), I(null));
|
|
@@ -312,7 +312,7 @@ function T({ children: a, defaultPageId: c = "home", getPageIdFromPath: u, disab
|
|
|
312
312
|
}, [K]), d(() => {
|
|
313
313
|
R.current = j;
|
|
314
314
|
}, [j]);
|
|
315
|
-
let J =
|
|
315
|
+
let J = u(() => {
|
|
316
316
|
K(!0);
|
|
317
317
|
}, [K]), Y = f(() => j.filter((e) => e.isActive && e.steps?.length > 0 && o(e, {
|
|
318
318
|
productId: T,
|
|
@@ -323,7 +323,7 @@ function T({ children: a, defaultPageId: c = "home", getPageIdFromPath: u, disab
|
|
|
323
323
|
k,
|
|
324
324
|
A,
|
|
325
325
|
T
|
|
326
|
-
]), X = f(() => L ? Y.find((e) => e.triggerType === "AUTO_FIRST_VISIT" || e.triggerType === "AUTO_ALWAYS") ?? null : null, [Y, L]), Z =
|
|
326
|
+
]), X = f(() => L ? Y.find((e) => e.triggerType === "AUTO_FIRST_VISIT" || e.triggerType === "AUTO_ALWAYS") ?? null : null, [Y, L]), Z = u(async (e, t, n) => {
|
|
327
327
|
if (!_ || !S?.id) return;
|
|
328
328
|
let r = t === "started" ? "IN_PROGRESS" : t === "completed" ? "COMPLETED" : "SKIPPED", i = R.current.find((t) => t.id === e)?.myProgress, a = z.current + 1;
|
|
329
329
|
z.current = a, B.current.set(e, a), M((t) => {
|
|
@@ -371,7 +371,7 @@ function T({ children: a, defaultPageId: c = "home", getPageIdFromPath: u, disab
|
|
|
371
371
|
} finally {
|
|
372
372
|
B.current.get(e) === a && B.current.delete(e);
|
|
373
373
|
}
|
|
374
|
-
}, [_, S?.id]), Q =
|
|
374
|
+
}, [_, S?.id]), Q = u(async (e, t) => {
|
|
375
375
|
if (!(!_ || !S?.id || !t)) try {
|
|
376
376
|
await _.mutate({
|
|
377
377
|
mutation: ae,
|
|
@@ -382,7 +382,7 @@ function T({ children: a, defaultPageId: c = "home", getPageIdFromPath: u, disab
|
|
|
382
382
|
}
|
|
383
383
|
});
|
|
384
384
|
} catch {}
|
|
385
|
-
}, [_, S?.id]), $ =
|
|
385
|
+
}, [_, S?.id]), $ = u(async (e, t, n) => {
|
|
386
386
|
if (!(!_ || !S?.id)) try {
|
|
387
387
|
await _.mutate({
|
|
388
388
|
mutation: oe,
|
|
@@ -453,12 +453,12 @@ function T({ children: a, defaultPageId: c = "home", getPageIdFromPath: u, disab
|
|
|
453
453
|
});
|
|
454
454
|
}
|
|
455
455
|
function E() {
|
|
456
|
-
let e =
|
|
456
|
+
let e = l(w);
|
|
457
457
|
if (!e) throw Error("useToursContext must be used within a ToursProvider");
|
|
458
458
|
return e;
|
|
459
459
|
}
|
|
460
460
|
function D() {
|
|
461
|
-
return
|
|
461
|
+
return l(w) || {
|
|
462
462
|
tours: [],
|
|
463
463
|
pageTours: [],
|
|
464
464
|
loading: !1,
|
package/dist/shared-events.js
CHANGED
|
@@ -5,7 +5,7 @@ import { BackendAuditSink as r } from "./shared/events/sinks/BackendAuditSink.js
|
|
|
5
5
|
import { RybbitSink as i } from "./shared/events/sinks/RybbitSink.js";
|
|
6
6
|
import { OtelBrowserSink as a } from "./shared/events/sinks/OtelBrowserSink.js";
|
|
7
7
|
import "./shared/events/sinks/index.js";
|
|
8
|
-
import { createContext as o,
|
|
8
|
+
import { createContext as o, use as s, useCallback as c, useEffect as l, useMemo as u } from "react";
|
|
9
9
|
import { jsx as d } from "react/jsx-runtime";
|
|
10
10
|
//#region src/shared/events/index.tsx
|
|
11
11
|
var f = o({
|
|
@@ -122,7 +122,7 @@ function v({ appName: e, appVersion: t = "0.0.0", appEnv: n = "dev", sourceMfe:
|
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
124
|
function y() {
|
|
125
|
-
return
|
|
125
|
+
return s(f);
|
|
126
126
|
}
|
|
127
127
|
function b(e, t) {
|
|
128
128
|
let n = y();
|
|
@@ -134,7 +134,7 @@ function b(e, t) {
|
|
|
134
134
|
}
|
|
135
135
|
function x(e, t) {
|
|
136
136
|
let n = y();
|
|
137
|
-
return
|
|
137
|
+
return c((r) => n.emit(e, r, t), [
|
|
138
138
|
n,
|
|
139
139
|
e,
|
|
140
140
|
t
|
package/dist/shared-hooks.js
CHANGED
|
@@ -28,7 +28,7 @@ import { useHasAnimated as J } from "./shared/hooks/useHasAnimated.js";
|
|
|
28
28
|
import { useReferralAttribution as Y } from "./shared/hooks/useReferralAttribution.js";
|
|
29
29
|
import { useRecordProductVisit as X } from "./shared/hooks/useRecordProductVisit.js";
|
|
30
30
|
import { QUOTA_EXHAUSTED_EVENT as Z, dispatchQuotaExhausted as Q, useQuotaErrorToast as ne } from "./shared/hooks/useQuotaErrorToast.js";
|
|
31
|
-
import re, {
|
|
31
|
+
import re, { use as ie } from "react";
|
|
32
32
|
//#region src/shared/hooks/index.ts
|
|
33
33
|
var $ = re.createContext(null);
|
|
34
34
|
function ae() {
|
|
@@ -19,7 +19,7 @@ function p({ source: p, defaultFolderPath: m, onDownload: h, onSaved: g, label:
|
|
|
19
19
|
onClick: () => void h(),
|
|
20
20
|
"data-testid": `${y}-download`,
|
|
21
21
|
className: "rounded-r-none",
|
|
22
|
-
children: [/* @__PURE__ */ u(s, { className: "mr-1.5
|
|
22
|
+
children: [/* @__PURE__ */ u(s, { className: "mr-1.5 size-3.5" }), _]
|
|
23
23
|
}), /* @__PURE__ */ d(t, { children: [/* @__PURE__ */ u(i, {
|
|
24
24
|
asChild: !0,
|
|
25
25
|
children: /* @__PURE__ */ u(e, {
|
|
@@ -36,11 +36,11 @@ function p({ source: p, defaultFolderPath: m, onDownload: h, onSaved: g, label:
|
|
|
36
36
|
children: [/* @__PURE__ */ d(r, {
|
|
37
37
|
onSelect: () => void h(),
|
|
38
38
|
"data-testid": `${y}-menu-download`,
|
|
39
|
-
children: [/* @__PURE__ */ u(s, { className: "mr-2
|
|
39
|
+
children: [/* @__PURE__ */ u(s, { className: "mr-2 size-3.5" }), "Download"]
|
|
40
40
|
}), /* @__PURE__ */ d(r, {
|
|
41
41
|
onSelect: () => S(!0),
|
|
42
42
|
"data-testid": `${y}-menu-save`,
|
|
43
|
-
children: [/* @__PURE__ */ u(c, { className: "mr-2
|
|
43
|
+
children: [/* @__PURE__ */ u(c, { className: "mr-2 size-3.5" }), "Save to Files…"]
|
|
44
44
|
})]
|
|
45
45
|
})] })]
|
|
46
46
|
}), /* @__PURE__ */ u(a, {
|
|
@@ -79,7 +79,7 @@ function g({ open: g, onOpenChange: _, source: v, defaultFolderPath: y, filename
|
|
|
79
79
|
} catch {}
|
|
80
80
|
},
|
|
81
81
|
"data-testid": "save-to-files-save",
|
|
82
|
-
children: T ? /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m(l, { className: "mr-2
|
|
82
|
+
children: T ? /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m(l, { className: "mr-2 size-3" }), "Saving…"] }) : "Save"
|
|
83
83
|
})] })
|
|
84
84
|
] })
|
|
85
85
|
});
|
package/dist/tag/TagBadge.js
CHANGED
|
@@ -35,7 +35,7 @@ function u({ label: u, icon: d, color: f, description: p, removable: m = !1, onC
|
|
|
35
35
|
},
|
|
36
36
|
className: "flex-shrink-0 ml-0.5 rounded-full p-0.5 hover:bg-black/10 dark:hover:bg-white/10 transition-colors",
|
|
37
37
|
"aria-label": `Remove ${u}`,
|
|
38
|
-
children: /* @__PURE__ */ s(o, { className: "
|
|
38
|
+
children: /* @__PURE__ */ s(o, { className: "size-3" })
|
|
39
39
|
})
|
|
40
40
|
]
|
|
41
41
|
});
|
package/dist/tag/TagsWidget.js
CHANGED
|
@@ -192,7 +192,7 @@ function S({ entityType: g, entityId: S, workspaceId: de, tags: C, onAdd: w, onR
|
|
|
192
192
|
type: "button",
|
|
193
193
|
"aria-label": "Add tag",
|
|
194
194
|
className: t("inline-flex items-center gap-1 px-2 py-0.5 rounded-full border border-dashed", "border-border text-muted-foreground text-xs", "hover:border-foreground hover:text-foreground transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"),
|
|
195
|
-
children: [/* @__PURE__ */ m(f, { className: "
|
|
195
|
+
children: [/* @__PURE__ */ m(f, { className: "size-3" }), /* @__PURE__ */ m("span", { children: C.length === 0 ? "Add tags" : "Add" })]
|
|
196
196
|
})
|
|
197
197
|
}), /* @__PURE__ */ m(ne, {
|
|
198
198
|
className: "w-64 p-0",
|
|
@@ -205,14 +205,14 @@ function S({ entityType: g, entityId: S, workspaceId: de, tags: C, onAdd: w, onR
|
|
|
205
205
|
/* @__PURE__ */ h("div", {
|
|
206
206
|
className: "flex items-center border-b border-border px-3",
|
|
207
207
|
children: [
|
|
208
|
-
/* @__PURE__ */ m(d, { className: "
|
|
208
|
+
/* @__PURE__ */ m(d, { className: "size-4 shrink-0 text-muted-foreground" }),
|
|
209
209
|
/* @__PURE__ */ m(a, {
|
|
210
210
|
placeholder: "Search or create a tag...",
|
|
211
211
|
value: A,
|
|
212
212
|
onValueChange: _e,
|
|
213
213
|
className: "h-9 flex-1 border-0 bg-transparent px-2 text-sm outline-none placeholder:text-muted-foreground"
|
|
214
214
|
}),
|
|
215
|
-
V && /* @__PURE__ */ m(l, { className: "
|
|
215
|
+
V && /* @__PURE__ */ m(l, { className: "size-3.5 shrink-0 animate-spin text-muted-foreground" })
|
|
216
216
|
]
|
|
217
217
|
}),
|
|
218
218
|
/* @__PURE__ */ h(ee, {
|
|
@@ -237,7 +237,7 @@ function S({ entityType: g, entityId: S, workspaceId: de, tags: C, onAdd: w, onR
|
|
|
237
237
|
style: e.color ? { color: e.color } : void 0,
|
|
238
238
|
children: e.label
|
|
239
239
|
}),
|
|
240
|
-
q && /* @__PURE__ */ m(l, { className: "ml-auto
|
|
240
|
+
q && /* @__PURE__ */ m(l, { className: "ml-auto size-3 animate-spin" })
|
|
241
241
|
]
|
|
242
242
|
}, e.id)) }),
|
|
243
243
|
$ && /* @__PURE__ */ m(i, { children: /* @__PURE__ */ h(o, {
|
|
@@ -245,7 +245,7 @@ function S({ entityType: g, entityId: S, workspaceId: de, tags: C, onAdd: w, onR
|
|
|
245
245
|
onSelect: () => void ve(),
|
|
246
246
|
className: "flex items-center gap-2 px-3 py-2 cursor-pointer text-primary",
|
|
247
247
|
disabled: K,
|
|
248
|
-
children: [K ? /* @__PURE__ */ m(l, { className: "
|
|
248
|
+
children: [K ? /* @__PURE__ */ m(l, { className: "size-3.5 animate-spin" }) : /* @__PURE__ */ m(u, { className: "size-3.5" }), /* @__PURE__ */ m("span", {
|
|
249
249
|
className: "text-sm truncate",
|
|
250
250
|
children: K ? "Creating..." : `Create "${A}"`
|
|
251
251
|
})]
|
|
@@ -263,7 +263,7 @@ function S({ entityType: g, entityId: S, workspaceId: de, tags: C, onAdd: w, onR
|
|
|
263
263
|
!z && /* @__PURE__ */ h("div", {
|
|
264
264
|
className: "border-t border-border px-3 py-2 text-xs text-muted-foreground flex items-center gap-1",
|
|
265
265
|
children: [
|
|
266
|
-
/* @__PURE__ */ m(p, { className: "
|
|
266
|
+
/* @__PURE__ */ m(p, { className: "size-3" }),
|
|
267
267
|
"Maximum ",
|
|
268
268
|
O,
|
|
269
269
|
" tags reached"
|
package/dist/ui/card.js
CHANGED
|
@@ -1,42 +1,47 @@
|
|
|
1
1
|
import { cn as e } from "../shared-utils.js";
|
|
2
|
-
import {
|
|
3
|
-
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
4
3
|
//#region src/ui/card.tsx
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
i
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
4
|
+
function n({ ref: n, className: r, ...i }) {
|
|
5
|
+
return /* @__PURE__ */ t("div", {
|
|
6
|
+
ref: n,
|
|
7
|
+
className: e("rounded-lg border bg-card text-card-foreground shadow-sm transition-all duration-200 ease-out hover:shadow-md hover:border-border-default/80", r),
|
|
8
|
+
...i
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
function r({ ref: n, className: r, ...i }) {
|
|
12
|
+
return /* @__PURE__ */ t("div", {
|
|
13
|
+
ref: n,
|
|
14
|
+
className: e("flex flex-col space-y-1.5 p-6", r),
|
|
15
|
+
...i
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function i({ ref: n, className: r, ...i }) {
|
|
19
|
+
return /* @__PURE__ */ t("h3", {
|
|
20
|
+
ref: n,
|
|
21
|
+
className: e("text-2xl font-semibold leading-none tracking-tight", r),
|
|
22
|
+
...i
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function a({ ref: n, className: r, ...i }) {
|
|
26
|
+
return /* @__PURE__ */ t("p", {
|
|
27
|
+
ref: n,
|
|
28
|
+
className: e("text-sm text-muted-foreground", r),
|
|
29
|
+
...i
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function o({ ref: n, className: r, ...i }) {
|
|
33
|
+
return /* @__PURE__ */ t("div", {
|
|
34
|
+
ref: n,
|
|
35
|
+
className: e("p-6 pt-0", r),
|
|
36
|
+
...i
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function s({ ref: n, className: r, ...i }) {
|
|
40
|
+
return /* @__PURE__ */ t("div", {
|
|
41
|
+
ref: n,
|
|
42
|
+
className: e("flex items-center p-6 pt-0", r),
|
|
43
|
+
...i
|
|
44
|
+
});
|
|
45
|
+
}
|
|
41
46
|
//#endregion
|
|
42
|
-
export {
|
|
47
|
+
export { n as Card, o as CardContent, a as CardDescription, s as CardFooter, r as CardHeader, i as CardTitle };
|
package/dist/ui/dropdown-menu.js
CHANGED
|
@@ -1,72 +1,88 @@
|
|
|
1
1
|
import { cn as e } from "../shared-utils.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import * as s from "@radix-ui/react-dropdown-menu";
|
|
2
|
+
import { Check as t, ChevronRight as n, Circle as r } from "lucide-react";
|
|
3
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
4
|
+
import * as o from "@radix-ui/react-dropdown-menu";
|
|
6
5
|
//#region src/ui/dropdown-menu.tsx
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}));
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
|
|
6
|
+
var s = o.Root, c = o.Trigger, l = o.Group, u = o.Portal, d = o.Sub, f = o.RadioGroup;
|
|
7
|
+
function p({ ref: t, className: r, inset: s, children: c, ...l }) {
|
|
8
|
+
return /* @__PURE__ */ a(o.SubTrigger, {
|
|
9
|
+
ref: t,
|
|
10
|
+
className: e("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent", s && "pl-8", r),
|
|
11
|
+
...l,
|
|
12
|
+
children: [c, /* @__PURE__ */ i(n, { className: "ml-auto size-4" })]
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
p.displayName = o.SubTrigger.displayName;
|
|
16
|
+
function m({ ref: t, className: n, ...r }) {
|
|
17
|
+
return /* @__PURE__ */ i(o.SubContent, {
|
|
18
|
+
ref: t,
|
|
19
|
+
className: e("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", n),
|
|
20
|
+
...r
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
m.displayName = o.SubContent.displayName;
|
|
24
|
+
function h({ ref: t, className: n, sideOffset: r = 4, ...a }) {
|
|
25
|
+
return /* @__PURE__ */ i(o.Portal, { children: /* @__PURE__ */ i(o.Content, {
|
|
26
|
+
ref: t,
|
|
27
|
+
sideOffset: r,
|
|
28
|
+
className: e("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", n),
|
|
29
|
+
...a
|
|
30
|
+
}) });
|
|
31
|
+
}
|
|
32
|
+
h.displayName = o.Content.displayName;
|
|
33
|
+
function g({ ref: t, className: n, inset: r, ...a }) {
|
|
34
|
+
return /* @__PURE__ */ i(o.Item, {
|
|
35
|
+
ref: t,
|
|
36
|
+
className: e("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", r && "pl-8", n),
|
|
37
|
+
...a
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
g.displayName = o.Item.displayName;
|
|
41
|
+
function _({ ref: n, className: r, children: s, checked: c, ...l }) {
|
|
42
|
+
return /* @__PURE__ */ a(o.CheckboxItem, {
|
|
43
|
+
ref: n,
|
|
44
|
+
className: e("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", r),
|
|
45
|
+
checked: c,
|
|
46
|
+
...l,
|
|
47
|
+
children: [/* @__PURE__ */ i("span", {
|
|
48
|
+
className: "absolute left-2 flex size-3.5 items-center justify-center",
|
|
49
|
+
children: /* @__PURE__ */ i(o.ItemIndicator, { children: /* @__PURE__ */ i(t, { className: "size-4" }) })
|
|
50
|
+
}), s]
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
_.displayName = o.CheckboxItem.displayName;
|
|
54
|
+
function v({ ref: t, className: n, children: s, ...c }) {
|
|
55
|
+
return /* @__PURE__ */ a(o.RadioItem, {
|
|
56
|
+
ref: t,
|
|
57
|
+
className: e("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", n),
|
|
58
|
+
...c,
|
|
59
|
+
children: [/* @__PURE__ */ i("span", {
|
|
60
|
+
className: "absolute left-2 flex size-3.5 items-center justify-center",
|
|
61
|
+
children: /* @__PURE__ */ i(o.ItemIndicator, { children: /* @__PURE__ */ i(r, { className: "size-2 fill-current" }) })
|
|
62
|
+
}), s]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
v.displayName = o.RadioItem.displayName;
|
|
66
|
+
function y({ ref: t, className: n, inset: r, ...a }) {
|
|
67
|
+
return /* @__PURE__ */ i(o.Label, {
|
|
68
|
+
ref: t,
|
|
69
|
+
className: e("px-2 py-1.5 text-sm font-semibold", r && "pl-8", n),
|
|
70
|
+
...a
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
y.displayName = o.Label.displayName;
|
|
74
|
+
function b({ ref: t, className: n, ...r }) {
|
|
75
|
+
return /* @__PURE__ */ i(o.Separator, {
|
|
76
|
+
ref: t,
|
|
77
|
+
className: e("-mx-1 my-1 h-px bg-muted", n),
|
|
78
|
+
...r
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
b.displayName = o.Separator.displayName;
|
|
82
|
+
var x = ({ className: t, ...n }) => /* @__PURE__ */ i("span", {
|
|
67
83
|
className: e("ml-auto text-xs tracking-widest opacity-60", t),
|
|
68
84
|
...n
|
|
69
85
|
});
|
|
70
|
-
|
|
86
|
+
x.displayName = "DropdownMenuShortcut";
|
|
71
87
|
//#endregion
|
|
72
|
-
export {
|
|
88
|
+
export { s as DropdownMenu, _ as DropdownMenuCheckboxItem, h as DropdownMenuContent, l as DropdownMenuGroup, g as DropdownMenuItem, y as DropdownMenuLabel, u as DropdownMenuPortal, f as DropdownMenuRadioGroup, v as DropdownMenuRadioItem, b as DropdownMenuSeparator, x as DropdownMenuShortcut, d as DropdownMenuSub, m as DropdownMenuSubContent, p as DropdownMenuSubTrigger, c as DropdownMenuTrigger };
|
package/dist/ui/input.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { cn as e } from "../shared-utils.js";
|
|
2
|
-
import {
|
|
3
|
-
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
4
3
|
//#region src/ui/input.tsx
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
4
|
+
function n({ ref: n, className: r, type: i, ...a }) {
|
|
5
|
+
return /* @__PURE__ */ t("input", {
|
|
6
|
+
type: i,
|
|
7
|
+
className: e("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", r),
|
|
8
|
+
ref: n,
|
|
9
|
+
...a
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
12
|
//#endregion
|
|
13
|
-
export {
|
|
13
|
+
export { n as Input };
|