@timbal-ai/timbal-react 1.6.0 → 1.7.0
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/CHANGELOG.md +39 -0
- package/README.md +8 -0
- package/dist/app.cjs +167 -75
- package/dist/app.d.cts +3 -3
- package/dist/app.d.ts +3 -3
- package/dist/app.esm.js +5 -5
- package/dist/{chart-artifact-VAqgH-My.d.cts → chart-artifact-CuTiCITz.d.cts} +230 -15
- package/dist/{chart-artifact-C2pZQsaP.d.ts → chart-artifact-U-x0UNJm.d.ts} +230 -15
- package/dist/chat.esm.js +3 -3
- package/dist/{chunk-YYEI6XME.esm.js → chunk-22KWC2LS.esm.js} +5 -5
- package/dist/{chunk-MBS7XHV2.esm.js → chunk-45NXD3IG.esm.js} +3 -3
- package/dist/{chunk-24B4I4XC.esm.js → chunk-64RHAJVG.esm.js} +1 -1
- package/dist/{chunk-WQIQW7EM.esm.js → chunk-7AGIAQE6.esm.js} +1 -1
- package/dist/{chunk-NO5AWNWT.esm.js → chunk-7WU3IKAN.esm.js} +1 -1
- package/dist/{chunk-6SQMTBPL.esm.js → chunk-M5IBJBEY.esm.js} +109 -23
- package/dist/{chunk-HSL36SJ4.esm.js → chunk-PMMI7LBV.esm.js} +20 -8
- package/dist/{chunk-TMP7RIA7.esm.js → chunk-VKXOHVDE.esm.js} +2 -2
- package/dist/{chunk-ELEY66OH.esm.js → chunk-XOCOZU7J.esm.js} +11 -1
- package/dist/cli/timbal-ui-lint.mjs +534 -0
- package/dist/index.cjs +303 -200
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.esm.js +9 -9
- package/dist/{kanban-FFBeaZPS.d.cts → kanban-BQxWliCS.d.cts} +17 -0
- package/dist/{kanban-FFBeaZPS.d.ts → kanban-BQxWliCS.d.ts} +17 -0
- package/dist/studio.cjs +104 -85
- package/dist/studio.esm.js +6 -6
- package/dist/ui.cjs +6 -6
- package/dist/ui.d.cts +1 -1
- package/dist/ui.d.ts +1 -1
- package/dist/ui.esm.js +4 -4
- package/package.json +13 -3
package/dist/studio.cjs
CHANGED
|
@@ -5466,9 +5466,9 @@ var TimbalChatShell = ({
|
|
|
5466
5466
|
};
|
|
5467
5467
|
|
|
5468
5468
|
// src/studio/shell/studio-shell.tsx
|
|
5469
|
-
var
|
|
5469
|
+
var import_react50 = require("react");
|
|
5470
5470
|
var import_lucide_react14 = require("lucide-react");
|
|
5471
|
-
var
|
|
5471
|
+
var import_react51 = require("motion/react");
|
|
5472
5472
|
|
|
5473
5473
|
// src/design/sidebar-motion.ts
|
|
5474
5474
|
var STUDIO_SIDEBAR_EASE_ENTER = [0, 0, 0.2, 1];
|
|
@@ -5651,11 +5651,19 @@ function useStudioSidebarLayout() {
|
|
|
5651
5651
|
}
|
|
5652
5652
|
|
|
5653
5653
|
// src/studio/sidebar/sidebar.tsx
|
|
5654
|
-
var
|
|
5655
|
-
var
|
|
5654
|
+
var import_react44 = require("react");
|
|
5655
|
+
var import_react45 = require("motion/react");
|
|
5656
|
+
|
|
5657
|
+
// src/layout/shell-nav-context.tsx
|
|
5658
|
+
var import_react37 = require("react");
|
|
5659
|
+
var ShellNavContext = (0, import_react37.createContext)(null);
|
|
5660
|
+
var ShellNavProvider = ShellNavContext.Provider;
|
|
5661
|
+
function useOptionalShellNav() {
|
|
5662
|
+
return (0, import_react37.useContext)(ShellNavContext);
|
|
5663
|
+
}
|
|
5656
5664
|
|
|
5657
5665
|
// src/studio/sidebar/sidebar-entries.tsx
|
|
5658
|
-
var
|
|
5666
|
+
var import_react38 = require("motion/react");
|
|
5659
5667
|
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
5660
5668
|
var StudioSidebarEntries = ({
|
|
5661
5669
|
visible,
|
|
@@ -5663,12 +5671,12 @@ var StudioSidebarEntries = ({
|
|
|
5663
5671
|
children,
|
|
5664
5672
|
className
|
|
5665
5673
|
}) => {
|
|
5666
|
-
const reducedMotion = (0,
|
|
5674
|
+
const reducedMotion = (0, import_react38.useReducedMotion)();
|
|
5667
5675
|
if (reducedMotion) {
|
|
5668
5676
|
return visible ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: cn("flex min-h-0 flex-1 flex-col", className), children }) : null;
|
|
5669
5677
|
}
|
|
5670
5678
|
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
5671
|
-
|
|
5679
|
+
import_react38.motion.div,
|
|
5672
5680
|
{
|
|
5673
5681
|
className: cn("flex min-h-0 flex-1 flex-col", className),
|
|
5674
5682
|
initial: false,
|
|
@@ -5688,15 +5696,15 @@ var StudioSidebarEntries = ({
|
|
|
5688
5696
|
};
|
|
5689
5697
|
|
|
5690
5698
|
// src/studio/sidebar/sidebar-footer.tsx
|
|
5691
|
-
var
|
|
5699
|
+
var import_react41 = require("react");
|
|
5692
5700
|
var import_lucide_react11 = require("lucide-react");
|
|
5693
5701
|
|
|
5694
5702
|
// src/auth/provider.tsx
|
|
5695
|
-
var
|
|
5703
|
+
var import_react39 = require("react");
|
|
5696
5704
|
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
5697
|
-
var SessionContext = (0,
|
|
5705
|
+
var SessionContext = (0, import_react39.createContext)(void 0);
|
|
5698
5706
|
var useOptionalSession = () => {
|
|
5699
|
-
const context = (0,
|
|
5707
|
+
const context = (0, import_react39.useContext)(SessionContext);
|
|
5700
5708
|
return context ?? null;
|
|
5701
5709
|
};
|
|
5702
5710
|
|
|
@@ -5723,17 +5731,17 @@ function studioSidebarNavItemClasses(iconOnly, isActive) {
|
|
|
5723
5731
|
}
|
|
5724
5732
|
|
|
5725
5733
|
// src/studio/sidebar/sidebar-entry-motion.tsx
|
|
5726
|
-
var
|
|
5734
|
+
var import_react40 = require("motion/react");
|
|
5727
5735
|
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
5728
5736
|
var StudioSidebarEntryMotion = ({
|
|
5729
5737
|
children,
|
|
5730
5738
|
className
|
|
5731
5739
|
}) => {
|
|
5732
|
-
const reducedMotion = (0,
|
|
5740
|
+
const reducedMotion = (0, import_react40.useReducedMotion)();
|
|
5733
5741
|
if (reducedMotion) {
|
|
5734
5742
|
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className, children });
|
|
5735
5743
|
}
|
|
5736
|
-
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
5744
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react40.motion.div, { variants: studioSidebarEntryItemVariants, className: cn(className), children });
|
|
5737
5745
|
};
|
|
5738
5746
|
|
|
5739
5747
|
// src/studio/sidebar/sidebar-tooltip.tsx
|
|
@@ -5857,8 +5865,8 @@ var StudioSidebarFooter = ({
|
|
|
5857
5865
|
}) => {
|
|
5858
5866
|
const session = useOptionalSession();
|
|
5859
5867
|
const user = session?.user ?? null;
|
|
5860
|
-
const [isDark, setIsDark] = (0,
|
|
5861
|
-
(0,
|
|
5868
|
+
const [isDark, setIsDark] = (0, import_react41.useState)(false);
|
|
5869
|
+
(0, import_react41.useEffect)(() => {
|
|
5862
5870
|
if (typeof window === "undefined" || typeof document === "undefined") return;
|
|
5863
5871
|
const stored = window.localStorage.getItem(STORAGE_KEYS.theme);
|
|
5864
5872
|
if (stored) {
|
|
@@ -6210,14 +6218,14 @@ function TimbalMark({
|
|
|
6210
6218
|
}
|
|
6211
6219
|
|
|
6212
6220
|
// src/studio/sidebar/shell-inset-bridge-context.tsx
|
|
6213
|
-
var
|
|
6221
|
+
var import_react43 = require("react");
|
|
6214
6222
|
|
|
6215
6223
|
// src/layout/shell-inset-context.tsx
|
|
6216
|
-
var
|
|
6217
|
-
var ShellInsetContext = (0,
|
|
6224
|
+
var import_react42 = require("react");
|
|
6225
|
+
var ShellInsetContext = (0, import_react42.createContext)(null);
|
|
6218
6226
|
var ShellInsetProvider = ShellInsetContext.Provider;
|
|
6219
6227
|
function useShellInsetReporter() {
|
|
6220
|
-
return (0,
|
|
6228
|
+
return (0, import_react42.useContext)(ShellInsetContext);
|
|
6221
6229
|
}
|
|
6222
6230
|
|
|
6223
6231
|
// src/studio/sidebar/shell-inset-bridge-context.tsx
|
|
@@ -6226,7 +6234,7 @@ var StudioSidebarShellInsetBridge = ({
|
|
|
6226
6234
|
}) => {
|
|
6227
6235
|
const reportInset = useShellInsetReporter();
|
|
6228
6236
|
const { isMobile, isCollapsedRail } = useStudioSidebarLayout();
|
|
6229
|
-
(0,
|
|
6237
|
+
(0, import_react43.useLayoutEffect)(() => {
|
|
6230
6238
|
const insetPx = isMobile ? 0 : isCollapsedRail ? SIDEBAR_INSET_PX_COLLAPSED : SIDEBAR_INSET_PX_EXPANDED;
|
|
6231
6239
|
reportInset?.(insetPx);
|
|
6232
6240
|
onInsetChange?.(insetPx);
|
|
@@ -6269,7 +6277,7 @@ var StudioSidebarPanel = ({
|
|
|
6269
6277
|
logo,
|
|
6270
6278
|
emptyCaption = null
|
|
6271
6279
|
}) => {
|
|
6272
|
-
const reducedMotion = (0,
|
|
6280
|
+
const reducedMotion = (0, import_react45.useReducedMotion)();
|
|
6273
6281
|
const isCollapsedRail = widthCollapsed && !isMobile;
|
|
6274
6282
|
const iconOnlyLayout = studioSidebarIconOnlyLayout(isMobile, isCollapsedRail);
|
|
6275
6283
|
const isDrawerOpen = isMobile && mobileOpen;
|
|
@@ -6291,7 +6299,7 @@ var StudioSidebarPanel = ({
|
|
|
6291
6299
|
const brandNode = brand ?? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(TimbalMark, { size: 32 });
|
|
6292
6300
|
const logoNode = logo ?? (isCustomBrand ? null : brandNode);
|
|
6293
6301
|
const panel = /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
|
|
6294
|
-
|
|
6302
|
+
import_react45.motion.div,
|
|
6295
6303
|
{
|
|
6296
6304
|
"data-sidebar-collapsed": isCollapsedRail ? "" : void 0,
|
|
6297
6305
|
className: cn(
|
|
@@ -6361,7 +6369,7 @@ var StudioSidebarPanel = ({
|
|
|
6361
6369
|
);
|
|
6362
6370
|
if (isMobile) {
|
|
6363
6371
|
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
6364
|
-
|
|
6372
|
+
import_react45.motion.aside,
|
|
6365
6373
|
{
|
|
6366
6374
|
className: "fixed inset-y-0 left-0 z-[60] flex",
|
|
6367
6375
|
"aria-label": "Studio navigation",
|
|
@@ -6399,51 +6407,62 @@ var StudioSidebar = ({
|
|
|
6399
6407
|
onMobileOpenChange: onMobileOpenChangeProp,
|
|
6400
6408
|
onInsetChange
|
|
6401
6409
|
}) => {
|
|
6402
|
-
const reducedMotion = (0,
|
|
6410
|
+
const reducedMotion = (0, import_react45.useReducedMotion)();
|
|
6403
6411
|
const fetched = useWorkforces({ enabled: workforcesProp === void 0 });
|
|
6404
6412
|
const workforces = workforcesProp ?? fetched.workforces;
|
|
6405
|
-
const [internalSelected, setInternalSelected] = (0,
|
|
6413
|
+
const [internalSelected, setInternalSelected] = (0, import_react44.useState)(
|
|
6406
6414
|
selectedIdProp ?? ""
|
|
6407
6415
|
);
|
|
6408
|
-
(0,
|
|
6416
|
+
(0, import_react44.useEffect)(() => {
|
|
6409
6417
|
if (selectedIdProp !== void 0) return;
|
|
6410
6418
|
if (internalSelected) return;
|
|
6411
6419
|
const first = workforces[0]?.id ?? workforces[0]?.uid ?? workforces[0]?.name;
|
|
6412
6420
|
if (first) setInternalSelected(first);
|
|
6413
6421
|
}, [workforces, selectedIdProp, internalSelected]);
|
|
6414
6422
|
const selectedId = selectedIdProp ?? internalSelected ?? workforces[0]?.id ?? workforces[0]?.uid ?? workforces[0]?.name ?? "";
|
|
6415
|
-
const [collapsed, setCollapsed] = (0,
|
|
6423
|
+
const [collapsed, setCollapsed] = (0, import_react44.useState)(() => {
|
|
6416
6424
|
const persisted = readPersistedCollapsed(persistKey);
|
|
6417
6425
|
return persisted || defaultCollapsed;
|
|
6418
6426
|
});
|
|
6419
|
-
const handleCollapsedChange = (0,
|
|
6427
|
+
const handleCollapsedChange = (0, import_react44.useCallback)(
|
|
6420
6428
|
(next) => {
|
|
6421
6429
|
setCollapsed(next);
|
|
6422
6430
|
writePersistedCollapsed(persistKey, next);
|
|
6423
6431
|
},
|
|
6424
6432
|
[persistKey]
|
|
6425
6433
|
);
|
|
6426
|
-
const [isMobile, setIsMobile] = (0,
|
|
6434
|
+
const [isMobile, setIsMobile] = (0, import_react44.useState)(() => {
|
|
6427
6435
|
if (typeof window === "undefined") return false;
|
|
6428
6436
|
return window.innerWidth < mobileBreakpointPx;
|
|
6429
6437
|
});
|
|
6430
|
-
(0,
|
|
6438
|
+
(0, import_react44.useEffect)(() => {
|
|
6431
6439
|
if (typeof window === "undefined") return;
|
|
6432
6440
|
const onResize = () => setIsMobile(window.innerWidth < mobileBreakpointPx);
|
|
6433
6441
|
onResize();
|
|
6434
6442
|
window.addEventListener("resize", onResize);
|
|
6435
6443
|
return () => window.removeEventListener("resize", onResize);
|
|
6436
6444
|
}, [mobileBreakpointPx]);
|
|
6437
|
-
const
|
|
6438
|
-
const
|
|
6439
|
-
const
|
|
6445
|
+
const shellNav = useOptionalShellNav();
|
|
6446
|
+
const isControlled = mobileOpenProp !== void 0;
|
|
6447
|
+
const usingShellNav = !isControlled && shellNav !== null;
|
|
6448
|
+
const [internalMobileOpen, setInternalMobileOpen] = (0, import_react44.useState)(false);
|
|
6449
|
+
const mobileOpen = isControlled ? mobileOpenProp : usingShellNav ? shellNav.open : internalMobileOpen;
|
|
6450
|
+
const setMobileOpen = (0, import_react44.useCallback)(
|
|
6440
6451
|
(next) => {
|
|
6441
|
-
if (
|
|
6452
|
+
if (isControlled) {
|
|
6453
|
+
onMobileOpenChangeProp?.(next);
|
|
6454
|
+
return;
|
|
6455
|
+
}
|
|
6456
|
+
if (usingShellNav) {
|
|
6457
|
+
shellNav.setOpen(next);
|
|
6458
|
+
} else {
|
|
6459
|
+
setInternalMobileOpen(next);
|
|
6460
|
+
}
|
|
6442
6461
|
onMobileOpenChangeProp?.(next);
|
|
6443
6462
|
},
|
|
6444
|
-
[
|
|
6463
|
+
[isControlled, usingShellNav, shellNav, onMobileOpenChangeProp]
|
|
6445
6464
|
);
|
|
6446
|
-
const handleSelect = (0,
|
|
6465
|
+
const handleSelect = (0, import_react44.useCallback)(
|
|
6447
6466
|
(id) => {
|
|
6448
6467
|
if (selectedIdProp === void 0) setInternalSelected(id);
|
|
6449
6468
|
onSelect?.(id);
|
|
@@ -6451,10 +6470,10 @@ var StudioSidebar = ({
|
|
|
6451
6470
|
},
|
|
6452
6471
|
[selectedIdProp, onSelect, isMobile, setMobileOpen]
|
|
6453
6472
|
);
|
|
6454
|
-
(0,
|
|
6473
|
+
(0, import_react44.useEffect)(() => {
|
|
6455
6474
|
if (!isMobile && mobileOpen) setMobileOpen(false);
|
|
6456
6475
|
}, [isMobile, mobileOpen, setMobileOpen]);
|
|
6457
|
-
(0,
|
|
6476
|
+
(0, import_react44.useEffect)(() => {
|
|
6458
6477
|
if (!isMobile || !mobileOpen) return;
|
|
6459
6478
|
const onKeyDown = (e) => {
|
|
6460
6479
|
if (e.key === "Escape") setMobileOpen(false);
|
|
@@ -6472,7 +6491,7 @@ var StudioSidebar = ({
|
|
|
6472
6491
|
const entriesVisible = isMobile || phaseEntriesVisible;
|
|
6473
6492
|
const isCollapsedRail = widthCollapsed && !isMobile;
|
|
6474
6493
|
const iconOnlyLayout = studioSidebarIconOnlyLayout(isMobile, isCollapsedRail);
|
|
6475
|
-
const contextValue = (0,
|
|
6494
|
+
const contextValue = (0, import_react44.useMemo)(
|
|
6476
6495
|
() => ({
|
|
6477
6496
|
collapsed: effectiveCollapsed,
|
|
6478
6497
|
isMobile,
|
|
@@ -6508,23 +6527,23 @@ var StudioSidebar = ({
|
|
|
6508
6527
|
};
|
|
6509
6528
|
|
|
6510
6529
|
// src/studio/sidebar/sidebar-runtime-portal.tsx
|
|
6511
|
-
var
|
|
6530
|
+
var import_react46 = require("react");
|
|
6512
6531
|
var import_react_dom = require("react-dom");
|
|
6513
6532
|
var import_lucide_react13 = require("lucide-react");
|
|
6514
|
-
var
|
|
6533
|
+
var import_react47 = require("@assistant-ui/react");
|
|
6515
6534
|
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
6516
6535
|
var StudioSidebarRuntimePortal = ({
|
|
6517
6536
|
label = "New chat"
|
|
6518
6537
|
}) => {
|
|
6519
6538
|
const { iconOnlyLayout, isMobile, closeMobile } = useStudioSidebarLayout();
|
|
6520
|
-
const hasMessages = (0,
|
|
6539
|
+
const hasMessages = (0, import_react47.useThread)((s) => s.messages.length > 0);
|
|
6521
6540
|
const { clear } = useTimbalRuntime();
|
|
6522
|
-
const [anchor, setAnchor] = (0,
|
|
6523
|
-
const startNewChat = (0,
|
|
6541
|
+
const [anchor, setAnchor] = (0, import_react46.useState)(null);
|
|
6542
|
+
const startNewChat = (0, import_react46.useCallback)(() => {
|
|
6524
6543
|
clear();
|
|
6525
6544
|
if (isMobile) closeMobile?.();
|
|
6526
6545
|
}, [clear, isMobile, closeMobile]);
|
|
6527
|
-
(0,
|
|
6546
|
+
(0, import_react46.useLayoutEffect)(() => {
|
|
6528
6547
|
setAnchor(document.getElementById(DOM_IDS.sidebarRuntimeAnchor));
|
|
6529
6548
|
}, []);
|
|
6530
6549
|
if (!anchor || !hasMessages) return null;
|
|
@@ -6551,8 +6570,8 @@ var StudioSidebarRuntimePortal = ({
|
|
|
6551
6570
|
};
|
|
6552
6571
|
|
|
6553
6572
|
// src/studio/sidebar/welcome.tsx
|
|
6554
|
-
var
|
|
6555
|
-
var
|
|
6573
|
+
var import_react48 = require("motion/react");
|
|
6574
|
+
var import_react49 = require("@assistant-ui/react");
|
|
6556
6575
|
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
6557
6576
|
var welcomeStagger2 = {
|
|
6558
6577
|
initial: {},
|
|
@@ -6578,7 +6597,7 @@ var welcomeIcon2 = {
|
|
|
6578
6597
|
}
|
|
6579
6598
|
};
|
|
6580
6599
|
var StudioWelcome = ({ config, icon }) => {
|
|
6581
|
-
const isEmpty = (0,
|
|
6600
|
+
const isEmpty = (0, import_react49.useThread)((s) => s.messages.length === 0);
|
|
6582
6601
|
if (!isEmpty) return null;
|
|
6583
6602
|
const iconNode = icon ?? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
6584
6603
|
TimbalMark,
|
|
@@ -6588,16 +6607,16 @@ var StudioWelcome = ({ config, icon }) => {
|
|
|
6588
6607
|
}
|
|
6589
6608
|
);
|
|
6590
6609
|
return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "aui-thread-welcome-root mx-auto my-auto flex w-full max-w-(--thread-max-width) grow flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "aui-thread-welcome-center flex w-full grow flex-col items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
|
|
6591
|
-
|
|
6610
|
+
import_react48.motion.div,
|
|
6592
6611
|
{
|
|
6593
6612
|
className: "aui-thread-welcome-message flex flex-col items-center justify-center px-2 text-center sm:px-4",
|
|
6594
6613
|
variants: welcomeStagger2,
|
|
6595
6614
|
initial: "initial",
|
|
6596
6615
|
animate: "animate",
|
|
6597
6616
|
children: [
|
|
6598
|
-
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
6617
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_react48.motion.div, { variants: welcomeIcon2, className: "mb-4 md:mb-5", children: iconNode }),
|
|
6599
6618
|
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
6600
|
-
|
|
6619
|
+
import_react48.motion.h1,
|
|
6601
6620
|
{
|
|
6602
6621
|
variants: welcomeItem2,
|
|
6603
6622
|
className: "aui-thread-welcome-message-inner text-xl font-semibold sm:text-2xl",
|
|
@@ -6605,7 +6624,7 @@ var StudioWelcome = ({ config, icon }) => {
|
|
|
6605
6624
|
}
|
|
6606
6625
|
),
|
|
6607
6626
|
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
6608
|
-
|
|
6627
|
+
import_react48.motion.p,
|
|
6609
6628
|
{
|
|
6610
6629
|
variants: welcomeItem2,
|
|
6611
6630
|
className: "aui-thread-welcome-message-inner mt-2 text-muted-foreground",
|
|
@@ -6619,7 +6638,7 @@ var StudioWelcome = ({ config, icon }) => {
|
|
|
6619
6638
|
|
|
6620
6639
|
// src/studio/shell/studio-shell.tsx
|
|
6621
6640
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
6622
|
-
var
|
|
6641
|
+
var import_react52 = require("react");
|
|
6623
6642
|
var DEFAULT_BREAKPOINT_PX2 = 768;
|
|
6624
6643
|
function readPersistedCollapsed2(key) {
|
|
6625
6644
|
if (!key || typeof window === "undefined") return false;
|
|
@@ -6662,7 +6681,7 @@ var TimbalStudioShell = ({
|
|
|
6662
6681
|
components,
|
|
6663
6682
|
...chatProps
|
|
6664
6683
|
}) => {
|
|
6665
|
-
const reducedMotion = (0,
|
|
6684
|
+
const reducedMotion = (0, import_react51.useReducedMotion)();
|
|
6666
6685
|
const shouldFetchWorkforces = !workforceId && workforcesProp === void 0;
|
|
6667
6686
|
const fetched = useWorkforces({
|
|
6668
6687
|
enabled: shouldFetchWorkforces,
|
|
@@ -6670,36 +6689,36 @@ var TimbalStudioShell = ({
|
|
|
6670
6689
|
baseUrl: workforcesBaseUrl
|
|
6671
6690
|
});
|
|
6672
6691
|
const workforces = workforcesProp ?? fetched.workforces;
|
|
6673
|
-
const [internalSelected, setInternalSelected] = (0,
|
|
6692
|
+
const [internalSelected, setInternalSelected] = (0, import_react50.useState)(
|
|
6674
6693
|
workforceId ?? ""
|
|
6675
6694
|
);
|
|
6676
|
-
(0,
|
|
6695
|
+
(0, import_react50.useEffect)(() => {
|
|
6677
6696
|
if (workforceId) return;
|
|
6678
6697
|
if (internalSelected) return;
|
|
6679
6698
|
const first = workforces[0]?.id ?? workforces[0]?.uid ?? workforces[0]?.name;
|
|
6680
6699
|
if (first) setInternalSelected(first);
|
|
6681
6700
|
}, [workforces, workforceId, internalSelected]);
|
|
6682
6701
|
const activeWorkforceId = workforceId ?? internalSelected ?? fetched.selectedId ?? "";
|
|
6683
|
-
const [collapsed, setCollapsed] = (0,
|
|
6702
|
+
const [collapsed, setCollapsed] = (0, import_react50.useState)(() => {
|
|
6684
6703
|
const persisted = readPersistedCollapsed2(persistKey);
|
|
6685
6704
|
return persisted || defaultCollapsed;
|
|
6686
6705
|
});
|
|
6687
|
-
const [isMobile, setIsMobile] = (0,
|
|
6706
|
+
const [isMobile, setIsMobile] = (0, import_react50.useState)(() => {
|
|
6688
6707
|
if (typeof window === "undefined") return false;
|
|
6689
6708
|
return window.innerWidth < mobileBreakpointPx;
|
|
6690
6709
|
});
|
|
6691
|
-
const [mobileSidebarOpen, setMobileSidebarOpen] = (0,
|
|
6692
|
-
(0,
|
|
6710
|
+
const [mobileSidebarOpen, setMobileSidebarOpen] = (0, import_react50.useState)(false);
|
|
6711
|
+
(0, import_react50.useEffect)(() => {
|
|
6693
6712
|
if (typeof window === "undefined") return;
|
|
6694
6713
|
const onResize = () => setIsMobile(window.innerWidth < mobileBreakpointPx);
|
|
6695
6714
|
onResize();
|
|
6696
6715
|
window.addEventListener("resize", onResize);
|
|
6697
6716
|
return () => window.removeEventListener("resize", onResize);
|
|
6698
6717
|
}, [mobileBreakpointPx]);
|
|
6699
|
-
(0,
|
|
6718
|
+
(0, import_react50.useEffect)(() => {
|
|
6700
6719
|
if (!isMobile) setMobileSidebarOpen(false);
|
|
6701
6720
|
}, [isMobile]);
|
|
6702
|
-
(0,
|
|
6721
|
+
(0, import_react50.useEffect)(() => {
|
|
6703
6722
|
if (!mobileSidebarOpen) return;
|
|
6704
6723
|
const onKeyDown = (e) => {
|
|
6705
6724
|
if (e.key === "Escape") setMobileSidebarOpen(false);
|
|
@@ -6723,21 +6742,21 @@ var TimbalStudioShell = ({
|
|
|
6723
6742
|
layoutDirection
|
|
6724
6743
|
);
|
|
6725
6744
|
const desktopInsetPx = widthCollapsed ? SIDEBAR_INSET_PX_COLLAPSED : SIDEBAR_INSET_PX_EXPANDED;
|
|
6726
|
-
const onCollapsedChange = (0,
|
|
6745
|
+
const onCollapsedChange = (0, import_react50.useCallback)(
|
|
6727
6746
|
(next) => {
|
|
6728
6747
|
setCollapsed(next);
|
|
6729
6748
|
writePersistedCollapsed2(persistKey, next);
|
|
6730
6749
|
},
|
|
6731
6750
|
[persistKey]
|
|
6732
6751
|
);
|
|
6733
|
-
const handleSelectWorkforce = (0,
|
|
6752
|
+
const handleSelectWorkforce = (0, import_react50.useCallback)(
|
|
6734
6753
|
(id) => {
|
|
6735
6754
|
if (!workforceId) setInternalSelected(id);
|
|
6736
6755
|
if (isMobile) setMobileSidebarOpen(false);
|
|
6737
6756
|
},
|
|
6738
6757
|
[workforceId, isMobile]
|
|
6739
6758
|
);
|
|
6740
|
-
const sidebarContext = (0,
|
|
6759
|
+
const sidebarContext = (0, import_react50.useMemo)(
|
|
6741
6760
|
() => ({
|
|
6742
6761
|
collapsed: effectiveCollapsed,
|
|
6743
6762
|
isMobile,
|
|
@@ -6747,7 +6766,7 @@ var TimbalStudioShell = ({
|
|
|
6747
6766
|
}),
|
|
6748
6767
|
[effectiveCollapsed, isMobile, isCollapsedRail, iconOnlyLayout]
|
|
6749
6768
|
);
|
|
6750
|
-
const resolvedComponents = (0,
|
|
6769
|
+
const resolvedComponents = (0, import_react50.useMemo)(() => {
|
|
6751
6770
|
const next = { Welcome: StudioWelcome, ...components };
|
|
6752
6771
|
next.Composer = makeComposerWithPortal(components?.Composer);
|
|
6753
6772
|
return next;
|
|
@@ -6806,7 +6825,7 @@ var TimbalStudioShell = ({
|
|
|
6806
6825
|
}
|
|
6807
6826
|
),
|
|
6808
6827
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
|
|
6809
|
-
|
|
6828
|
+
import_react51.motion.header,
|
|
6810
6829
|
{
|
|
6811
6830
|
className: cn(
|
|
6812
6831
|
"absolute top-0 right-0 z-40 flex items-start justify-between gap-2",
|
|
@@ -6847,7 +6866,7 @@ var TimbalStudioShell = ({
|
|
|
6847
6866
|
}
|
|
6848
6867
|
),
|
|
6849
6868
|
/* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
6850
|
-
|
|
6869
|
+
import_react51.motion.main,
|
|
6851
6870
|
{
|
|
6852
6871
|
className: cn(
|
|
6853
6872
|
"relative z-10 flex h-full min-w-0 flex-col",
|
|
@@ -6857,7 +6876,7 @@ var TimbalStudioShell = ({
|
|
|
6857
6876
|
initial: false,
|
|
6858
6877
|
animate: { paddingLeft: isMobile ? 12 : desktopInsetPx },
|
|
6859
6878
|
transition: layoutTransition,
|
|
6860
|
-
children: activeWorkforceId ? /* @__PURE__ */ (0,
|
|
6879
|
+
children: activeWorkforceId ? /* @__PURE__ */ (0, import_react52.createElement)(
|
|
6861
6880
|
TimbalChat,
|
|
6862
6881
|
{
|
|
6863
6882
|
...chatProps,
|
|
@@ -6876,7 +6895,7 @@ var TimbalStudioShell = ({
|
|
|
6876
6895
|
};
|
|
6877
6896
|
|
|
6878
6897
|
// src/studio/sidebar/mode-toggle.tsx
|
|
6879
|
-
var
|
|
6898
|
+
var import_react53 = require("react");
|
|
6880
6899
|
var import_lucide_react15 = require("lucide-react");
|
|
6881
6900
|
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
6882
6901
|
function readStoredTheme() {
|
|
@@ -6906,8 +6925,8 @@ var ModeToggle = ({
|
|
|
6906
6925
|
label = "Toggle theme"
|
|
6907
6926
|
}) => {
|
|
6908
6927
|
const isControlled = theme !== void 0;
|
|
6909
|
-
const [internalIsDark, setInternalIsDark] = (0,
|
|
6910
|
-
(0,
|
|
6928
|
+
const [internalIsDark, setInternalIsDark] = (0, import_react53.useState)(false);
|
|
6929
|
+
(0, import_react53.useLayoutEffect)(() => {
|
|
6911
6930
|
if (isControlled) return;
|
|
6912
6931
|
const stored = readStoredTheme();
|
|
6913
6932
|
if (stored) {
|
|
@@ -6919,7 +6938,7 @@ var ModeToggle = ({
|
|
|
6919
6938
|
setInternalIsDark(document.documentElement.classList.contains("dark"));
|
|
6920
6939
|
}, [isControlled]);
|
|
6921
6940
|
const isDark = isControlled ? theme === "dark" : internalIsDark;
|
|
6922
|
-
const onClick = (0,
|
|
6941
|
+
const onClick = (0, import_react53.useCallback)(() => {
|
|
6923
6942
|
const next = isDark ? "light" : "dark";
|
|
6924
6943
|
if (setTheme) {
|
|
6925
6944
|
setTheme(next);
|
|
@@ -6955,11 +6974,11 @@ var ModeToggle = ({
|
|
|
6955
6974
|
};
|
|
6956
6975
|
|
|
6957
6976
|
// src/studio/mode-switch.tsx
|
|
6958
|
-
var
|
|
6977
|
+
var import_react56 = require("react");
|
|
6959
6978
|
|
|
6960
6979
|
// src/ui/pill-segmented-tabs.tsx
|
|
6961
|
-
var
|
|
6962
|
-
var
|
|
6980
|
+
var import_react54 = require("react");
|
|
6981
|
+
var import_react55 = require("motion/react");
|
|
6963
6982
|
|
|
6964
6983
|
// src/design/pill-segmented-classes.ts
|
|
6965
6984
|
var pillSegmentedTrackBase = "inline-flex w-fit max-w-max shrink-0 self-start items-center rounded-full";
|
|
@@ -7003,7 +7022,7 @@ var PillTab = ({
|
|
|
7003
7022
|
segmentClassName,
|
|
7004
7023
|
animateIndicator
|
|
7005
7024
|
}) => {
|
|
7006
|
-
const handlePress = (0,
|
|
7025
|
+
const handlePress = (0, import_react54.useCallback)(() => {
|
|
7007
7026
|
if (!disabled) onSelect(tabKey);
|
|
7008
7027
|
}, [disabled, onSelect, tabKey]);
|
|
7009
7028
|
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
|
|
@@ -7020,7 +7039,7 @@ var PillTab = ({
|
|
|
7020
7039
|
),
|
|
7021
7040
|
children: [
|
|
7022
7041
|
isActive && animateIndicator ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
7023
|
-
|
|
7042
|
+
import_react55.motion.div,
|
|
7024
7043
|
{
|
|
7025
7044
|
layoutId,
|
|
7026
7045
|
className: pillSegmentedActiveIndicatorClass,
|
|
@@ -7041,9 +7060,9 @@ var PillSegmentedTabs = ({
|
|
|
7041
7060
|
layoutId: layoutIdProp,
|
|
7042
7061
|
"aria-label": ariaLabel
|
|
7043
7062
|
}) => {
|
|
7044
|
-
const reactId = (0,
|
|
7063
|
+
const reactId = (0, import_react54.useId)();
|
|
7045
7064
|
const layoutId = layoutIdProp ?? `pill-segmented-${reactId.replace(/:/g, "")}`;
|
|
7046
|
-
const reducedMotion = (0,
|
|
7065
|
+
const reducedMotion = (0, import_react55.useReducedMotion)();
|
|
7047
7066
|
const isFlush = trackVariant === "flush";
|
|
7048
7067
|
const trackClass = isFlush ? pillSegmentedTrackFlushClass : pillSegmentedTrackClass;
|
|
7049
7068
|
const segmentClassName = isFlush ? pillSegmentedFlushSegmentClass : pillSegmentedSegmentClass;
|
|
@@ -7062,7 +7081,7 @@ var PillSegmentedTabs = ({
|
|
|
7062
7081
|
tab.key
|
|
7063
7082
|
)) });
|
|
7064
7083
|
};
|
|
7065
|
-
var MemoPillSegmentedTabs = (0,
|
|
7084
|
+
var MemoPillSegmentedTabs = (0, import_react54.memo)(PillSegmentedTabs);
|
|
7066
7085
|
|
|
7067
7086
|
// src/studio/mode-switch.tsx
|
|
7068
7087
|
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
@@ -7070,7 +7089,7 @@ var STUDIO_NAV_MODE = {
|
|
|
7070
7089
|
BUILD: "build",
|
|
7071
7090
|
OPERATE: "operate"
|
|
7072
7091
|
};
|
|
7073
|
-
var StudioModeSwitch = (0,
|
|
7092
|
+
var StudioModeSwitch = (0, import_react56.memo)(
|
|
7074
7093
|
function StudioModeSwitch2({
|
|
7075
7094
|
value,
|
|
7076
7095
|
onChange,
|
|
@@ -7079,14 +7098,14 @@ var StudioModeSwitch = (0, import_react55.memo)(
|
|
|
7079
7098
|
manageLabel = "Manage",
|
|
7080
7099
|
"aria-label": ariaLabel = "Studio mode"
|
|
7081
7100
|
}) {
|
|
7082
|
-
const tabs = (0,
|
|
7101
|
+
const tabs = (0, import_react56.useMemo)(
|
|
7083
7102
|
() => [
|
|
7084
7103
|
{ key: STUDIO_NAV_MODE.BUILD, label: buildLabel },
|
|
7085
7104
|
{ key: STUDIO_NAV_MODE.OPERATE, label: manageLabel }
|
|
7086
7105
|
],
|
|
7087
7106
|
[buildLabel, manageLabel]
|
|
7088
7107
|
);
|
|
7089
|
-
const handleChange = (0,
|
|
7108
|
+
const handleChange = (0, import_react56.useCallback)(
|
|
7090
7109
|
(key) => {
|
|
7091
7110
|
if (key === STUDIO_NAV_MODE.BUILD || key === STUDIO_NAV_MODE.OPERATE) {
|
|
7092
7111
|
onChange(key);
|
package/dist/studio.esm.js
CHANGED
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
TimbalChatShell,
|
|
9
9
|
TimbalMark,
|
|
10
10
|
TimbalStudioShell
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-PMMI7LBV.esm.js";
|
|
12
|
+
import "./chunk-XOCOZU7J.esm.js";
|
|
13
|
+
import "./chunk-VKXOHVDE.esm.js";
|
|
14
|
+
import "./chunk-7AGIAQE6.esm.js";
|
|
15
|
+
import "./chunk-64RHAJVG.esm.js";
|
|
16
16
|
import "./chunk-R4RQT2XQ.esm.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-45NXD3IG.esm.js";
|
|
18
18
|
import "./chunk-EDEKQYSU.esm.js";
|
|
19
19
|
export {
|
|
20
20
|
ModeToggle,
|
package/dist/ui.cjs
CHANGED
|
@@ -1035,14 +1035,14 @@ function DialogDescription({
|
|
|
1035
1035
|
className,
|
|
1036
1036
|
...props
|
|
1037
1037
|
}) {
|
|
1038
|
-
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1039
|
-
|
|
1038
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_radix_ui5.Dialog.Description, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1039
|
+
"div",
|
|
1040
1040
|
{
|
|
1041
1041
|
"data-slot": "dialog-description",
|
|
1042
1042
|
className: cn("text-sm text-muted-foreground", className),
|
|
1043
1043
|
...props
|
|
1044
1044
|
}
|
|
1045
|
-
);
|
|
1045
|
+
) });
|
|
1046
1046
|
}
|
|
1047
1047
|
function DialogHeader({ className, ...props }) {
|
|
1048
1048
|
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
@@ -3444,14 +3444,14 @@ function SheetDescription({
|
|
|
3444
3444
|
className,
|
|
3445
3445
|
...props
|
|
3446
3446
|
}) {
|
|
3447
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
3448
|
-
|
|
3447
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_radix_ui25.Dialog.Description, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
3448
|
+
"div",
|
|
3449
3449
|
{
|
|
3450
3450
|
"data-slot": "sheet-description",
|
|
3451
3451
|
className: cn("text-sm text-muted-foreground", className),
|
|
3452
3452
|
...props
|
|
3453
3453
|
}
|
|
3454
|
-
);
|
|
3454
|
+
) });
|
|
3455
3455
|
}
|
|
3456
3456
|
|
|
3457
3457
|
// src/ui/alert-dialog.tsx
|
package/dist/ui.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AVATAR_PRIMARY_FALLBACK_CLASS, a as Avatar, b as AvatarFallback, c as AvatarImage, B as Banner, d as BannerProps, e as BannerSize, f as BannerTone, g as BannerVariant, h as Button, i as ButtonColor, K as Kanban, j as KanbanCardData, k as KanbanCardVariant, l as KanbanColumnData, m as KanbanDensity, n as KanbanDragHandleProps, o as KanbanLocation, p as KanbanMoveEvent, q as KanbanProps, r as KanbanRenderCardContext, s as KanbanTone, T as Timeline, t as TimelineItem, u as TimelineProps, v as TimelineSize, U as UntitledButton, w as UntitledButtonColor, x as UntitledButtonProps, y as UntitledButtonSize, z as avatarChartVariantClass, C as untitledButtonVariants } from './kanban-
|
|
1
|
+
export { A as AVATAR_PRIMARY_FALLBACK_CLASS, a as Avatar, b as AvatarFallback, c as AvatarImage, B as Banner, d as BannerProps, e as BannerSize, f as BannerTone, g as BannerVariant, h as Button, i as ButtonColor, K as Kanban, j as KanbanCardData, k as KanbanCardVariant, l as KanbanColumnData, m as KanbanDensity, n as KanbanDragHandleProps, o as KanbanLocation, p as KanbanMoveEvent, q as KanbanProps, r as KanbanRenderCardContext, s as KanbanTone, T as Timeline, t as TimelineItem, u as TimelineProps, v as TimelineSize, U as UntitledButton, w as UntitledButtonColor, x as UntitledButtonProps, y as UntitledButtonSize, z as avatarChartVariantClass, C as untitledButtonVariants } from './kanban-BQxWliCS.cjs';
|
|
2
2
|
export { A as Accordion, a as AccordionContent, b as AccordionItem, c as AccordionTrigger, d as Alert, e as AlertDescription, f as AlertDialog, g as AlertDialogAction, h as AlertDialogCancel, i as AlertDialogContent, j as AlertDialogDescription, k as AlertDialogFooter, l as AlertDialogHeader, m as AlertDialogOverlay, n as AlertDialogPortal, o as AlertDialogTitle, p as AlertDialogTrigger, q as AlertTitle, r as AspectRatio, s as AvatarGroup, t as AvatarGroupProps, B as Badge, u as Breadcrumb, v as BreadcrumbEllipsis, w as BreadcrumbItem, x as BreadcrumbLink, y as BreadcrumbList, z as BreadcrumbPage, C as BreadcrumbSeparator, D as CONTROL_SIZE, E as Calendar, F as CalendarDayButton, G as Card, H as CardContent, I as CardDescription, J as CardFooter, K as CardHeader, L as CardTitle, M as Checkbox, N as CircularProgress, O as CircularProgressProps, P as Collapsible, Q as CollapsibleContent, R as CollapsibleTrigger, S as Combobox, T as ComboboxAnchor, U as ComboboxCommand, V as ComboboxContent, W as ComboboxEmpty, X as ComboboxGroup, Y as ComboboxInput, Z as ComboboxItem, _ as ComboboxList, $ as ComboboxSeparator, a0 as ComboboxShortcut, a1 as ComboboxTrigger, a2 as Command, a3 as CommandDialog, a4 as CommandEmpty, a5 as CommandGroup, a6 as CommandInput, a7 as CommandItem, a8 as CommandList, a9 as CommandSeparator, aa as CommandShortcut, ab as ContextMenu, ac as ContextMenuCheckboxItem, ad as ContextMenuContent, ae as ContextMenuGroup, af as ContextMenuItem, ag as ContextMenuLabel, ah as ContextMenuRadioGroup, ai as ContextMenuRadioItem, aj as ContextMenuSeparator, ak as ContextMenuShortcut, al as ContextMenuSub, am as ContextMenuSubContent, an as ContextMenuSubTrigger, ao as ContextMenuTrigger, ap as ControlClassOptions, aq as ControlShape, ar as ControlSize, as as CopyButton, at as CopyButtonProps, au as DatePicker, av as DatePickerButton, aw as DatePickerCalendar, ax as DatePickerContent, ay as DatePickerTrigger, az as Dialog, aA as DialogClose, aB as DialogContent, aC as DialogDescription, aD as DialogFooter, aE as DialogHeader, aF as DialogOverlay, aG as DialogPortal, aH as DialogTitle, aI as DialogTrigger, aJ as DropdownMenu, aK as DropdownMenuCheckboxItem, aL as DropdownMenuContent, aM as DropdownMenuGroup, aN as DropdownMenuItem, aO as DropdownMenuLabel, aP as DropdownMenuRadioGroup, aQ as DropdownMenuRadioItem, aR as DropdownMenuSeparator, aS as DropdownMenuShortcut, aT as DropdownMenuSub, aU as DropdownMenuSubContent, aV as DropdownMenuSubTrigger, aW as DropdownMenuTrigger, aX as Form, aY as FormControl, aZ as FormField, a_ as FormItem, a$ as FormLabel, b0 as FormMessage, b1 as FormSubmit, b2 as HoverCard, b3 as HoverCardContent, b4 as HoverCardTrigger, b5 as Input, b6 as InputGroup, b7 as InputGroupAddon, b8 as InputGroupInput, b9 as InputGroupText, ba as InputOTP, bb as InputOTPGroup, bc as InputOTPHiddenInput, bd as InputOTPSeparator, be as InputOTPSlot, bf as Kbd, bg as KbdGroup, bh as Label, bi as MemoPillSegmentedTabs, bj as Menubar, bk as MenubarCheckboxItem, bl as MenubarContent, bm as MenubarItem, bn as MenubarLabel, bo as MenubarMenu, bp as MenubarRadioGroup, bq as MenubarRadioItem, br as MenubarSeparator, bs as MenubarShortcut, bt as MenubarSub, bu as MenubarSubContent, bv as MenubarSubTrigger, bw as MenubarTrigger, bx as NavigationMenu, by as NavigationMenuContent, bz as NavigationMenuIndicator, bA as NavigationMenuItem, bB as NavigationMenuLink, bC as NavigationMenuList, bD as NavigationMenuTrigger, bE as NavigationMenuViewport, bF as NumberField, bG as NumberFieldProps, bH as Pagination, bI as PaginationContent, bJ as PaginationEllipsis, bK as PaginationItem, bL as PaginationLink, bM as PaginationNext, bN as PaginationPrevious, bO as PillSegmentedTab, bP as PillSegmentedTabs, bQ as PillSegmentedTabsProps, bR as Popover, bS as PopoverAnchor, bT as PopoverContent, bU as PopoverTrigger, bV as Progress, bW as RadioGroup, bX as RadioGroupItem, bY as Rating, bZ as RatingProps, b_ as RatingTone, b$ as ScrollArea, c0 as ScrollBar, c1 as Select, c2 as SelectContent, c3 as SelectGroup, c4 as SelectItem, c5 as SelectLabel, c6 as SelectScrollDownButton, c7 as SelectScrollUpButton, c8 as SelectSeparator, c9 as SelectTrigger, ca as SelectValue, cb as Separator, cc as Sheet, cd as SheetClose, ce as SheetContent, cf as SheetDescription, cg as SheetFooter, ch as SheetHeader, ci as SheetTitle, cj as SheetTrigger, ck as Shimmer, cl as Skeleton, cm as Slider, cn as Snippet, co as SnippetProps, cp as SnippetSize, cq as SnippetVariant, cr as Spinner, cs as Stepper, ct as StepperProps, cu as StepperStep, cv as Switch, cw as Table, cx as TableBody, cy as TableCaption, cz as TableCell, cA as TableFooter, cB as TableHead, cC as TableHeader, cD as TableRow, cE as TagInput, cF as TagInputProps, cG as TagInputSize, cH as TextShimmerProps, cI as Textarea, cJ as Toast, cK as ToastAction, cL as ToastClose, cM as ToastDescription, cN as ToastProps, cO as ToastProvider, cP as ToastTitle, cQ as ToastViewport, cR as Toaster, cS as Toggle, cT as ToggleGroup, cU as ToggleGroupItem, cV as Toolbar, cW as ToolbarButton, cX as ToolbarLink, cY as ToolbarSeparator, cZ as ToolbarToggleGroup, c_ as ToolbarToggleItem, c$ as Tooltip, d0 as TooltipContent, d1 as TooltipProvider, d2 as TooltipTrigger, d3 as alertVariants, d4 as badgeVariants, d5 as controlClass, d6 as controlSurfaceClass, d7 as formatPickerDate, d8 as navigationMenuTriggerStyle, d9 as overlayAnimationClass, da as overlayItemClass, db as overlayListPanelClass, dc as overlaySurfaceClass, dd as toast, de as toggleVariants, df as useToast } from './circular-progress-B9nnwzCu.cjs';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import * as React from 'react';
|
package/dist/ui.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AVATAR_PRIMARY_FALLBACK_CLASS, a as Avatar, b as AvatarFallback, c as AvatarImage, B as Banner, d as BannerProps, e as BannerSize, f as BannerTone, g as BannerVariant, h as Button, i as ButtonColor, K as Kanban, j as KanbanCardData, k as KanbanCardVariant, l as KanbanColumnData, m as KanbanDensity, n as KanbanDragHandleProps, o as KanbanLocation, p as KanbanMoveEvent, q as KanbanProps, r as KanbanRenderCardContext, s as KanbanTone, T as Timeline, t as TimelineItem, u as TimelineProps, v as TimelineSize, U as UntitledButton, w as UntitledButtonColor, x as UntitledButtonProps, y as UntitledButtonSize, z as avatarChartVariantClass, C as untitledButtonVariants } from './kanban-
|
|
1
|
+
export { A as AVATAR_PRIMARY_FALLBACK_CLASS, a as Avatar, b as AvatarFallback, c as AvatarImage, B as Banner, d as BannerProps, e as BannerSize, f as BannerTone, g as BannerVariant, h as Button, i as ButtonColor, K as Kanban, j as KanbanCardData, k as KanbanCardVariant, l as KanbanColumnData, m as KanbanDensity, n as KanbanDragHandleProps, o as KanbanLocation, p as KanbanMoveEvent, q as KanbanProps, r as KanbanRenderCardContext, s as KanbanTone, T as Timeline, t as TimelineItem, u as TimelineProps, v as TimelineSize, U as UntitledButton, w as UntitledButtonColor, x as UntitledButtonProps, y as UntitledButtonSize, z as avatarChartVariantClass, C as untitledButtonVariants } from './kanban-BQxWliCS.js';
|
|
2
2
|
export { A as Accordion, a as AccordionContent, b as AccordionItem, c as AccordionTrigger, d as Alert, e as AlertDescription, f as AlertDialog, g as AlertDialogAction, h as AlertDialogCancel, i as AlertDialogContent, j as AlertDialogDescription, k as AlertDialogFooter, l as AlertDialogHeader, m as AlertDialogOverlay, n as AlertDialogPortal, o as AlertDialogTitle, p as AlertDialogTrigger, q as AlertTitle, r as AspectRatio, s as AvatarGroup, t as AvatarGroupProps, B as Badge, u as Breadcrumb, v as BreadcrumbEllipsis, w as BreadcrumbItem, x as BreadcrumbLink, y as BreadcrumbList, z as BreadcrumbPage, C as BreadcrumbSeparator, D as CONTROL_SIZE, E as Calendar, F as CalendarDayButton, G as Card, H as CardContent, I as CardDescription, J as CardFooter, K as CardHeader, L as CardTitle, M as Checkbox, N as CircularProgress, O as CircularProgressProps, P as Collapsible, Q as CollapsibleContent, R as CollapsibleTrigger, S as Combobox, T as ComboboxAnchor, U as ComboboxCommand, V as ComboboxContent, W as ComboboxEmpty, X as ComboboxGroup, Y as ComboboxInput, Z as ComboboxItem, _ as ComboboxList, $ as ComboboxSeparator, a0 as ComboboxShortcut, a1 as ComboboxTrigger, a2 as Command, a3 as CommandDialog, a4 as CommandEmpty, a5 as CommandGroup, a6 as CommandInput, a7 as CommandItem, a8 as CommandList, a9 as CommandSeparator, aa as CommandShortcut, ab as ContextMenu, ac as ContextMenuCheckboxItem, ad as ContextMenuContent, ae as ContextMenuGroup, af as ContextMenuItem, ag as ContextMenuLabel, ah as ContextMenuRadioGroup, ai as ContextMenuRadioItem, aj as ContextMenuSeparator, ak as ContextMenuShortcut, al as ContextMenuSub, am as ContextMenuSubContent, an as ContextMenuSubTrigger, ao as ContextMenuTrigger, ap as ControlClassOptions, aq as ControlShape, ar as ControlSize, as as CopyButton, at as CopyButtonProps, au as DatePicker, av as DatePickerButton, aw as DatePickerCalendar, ax as DatePickerContent, ay as DatePickerTrigger, az as Dialog, aA as DialogClose, aB as DialogContent, aC as DialogDescription, aD as DialogFooter, aE as DialogHeader, aF as DialogOverlay, aG as DialogPortal, aH as DialogTitle, aI as DialogTrigger, aJ as DropdownMenu, aK as DropdownMenuCheckboxItem, aL as DropdownMenuContent, aM as DropdownMenuGroup, aN as DropdownMenuItem, aO as DropdownMenuLabel, aP as DropdownMenuRadioGroup, aQ as DropdownMenuRadioItem, aR as DropdownMenuSeparator, aS as DropdownMenuShortcut, aT as DropdownMenuSub, aU as DropdownMenuSubContent, aV as DropdownMenuSubTrigger, aW as DropdownMenuTrigger, aX as Form, aY as FormControl, aZ as FormField, a_ as FormItem, a$ as FormLabel, b0 as FormMessage, b1 as FormSubmit, b2 as HoverCard, b3 as HoverCardContent, b4 as HoverCardTrigger, b5 as Input, b6 as InputGroup, b7 as InputGroupAddon, b8 as InputGroupInput, b9 as InputGroupText, ba as InputOTP, bb as InputOTPGroup, bc as InputOTPHiddenInput, bd as InputOTPSeparator, be as InputOTPSlot, bf as Kbd, bg as KbdGroup, bh as Label, bi as MemoPillSegmentedTabs, bj as Menubar, bk as MenubarCheckboxItem, bl as MenubarContent, bm as MenubarItem, bn as MenubarLabel, bo as MenubarMenu, bp as MenubarRadioGroup, bq as MenubarRadioItem, br as MenubarSeparator, bs as MenubarShortcut, bt as MenubarSub, bu as MenubarSubContent, bv as MenubarSubTrigger, bw as MenubarTrigger, bx as NavigationMenu, by as NavigationMenuContent, bz as NavigationMenuIndicator, bA as NavigationMenuItem, bB as NavigationMenuLink, bC as NavigationMenuList, bD as NavigationMenuTrigger, bE as NavigationMenuViewport, bF as NumberField, bG as NumberFieldProps, bH as Pagination, bI as PaginationContent, bJ as PaginationEllipsis, bK as PaginationItem, bL as PaginationLink, bM as PaginationNext, bN as PaginationPrevious, bO as PillSegmentedTab, bP as PillSegmentedTabs, bQ as PillSegmentedTabsProps, bR as Popover, bS as PopoverAnchor, bT as PopoverContent, bU as PopoverTrigger, bV as Progress, bW as RadioGroup, bX as RadioGroupItem, bY as Rating, bZ as RatingProps, b_ as RatingTone, b$ as ScrollArea, c0 as ScrollBar, c1 as Select, c2 as SelectContent, c3 as SelectGroup, c4 as SelectItem, c5 as SelectLabel, c6 as SelectScrollDownButton, c7 as SelectScrollUpButton, c8 as SelectSeparator, c9 as SelectTrigger, ca as SelectValue, cb as Separator, cc as Sheet, cd as SheetClose, ce as SheetContent, cf as SheetDescription, cg as SheetFooter, ch as SheetHeader, ci as SheetTitle, cj as SheetTrigger, ck as Shimmer, cl as Skeleton, cm as Slider, cn as Snippet, co as SnippetProps, cp as SnippetSize, cq as SnippetVariant, cr as Spinner, cs as Stepper, ct as StepperProps, cu as StepperStep, cv as Switch, cw as Table, cx as TableBody, cy as TableCaption, cz as TableCell, cA as TableFooter, cB as TableHead, cC as TableHeader, cD as TableRow, cE as TagInput, cF as TagInputProps, cG as TagInputSize, cH as TextShimmerProps, cI as Textarea, cJ as Toast, cK as ToastAction, cL as ToastClose, cM as ToastDescription, cN as ToastProps, cO as ToastProvider, cP as ToastTitle, cQ as ToastViewport, cR as Toaster, cS as Toggle, cT as ToggleGroup, cU as ToggleGroupItem, cV as Toolbar, cW as ToolbarButton, cX as ToolbarLink, cY as ToolbarSeparator, cZ as ToolbarToggleGroup, c_ as ToolbarToggleItem, c$ as Tooltip, d0 as TooltipContent, d1 as TooltipProvider, d2 as TooltipTrigger, d3 as alertVariants, d4 as badgeVariants, d5 as controlClass, d6 as controlSurfaceClass, d7 as formatPickerDate, d8 as navigationMenuTriggerStyle, d9 as overlayAnimationClass, da as overlayItemClass, db as overlayListPanelClass, dc as overlaySurfaceClass, dd as toast, de as toggleVariants, df as useToast } from './circular-progress-B9nnwzCu.js';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import * as React from 'react';
|