@arbidocs/blocks 0.4.2 → 0.4.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.
Files changed (139) hide show
  1. package/README.md +42 -0
  2. package/dist/agents/index.cjs +147 -146
  3. package/dist/agents/index.js +3 -2
  4. package/dist/chat/AssistantDock.d.ts +39 -0
  5. package/dist/chat/ChatDocuments.d.ts +17 -0
  6. package/dist/chat/ChatPage.d.ts +16 -0
  7. package/dist/chat/ChatThreads.d.ts +28 -0
  8. package/dist/chat/chat-page-types.d.ts +121 -0
  9. package/dist/chat/chat-surface.d.ts +9 -0
  10. package/dist/chat/index.cjs +247 -205
  11. package/dist/chat/index.d.ts +6 -0
  12. package/dist/chat/index.js +4 -2
  13. package/dist/{chunk-OBLSURHV.js → chunk-2NNTQLBY.js} +3 -3
  14. package/dist/{chunk-OBLSURHV.js.map → chunk-2NNTQLBY.js.map} +1 -1
  15. package/dist/chunk-2VBJ763Y.js +296 -0
  16. package/dist/chunk-2VBJ763Y.js.map +1 -0
  17. package/dist/{chunk-2ORA62OF.js → chunk-67MKU5U7.js} +3 -3
  18. package/dist/{chunk-2ORA62OF.js.map → chunk-67MKU5U7.js.map} +1 -1
  19. package/dist/{chunk-AE5FHFZ5.cjs → chunk-6CHMNKXC.cjs} +6 -6
  20. package/dist/{chunk-AE5FHFZ5.cjs.map → chunk-6CHMNKXC.cjs.map} +1 -1
  21. package/dist/{chunk-ITGHMJOM.js → chunk-AAY5ASZD.js} +5 -4
  22. package/dist/chunk-AAY5ASZD.js.map +1 -0
  23. package/dist/chunk-ATXPAD6S.cjs +1952 -0
  24. package/dist/chunk-ATXPAD6S.cjs.map +1 -0
  25. package/dist/{chunk-YBXCZEWS.js → chunk-B673CCW5.js} +29 -6
  26. package/dist/chunk-B673CCW5.js.map +1 -0
  27. package/dist/{chunk-2K33YGM6.cjs → chunk-DN3NFNIA.cjs} +63 -294
  28. package/dist/chunk-DN3NFNIA.cjs.map +1 -0
  29. package/dist/{chunk-XQ7PKKDY.cjs → chunk-G4YOH5DU.cjs} +3 -3
  30. package/dist/{chunk-XQ7PKKDY.cjs.map → chunk-G4YOH5DU.cjs.map} +1 -1
  31. package/dist/{chunk-AXIZ2MDV.js → chunk-HER7MTRR.js} +3 -3
  32. package/dist/{chunk-AXIZ2MDV.js.map → chunk-HER7MTRR.js.map} +1 -1
  33. package/dist/chunk-JPO3F4J7.js +1899 -0
  34. package/dist/chunk-JPO3F4J7.js.map +1 -0
  35. package/dist/{chunk-WJMEXTVD.cjs → chunk-KDG6FER6.cjs} +28 -2
  36. package/dist/chunk-KDG6FER6.cjs.map +1 -0
  37. package/dist/chunk-KHX2BX3S.cjs +307 -0
  38. package/dist/chunk-KHX2BX3S.cjs.map +1 -0
  39. package/dist/{chunk-WTNMWEBC.js → chunk-NJL4LIXX.js} +4 -3
  40. package/dist/chunk-NJL4LIXX.js.map +1 -0
  41. package/dist/{chunk-J2BGSWXM.cjs → chunk-O637DUKS.cjs} +27 -27
  42. package/dist/{chunk-J2BGSWXM.cjs.map → chunk-O637DUKS.cjs.map} +1 -1
  43. package/dist/{chunk-WW6EOVZA.js → chunk-OXF2IFXG.js} +26 -3
  44. package/dist/chunk-OXF2IFXG.js.map +1 -0
  45. package/dist/{chunk-6HIPFEID.cjs → chunk-PBS5MFIY.cjs} +4 -4
  46. package/dist/{chunk-6HIPFEID.cjs.map → chunk-PBS5MFIY.cjs.map} +1 -1
  47. package/dist/{chunk-AZQDNYH4.js → chunk-RCP6THBS.js} +9 -1249
  48. package/dist/chunk-RCP6THBS.js.map +1 -0
  49. package/dist/{chunk-GDFWJ73C.cjs → chunk-RIL7G7AS.cjs} +4 -1286
  50. package/dist/chunk-RIL7G7AS.cjs.map +1 -0
  51. package/dist/{chunk-DREI7EQ2.cjs → chunk-SS23F63U.cjs} +9 -9
  52. package/dist/{chunk-DREI7EQ2.cjs.map → chunk-SS23F63U.cjs.map} +1 -1
  53. package/dist/{chunk-7PEELPMA.js → chunk-TI4UTYRL.js} +62 -285
  54. package/dist/chunk-TI4UTYRL.js.map +1 -0
  55. package/dist/{chunk-XNBAXRY7.cjs → chunk-VXOGANFJ.cjs} +13 -12
  56. package/dist/chunk-VXOGANFJ.cjs.map +1 -0
  57. package/dist/{chunk-6P6AEQJB.js → chunk-WJZBJUPX.js} +4 -4
  58. package/dist/{chunk-6P6AEQJB.js.map → chunk-WJZBJUPX.js.map} +1 -1
  59. package/dist/{chunk-UFHMLHIR.cjs → chunk-XAJIKT6Y.cjs} +32 -11
  60. package/dist/chunk-XAJIKT6Y.cjs.map +1 -0
  61. package/dist/{chunk-G3G7LZPM.cjs → chunk-XKKGGUU2.cjs} +29 -3
  62. package/dist/chunk-XKKGGUU2.cjs.map +1 -0
  63. package/dist/{chunk-UWGIB3VQ.js → chunk-XNOASBGW.js} +33 -12
  64. package/dist/chunk-XNOASBGW.js.map +1 -0
  65. package/dist/{chunk-CTZ5745I.js → chunk-XQKGYGCJ.js} +3 -3
  66. package/dist/{chunk-CTZ5745I.js.map → chunk-XQKGYGCJ.js.map} +1 -1
  67. package/dist/{chunk-54Q3RNJU.cjs → chunk-ZVPTFTGV.cjs} +4 -3
  68. package/dist/chunk-ZVPTFTGV.cjs.map +1 -0
  69. package/dist/citations/index.cjs +11 -11
  70. package/dist/citations/index.js +2 -2
  71. package/dist/components/MemberAvatarStack.d.ts +7 -2
  72. package/dist/connect/index.cjs +41 -12
  73. package/dist/connect/index.cjs.map +1 -1
  74. package/dist/connect/index.d.ts +3 -2
  75. package/dist/connect/index.js +20 -4
  76. package/dist/connect/index.js.map +1 -1
  77. package/dist/connection/ConnectionProvider.d.ts +2 -0
  78. package/dist/connection/ai.d.ts +13 -1
  79. package/dist/connection/useConnectedShellWorkspaces.d.ts +15 -0
  80. package/dist/facts/index.cjs +3 -3
  81. package/dist/facts/index.cjs.map +1 -1
  82. package/dist/facts/index.js +2 -2
  83. package/dist/facts/index.js.map +1 -1
  84. package/dist/files/index.cjs +4 -3
  85. package/dist/files/index.cjs.map +1 -1
  86. package/dist/files/index.js +4 -3
  87. package/dist/files/index.js.map +1 -1
  88. package/dist/home/index.cjs +18 -17
  89. package/dist/home/index.cjs.map +1 -1
  90. package/dist/home/index.js +3 -2
  91. package/dist/home/index.js.map +1 -1
  92. package/dist/index.cjs +637 -580
  93. package/dist/index.cjs.map +1 -1
  94. package/dist/index.d.ts +1 -1
  95. package/dist/index.js +13 -12
  96. package/dist/index.js.map +1 -1
  97. package/dist/lib/format.d.ts +31 -0
  98. package/dist/retrieval/index.cjs +36 -36
  99. package/dist/retrieval/index.js +1 -1
  100. package/dist/settings/index.cjs +12 -10
  101. package/dist/settings/index.cjs.map +1 -1
  102. package/dist/settings/index.js +12 -10
  103. package/dist/settings/index.js.map +1 -1
  104. package/dist/shell/SplitLayout.d.ts +32 -0
  105. package/dist/shell/index.cjs +72 -68
  106. package/dist/shell/index.d.ts +1 -0
  107. package/dist/shell/index.js +2 -2
  108. package/dist/site/index.cjs +71 -71
  109. package/dist/site/index.js +3 -3
  110. package/dist/studio/index.cjs +79 -76
  111. package/dist/studio/index.cjs.map +1 -1
  112. package/dist/studio/index.js +9 -6
  113. package/dist/studio/index.js.map +1 -1
  114. package/dist/workspaces/WorkspaceGallery.d.ts +42 -0
  115. package/dist/workspaces/index.cjs +74 -7
  116. package/dist/workspaces/index.cjs.map +1 -1
  117. package/dist/workspaces/index.d.ts +2 -0
  118. package/dist/workspaces/index.js +73 -7
  119. package/dist/workspaces/index.js.map +1 -1
  120. package/package.json +3 -3
  121. package/src/blocks.css +10 -13
  122. package/dist/chunk-2K33YGM6.cjs.map +0 -1
  123. package/dist/chunk-54Q3RNJU.cjs.map +0 -1
  124. package/dist/chunk-7PEELPMA.js.map +0 -1
  125. package/dist/chunk-AZQDNYH4.js.map +0 -1
  126. package/dist/chunk-G3G7LZPM.cjs.map +0 -1
  127. package/dist/chunk-GDFWJ73C.cjs.map +0 -1
  128. package/dist/chunk-ITGHMJOM.js.map +0 -1
  129. package/dist/chunk-SCFYPAG6.cjs +0 -18
  130. package/dist/chunk-SCFYPAG6.cjs.map +0 -1
  131. package/dist/chunk-UFHMLHIR.cjs.map +0 -1
  132. package/dist/chunk-UWGIB3VQ.js.map +0 -1
  133. package/dist/chunk-WJMEXTVD.cjs.map +0 -1
  134. package/dist/chunk-WTNMWEBC.js.map +0 -1
  135. package/dist/chunk-WW6EOVZA.js.map +0 -1
  136. package/dist/chunk-XNBAXRY7.cjs.map +0 -1
  137. package/dist/chunk-YBXCZEWS.js.map +0 -1
  138. package/dist/chunk-YDHO4AVL.js +0 -16
  139. package/dist/chunk-YDHO4AVL.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var chunkOB5F4577_cjs = require('./chunk-OB5F4577.cjs');
5
- var chunkSCFYPAG6_cjs = require('./chunk-SCFYPAG6.cjs');
5
+ var chunkKHX2BX3S_cjs = require('./chunk-KHX2BX3S.cjs');
6
6
  var chunkMHVNT4J3_cjs = require('./chunk-MHVNT4J3.cjs');
7
7
  var react = require('react');
8
8
  var lucideReact = require('lucide-react');
@@ -10,261 +10,6 @@ var ui = require('@arbidocs/react/ui');
10
10
  var jsxRuntime = require('react/jsx-runtime');
11
11
  var shell = require('@arbidocs/react/shell');
12
12
 
13
- var FOCUSABLE = 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])';
14
- function focusableIn(container) {
15
- return Array.from(container.querySelectorAll(FOCUSABLE)).filter(
16
- (el) => !el.closest("[inert]") && el.getAttribute("aria-hidden") !== "true"
17
- );
18
- }
19
- function useDrawerBehavior(isOpen, onClose, containerRef) {
20
- const onCloseRef = react.useRef(onClose);
21
- react.useEffect(() => {
22
- onCloseRef.current = onClose;
23
- });
24
- react.useEffect(() => {
25
- if (!isOpen) return;
26
- const previousOverflow = document.body.style.overflow;
27
- const opener = document.activeElement instanceof HTMLElement ? document.activeElement : null;
28
- document.body.style.overflow = "hidden";
29
- const container = containerRef?.current ?? null;
30
- if (container) {
31
- const first = focusableIn(container)[0];
32
- if (first) first.focus();
33
- else {
34
- if (!container.hasAttribute("tabindex")) container.setAttribute("tabindex", "-1");
35
- container.focus();
36
- }
37
- }
38
- const onKey = (e) => {
39
- if (e.key === "Escape") {
40
- onCloseRef.current();
41
- return;
42
- }
43
- if (e.key !== "Tab" || !container) return;
44
- const items = focusableIn(container);
45
- if (items.length === 0) {
46
- e.preventDefault();
47
- return;
48
- }
49
- const firstItem = items[0];
50
- const lastItem = items[items.length - 1];
51
- const active = document.activeElement;
52
- if (!container.contains(active)) {
53
- e.preventDefault();
54
- firstItem.focus();
55
- } else if (e.shiftKey && active === firstItem) {
56
- e.preventDefault();
57
- lastItem.focus();
58
- } else if (!e.shiftKey && active === lastItem) {
59
- e.preventDefault();
60
- firstItem.focus();
61
- }
62
- };
63
- window.addEventListener("keydown", onKey);
64
- return () => {
65
- document.body.style.overflow = previousOverflow;
66
- window.removeEventListener("keydown", onKey);
67
- if (opener?.isConnected) opener.focus();
68
- };
69
- }, [isOpen, containerRef]);
70
- }
71
- var DEFAULT_OVERLAY_ZONE_ID = "app-overlay-zone";
72
- var OverlayZoneContext = react.createContext(DEFAULT_OVERLAY_ZONE_ID);
73
- function useOverlayZoneId() {
74
- return react.useContext(OverlayZoneContext);
75
- }
76
- function ShellRoot({
77
- banner,
78
- topbar,
79
- sidebar,
80
- tabBar,
81
- aside,
82
- overlays,
83
- children,
84
- className,
85
- "data-testid": testId
86
- }) {
87
- return /* @__PURE__ */ jsxRuntime.jsx(chunkSCFYPAG6_cjs.BlocksTooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs(
88
- "div",
89
- {
90
- "data-slot": "shell",
91
- "data-testid": testId,
92
- className: ui.cn("flex h-screen flex-col", className),
93
- children: [
94
- banner,
95
- topbar,
96
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-1 overflow-hidden", children: [
97
- sidebar,
98
- children,
99
- aside,
100
- overlays
101
- ] }),
102
- tabBar
103
- ]
104
- }
105
- ) });
106
- }
107
- function ShellContent({
108
- children,
109
- scrollRef,
110
- onClick,
111
- overlayZoneId = DEFAULT_OVERLAY_ZONE_ID,
112
- className
113
- }) {
114
- return /* @__PURE__ */ jsxRuntime.jsx(
115
- "div",
116
- {
117
- "data-slot": "shell-content",
118
- className: ui.cn("flex min-w-0 flex-1 flex-col", className),
119
- onClick,
120
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative min-h-0 flex-1", children: [
121
- /* @__PURE__ */ jsxRuntime.jsx(OverlayZoneContext.Provider, { value: overlayZoneId, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref: scrollRef, className: "h-full overflow-auto", children }) }),
122
- /* @__PURE__ */ jsxRuntime.jsx("div", { id: overlayZoneId, "data-slot": "overlay-zone" })
123
- ] })
124
- }
125
- );
126
- }
127
- function ShellTopbar({ children, actions, className }) {
128
- return (
129
- // `relative z-30` keeps dropdowns the header opens above the page region (a later sibling).
130
- /* @__PURE__ */ jsxRuntime.jsxs(
131
- "div",
132
- {
133
- "data-slot": "shell-topbar",
134
- className: ui.cn("relative z-30 flex h-14 shrink-0 items-center bg-background px-2", className),
135
- children: [
136
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex w-full max-w-6xl items-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden min-w-0 flex-1 px-6 sm:block", children }) }),
137
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute right-4 top-1/2 flex -translate-y-1/2 items-center gap-1", children: actions })
138
- ]
139
- }
140
- )
141
- );
142
- }
143
- function ShellDock({
144
- isOpen,
145
- onOpenChange,
146
- width = "24rem",
147
- isMobile = false,
148
- label,
149
- closeLabel = "Close",
150
- children,
151
- className,
152
- "data-testid": testId
153
- }) {
154
- const mobileRef = react.useRef(null);
155
- const closeMobile = react.useCallback(() => onOpenChange?.(false), [onOpenChange]);
156
- useDrawerBehavior(isOpen && isMobile, closeMobile, mobileRef);
157
- if (!isOpen) return null;
158
- if (isMobile) {
159
- return /* @__PURE__ */ jsxRuntime.jsxs(
160
- "div",
161
- {
162
- ref: mobileRef,
163
- role: "dialog",
164
- "aria-modal": "true",
165
- "aria-label": label,
166
- "data-slot": "shell-dock",
167
- "data-state": "open",
168
- "data-mobile": "true",
169
- "data-testid": testId,
170
- className: ui.cn("fixed inset-0 z-40 flex flex-col bg-background", className),
171
- children: [
172
- onOpenChange && /* @__PURE__ */ jsxRuntime.jsx(
173
- "button",
174
- {
175
- type: "button",
176
- onClick: () => onOpenChange(false),
177
- "aria-label": closeLabel,
178
- className: "absolute right-2 top-2 z-10 rounded-md p-2 text-muted-foreground hover:bg-muted",
179
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { className: "size-5" })
180
- }
181
- ),
182
- children
183
- ]
184
- }
185
- );
186
- }
187
- return /* @__PURE__ */ jsxRuntime.jsx(
188
- "aside",
189
- {
190
- "aria-label": label,
191
- "data-slot": "shell-dock",
192
- "data-state": "open",
193
- "data-testid": testId,
194
- style: { width },
195
- className: ui.cn(
196
- "flex shrink-0 flex-col overflow-hidden border-l border-border bg-background",
197
- className
198
- ),
199
- children
200
- }
201
- );
202
- }
203
- var Shell = {
204
- Root: ShellRoot,
205
- Content: ShellContent,
206
- Topbar: ShellTopbar,
207
- Dock: ShellDock
208
- };
209
- var DEFAULT_PAGE_CONTAINER_PADDING = "px-4 sm:px-6 lg:px-8";
210
- function PageContainer({
211
- children,
212
- wide = false,
213
- minScreen = false,
214
- maxWidth = "max-w-6xl",
215
- padding = DEFAULT_PAGE_CONTAINER_PADDING,
216
- innerClassName,
217
- className
218
- }) {
219
- return /* @__PURE__ */ jsxRuntime.jsx(
220
- "div",
221
- {
222
- "data-slot": "page-container",
223
- className: ui.cn(
224
- "bg-background pb-safe",
225
- minScreen ? "min-h-screen" : "h-full min-h-0",
226
- className
227
- ),
228
- children: /* @__PURE__ */ jsxRuntime.jsx(
229
- "div",
230
- {
231
- className: ui.cn(
232
- "flex h-full w-full flex-col pb-safe",
233
- padding,
234
- !wide && ui.cn("mx-auto", maxWidth),
235
- innerClassName
236
- ),
237
- children
238
- }
239
- )
240
- }
241
- );
242
- }
243
- var DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS = {
244
- closeSidebar: "Close sidebar",
245
- openSidebar: "Open sidebar"
246
- };
247
- function SidebarToggleButton({
248
- isOpen,
249
- onToggle,
250
- labels,
251
- "data-testid": testId = "tabheader-sidebar-toggle"
252
- }) {
253
- const l = { ...DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS, ...labels };
254
- const label = isOpen ? l.closeSidebar : l.openSidebar;
255
- return /* @__PURE__ */ jsxRuntime.jsx(
256
- "button",
257
- {
258
- type: "button",
259
- onClick: onToggle,
260
- className: "rounded-md p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground pointer-coarse:p-2.5",
261
- "aria-label": label,
262
- title: label,
263
- "data-testid": testId,
264
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PanelLeft, { className: "size-5" })
265
- }
266
- );
267
- }
268
13
  var DEFAULT_SIDEBAR_LABELS = {
269
14
  mainNavigation: "Main navigation",
270
15
  hideSidebar: "Hide sidebar",
@@ -372,7 +117,7 @@ function SidebarRoot({
372
117
  const mergedLabels = react.useMemo(() => ({ ...DEFAULT_SIDEBAR_LABELS, ...labels }), [labels]);
373
118
  const drawerRef = react.useRef(null);
374
119
  const isDrawer = mode === "drawer";
375
- useDrawerBehavior(isDrawer, onBackdropClick ?? noop, drawerRef);
120
+ chunkKHX2BX3S_cjs.useDrawerBehavior(isDrawer, onBackdropClick ?? noop, drawerRef);
376
121
  const ariaLabel = ariaLabelProp ?? mergedLabels.mainNavigation;
377
122
  const contextValue = react.useMemo(() => ({ expanded, labels: mergedLabels }), [expanded, mergedLabels]);
378
123
  const navBase = "group/sidebar bg-sidebar border-r border-border text-foreground flex flex-col h-full overflow-y-auto overflow-x-hidden pb-safe pt-3 transition-all duration-300 ease-in-out";
@@ -488,7 +233,7 @@ function SidebarRoot({
488
233
  )
489
234
  ] });
490
235
  }
491
- return /* @__PURE__ */ jsxRuntime.jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunkSCFYPAG6_cjs.BlocksTooltipProvider, { children: body }) });
236
+ return /* @__PURE__ */ jsxRuntime.jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunkKHX2BX3S_cjs.BlocksTooltipProvider, { children: body }) });
492
237
  }
493
238
  function SidebarHeader({ children, className, "data-testid": testId }) {
494
239
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -811,7 +556,7 @@ function SidebarRowAction({
811
556
  "text-muted-foreground hover:bg-muted hover:text-foreground",
812
557
  rowHovered ? "opacity-100" : "opacity-70"
813
558
  );
814
- return /* @__PURE__ */ jsxRuntime.jsx(chunkSCFYPAG6_cjs.BlocksTooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
559
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkKHX2BX3S_cjs.BlocksTooltipProvider, { children: /* @__PURE__ */ jsxRuntime.jsxs(ui.Tooltip, { children: [
815
560
  /* @__PURE__ */ jsxRuntime.jsx(ui.TooltipTrigger, { asChild: true, onFocusCapture: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsx(
816
561
  "button",
817
562
  {
@@ -1409,30 +1154,6 @@ function ActionCluster({
1409
1154
  }
1410
1155
  );
1411
1156
  }
1412
- function ToolButton({
1413
- onClick,
1414
- label,
1415
- active = false,
1416
- "data-testid": testId,
1417
- children
1418
- }) {
1419
- return /* @__PURE__ */ jsxRuntime.jsx(
1420
- "button",
1421
- {
1422
- type: "button",
1423
- onClick,
1424
- title: label,
1425
- "aria-label": label,
1426
- "data-slot": "tool-button",
1427
- "data-testid": testId,
1428
- className: ui.cn(
1429
- "relative flex size-9 shrink-0 items-center justify-center rounded-md transition-colors hover:bg-accent hover:text-accent-foreground pointer-coarse:size-11",
1430
- active ? "bg-accent text-accent-foreground" : "text-muted-foreground"
1431
- ),
1432
- children
1433
- }
1434
- );
1435
- }
1436
1157
  var TONES = {
1437
1158
  progress: { className: "bg-muted text-foreground", Icon: lucideReact.Loader2, spin: true },
1438
1159
  success: { className: "bg-green-bg text-green-text", Icon: lucideReact.CheckCircle2 },
@@ -1794,6 +1515,62 @@ function InfoBar({
1794
1515
  }
1795
1516
  );
1796
1517
  }
1518
+ var SECONDARY_WIDTH = {
1519
+ sm: "@3xl:w-72",
1520
+ md: "@3xl:w-80",
1521
+ lg: "@3xl:w-96",
1522
+ xl: "@3xl:w-[28rem]"
1523
+ };
1524
+ function SplitLayout({
1525
+ primary,
1526
+ secondary,
1527
+ secondarySize = "md",
1528
+ secondaryPosition = "end",
1529
+ secondaryFirstWhenStacked = false,
1530
+ className,
1531
+ primaryClassName,
1532
+ secondaryClassName,
1533
+ testId = "split-layout"
1534
+ }) {
1535
+ const secondaryAtStart = secondaryPosition === "start";
1536
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1537
+ "div",
1538
+ {
1539
+ "data-slot": "split-layout",
1540
+ "data-testid": testId,
1541
+ className: ui.cn("flex flex-col gap-6 @3xl:flex-row @3xl:items-start", className),
1542
+ children: [
1543
+ /* @__PURE__ */ jsxRuntime.jsx(
1544
+ "div",
1545
+ {
1546
+ "data-slot": "split-primary",
1547
+ className: ui.cn(
1548
+ "min-w-0 @3xl:flex-1",
1549
+ secondaryFirstWhenStacked && "order-2",
1550
+ secondaryAtStart ? "@3xl:order-2" : "@3xl:order-1",
1551
+ primaryClassName
1552
+ ),
1553
+ children: primary
1554
+ }
1555
+ ),
1556
+ /* @__PURE__ */ jsxRuntime.jsx(
1557
+ "div",
1558
+ {
1559
+ "data-slot": "split-secondary",
1560
+ className: ui.cn(
1561
+ "min-w-0 @3xl:shrink-0",
1562
+ SECONDARY_WIDTH[secondarySize],
1563
+ secondaryFirstWhenStacked && "order-1",
1564
+ secondaryAtStart ? "@3xl:order-1" : "@3xl:order-2",
1565
+ secondaryClassName
1566
+ ),
1567
+ children: secondary
1568
+ }
1569
+ )
1570
+ ]
1571
+ }
1572
+ );
1573
+ }
1797
1574
 
1798
1575
  Object.defineProperty(exports, "UserMenu", {
1799
1576
  enumerable: true,
@@ -1810,11 +1587,8 @@ exports.AskTrigger = AskTrigger;
1810
1587
  exports.DEFAULT_ASK_FIELD_LABELS = DEFAULT_ASK_FIELD_LABELS;
1811
1588
  exports.DEFAULT_MOBILE_BARS_LABELS = DEFAULT_MOBILE_BARS_LABELS;
1812
1589
  exports.DEFAULT_OFFLINE_PILL_LABELS = DEFAULT_OFFLINE_PILL_LABELS;
1813
- exports.DEFAULT_OVERLAY_ZONE_ID = DEFAULT_OVERLAY_ZONE_ID;
1814
- exports.DEFAULT_PAGE_CONTAINER_PADDING = DEFAULT_PAGE_CONTAINER_PADDING;
1815
1590
  exports.DEFAULT_REMOTE_CONTROL_PILL_LABELS = DEFAULT_REMOTE_CONTROL_PILL_LABELS;
1816
1591
  exports.DEFAULT_SIDEBAR_LABELS = DEFAULT_SIDEBAR_LABELS;
1817
- exports.DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS = DEFAULT_SIDEBAR_TOGGLE_BUTTON_LABELS;
1818
1592
  exports.DEFAULT_TIP_CARD_LABELS = DEFAULT_TIP_CARD_LABELS;
1819
1593
  exports.DEFAULT_WORKSPACE_KIND_LABELS = DEFAULT_WORKSPACE_KIND_LABELS;
1820
1594
  exports.DEFAULT_WORKSPACE_SWITCHER_LABELS = DEFAULT_WORKSPACE_SWITCHER_LABELS;
@@ -1822,25 +1596,20 @@ exports.InfoBar = InfoBar;
1822
1596
  exports.MobileAppBar = MobileAppBar;
1823
1597
  exports.MobileTabBar = MobileTabBar;
1824
1598
  exports.OfflinePill = OfflinePill;
1825
- exports.PageContainer = PageContainer;
1826
1599
  exports.RemoteControlPill = RemoteControlPill;
1827
- exports.Shell = Shell;
1828
1600
  exports.Sidebar = Sidebar;
1829
1601
  exports.SidebarBadgeRow = SidebarBadgeRow;
1830
1602
  exports.SidebarRowAction = SidebarRowAction;
1831
1603
  exports.SidebarRowHoverContext = SidebarRowHoverContext;
1832
- exports.SidebarToggleButton = SidebarToggleButton;
1604
+ exports.SplitLayout = SplitLayout;
1833
1605
  exports.StatusRow = StatusRow;
1834
1606
  exports.TipCard = TipCard;
1835
- exports.ToolButton = ToolButton;
1836
1607
  exports.WorkspaceIdentity = WorkspaceIdentity;
1837
1608
  exports.WorkspaceSwitcher = WorkspaceSwitcher;
1838
1609
  exports.resolveSidebarLayout = resolveSidebarLayout;
1839
- exports.useDrawerBehavior = useDrawerBehavior;
1840
- exports.useOverlayZoneId = useOverlayZoneId;
1841
1610
  exports.useSidebarContext = useSidebarContext;
1842
1611
  exports.useSidebarSettle = useSidebarSettle;
1843
1612
  exports.workspaceKindColor = workspaceKindColor;
1844
1613
  exports.workspaceKindMeta = workspaceKindMeta;
1845
- //# sourceMappingURL=chunk-2K33YGM6.cjs.map
1846
- //# sourceMappingURL=chunk-2K33YGM6.cjs.map
1614
+ //# sourceMappingURL=chunk-DN3NFNIA.cjs.map
1615
+ //# sourceMappingURL=chunk-DN3NFNIA.cjs.map