@botiverse/raft-ui 0.35.1 → 0.36.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/wip.mjs CHANGED
@@ -1,4 +1,5 @@
1
- import { $r as ListRow, Ai as DialogSheetBack, Bi as Button$1, Bn as MobileNavServerPopoverDestination, C as MessageListJumpPill, Cn as PreviewCardActions, F as MessageQuotedPreviewAuthorDelegatedBy, Ft as MessageItemDelegatedAvatar, Gi as useParentOverlayKind, Gn as MobileNavServerPopoverRowBody, Hi as Spinner, Hn as MobileNavServerPopoverGroup, Ii as TextLink, It as MessageItemDelegatedBy, Ji as useTheme, Kn as MobileNavServerPopoverRowDescription, Ln as MobileNavServerItem, Lt as MessageItemDelegatedByButton, Mi as DialogTitle, Ni as DialogTrigger, On as PreviewCardEyebrow, Qn as PopoverBody, Rn as MobileNavServerPopover, Rt as MessageItemDelegatedByName, S as MessageListJumpControls, Si as DialogContent, T as MessageListJumpPillGroup, Ti as DialogFooterNote, Tn as PreviewCardBody, Ui as defaultNativeButton, Un as MobileNavServerPopoverList, Vn as MobileNavServerPopoverDestinations, Wi as OverlayLayerProvider, Wn as MobileNavServerPopoverRow, Xi as tv, Xr as Checkbox, Yn as PopoverActions, _ as InboxItemTrailing, _i as DialogSheetContent, _n as useOverflowTitle, a as InboxItemContext, at as MessageReferenceIcon, b as useLatestRef, bn as observeTruncation, c as InboxItemLeading, ci as ListRowTop, di as TooltipContent, dn as RadioGroup, ei as ListRowBody, g as InboxItemTitle, gi as DialogCommit, gn as InputGroupInput, h as InboxItemTimestamp, hn as InputGroupAddon, i as InboxItemContent, jn as PreviewCardMeta, kn as PreviewCardFooter, lr as TOUCH_DRAG_HOLD_MS, lt as MessageReferenceReadMark, mi as TooltipTrigger, mn as InputGroup, o as InboxItemHeading, oi as ListRowMeta, pn as RadioGroupItem, qi as useThemeScopeProps, qn as MobileNavServerPopoverRowLabel, r as InboxItemBody, ri as ListRowDescription, si as ListRowTitle, t as InboxItem, ti as ListRowBottom, ui as Tooltip, ur as useHoldThenMoveTouchSensor, vn as measureContent, w as MessageListJumpPillDismiss, wr as DropdownMenuLinkItem, x as Skeleton, xi as DialogClose, xn as readNow, y as inboxItem, yi as Dialog, yn as measureElement, zn as MobileNavServerPopoverContent } from "./inbox-item-Cgu0ERol.mjs";
1
+ import { cn } from "./cn.mjs";
2
+ import { $i as DialogContent, A as DRAG_AUTO_SCROLL_ZONE_PX, Ai as ListRow, B as useDragSiblingTransition, Bn as RadioGroupItem, Br as TOUCH_DRAG_TOLERANCE_PX, C as DropPlaceholder, D as listKeyboardCoordinates, Da as tv, Di as Checkbox, E as MOUSE_DRAG_DISTANCE_PX, F as DROP_GLIDE, G as SILENT_DRAG_ANNOUNCEMENTS, Gi as TooltipTrigger, Gn as measureContent, H as LIFT_CLASS, Hi as TooltipContent, Hn as InputGroupAddon, Hr as useMouseOnlyPointerSensor, I as DragLift, Ir as HoldThenMoveTouchSensor, It as MessageReferenceReadMark, J as dragMessages, Ji as DialogSheetContent, Jn as readNow, K as createDragAnnouncements, Kn as measureElement, L as ORIGIN_OPACITY, Li as ListRowMeta, Lr as MouseOnlyPointerSensor, M as DRAG_LIFT_Z_INDEX, Mi as ListRowBottom, Mt as MessageReferenceIcon, N as DRAG_SETTLE, O as useDragAcrossLists, P as DRAG_SIBLING_TRANSITION, Pi as ListRowDescription, Q as MessageListJumpPillGroup, Qi as DialogClose, Qn as PreviewCardBody, R as cancelDrag, Ri as ListRowTitle, Rn as RadioGroup, Rr as TOUCH_DRAG_DISTANCE_PX, S as DragRefusalHint, Sa as useParentOverlayKind, Sr as PopoverActions, T as DragRemeasure, Ta as useTheme, Tr as PopoverBody, Un as InputGroupInput, Vi as Tooltip, Vn as InputGroup, Vr as useHoldThenMoveTouchSensor, W as DEFAULT_DRAG_MESSAGES, Wn as useOverflowTitle, X as MessageListJumpPill, Xi as Dialog, Xn as PreviewCardActions, Y as MessageListJumpControls, Z as MessageListJumpPillDismiss, _ as InboxItemTrailing, _a as Button$1, _r as MobileNavServerPopoverRow, a as InboxItemContext, b as useLatestRef, ba as defaultNativeButton, br as MobileNavServerPopoverRowLabel, c as InboxItemLeading, cn as MessageItemDelegatedAvatar, ct as MessageQuotedPreviewAuthorDelegatedBy, dn as MessageItemDelegatedByName, dr as MobileNavServerPopover, fr as MobileNavServerPopoverContent, g as InboxItemTitle, gr as MobileNavServerPopoverList, h as InboxItemTimestamp, hr as MobileNavServerPopoverGroup, i as InboxItemContent, ir as PreviewCardMeta, j as DRAG_KEYBOARD_OFFSET_PX, ji as ListRowBody, k as useDragSensors, la as DialogTitle, ln as MessageItemDelegatedBy, mr as MobileNavServerPopoverDestinations, na as DialogFooterNote, nr as PreviewCardFooter, o as InboxItemHeading, pa as TextLink, pr as MobileNavServerPopoverDestination, q as dragInstructions, qi as DialogCommit, qn as observeTruncation, r as InboxItemBody, sa as DialogSheetBack, t as InboxItem, ti as DropdownMenuLinkItem, tr as PreviewCardEyebrow, ua as DialogTrigger, un as MessageItemDelegatedByButton, ur as MobileNavServerItem, vr as MobileNavServerPopoverRowBody, w as DRAG_KEYBOARD_CODES, wa as useThemeScopeProps, x as Skeleton, xa as OverlayLayerProvider, y as inboxItem, ya as Spinner, yr as MobileNavServerPopoverRowDescription, z as keepGrabInside, zi as ListRowTop, zr as TOUCH_DRAG_HOLD_MS } from "./inbox-item-BB6vO4PO.mjs";
2
3
  import { Check, ChevronDown, LoaderCircle, Plus, Search, X } from "lucide-react";
3
4
  import { createContext, use, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
4
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -6,6 +7,7 @@ import { Button } from "@base-ui/react/button";
6
7
  import { mergeProps } from "@base-ui/react/merge-props";
7
8
  import { useRender } from "@base-ui/react/use-render";
8
9
  import { Combobox } from "@base-ui/react/combobox";
10
+ import { arrayMove, verticalListSortingStrategy } from "@dnd-kit/sortable";
9
11
  import { Meter as Meter$1 } from "@base-ui/react/meter";
10
12
  import { CheckboxGroup } from "@base-ui/react/checkbox-group";
11
13
  //#region src/lib/phone-media.ts
@@ -1125,6 +1127,255 @@ function useCommentMarginFits(element, { minWidth = 784 } = {}) {
1125
1127
  return desktop && element !== null && width >= minWidth;
1126
1128
  }
1127
1129
  //#endregion
1130
+ //#region src/components/drag/drag-lists.tsx
1131
+ /** dnd-kit's vertical strategy, except that nothing moves while the hand is outside the list. */
1132
+ const dragListStrategy = (args) => args.overIndex < 0 ? null : verticalListSortingStrategy(args);
1133
+ /**
1134
+ * Items in one or more lists that can be reordered and moved between lists
1135
+ * (a sidebar's sections, a board's columns): the lists half of the drag
1136
+ * model (design/patterns/drag-and-drop.md#where-it-will-land). While dragging,
1137
+ * the item stands at its landing spot (its own slot is the place; siblings
1138
+ * slide apart), a list can refuse it, and every step is announced by name.
1139
+ * The keyboard is measured from the item's real place, so the arrows never
1140
+ * skip one after a move into another list.
1141
+ *
1142
+ * Spread `handlers`, `collisionDetection` and `accessibility` on the
1143
+ * `DndContext`, pass `coordinateGetter` to `useDragSensors`, and render
1144
+ * `DragRemeasure version={items}` inside it.
1145
+ */
1146
+ function useDragLists({ lists, items, onItemsChange, listName, itemName, refuse, collisionDetection, announce, messages }) {
1147
+ const say = useMemo(() => dragMessages(messages), [messages]);
1148
+ const across = useDragAcrossLists(collisionDetection);
1149
+ const itemsRef = useRef(items);
1150
+ useLayoutEffect(() => {
1151
+ itemsRef.current = items;
1152
+ }, [items]);
1153
+ const [activeId, setActiveId] = useState(null);
1154
+ const [originList, setOriginList] = useState(null);
1155
+ const [refusal, setRefusalState] = useState(null);
1156
+ const refusalRef = useRef(refusal);
1157
+ const setRefusal = (next) => {
1158
+ refusalRef.current = next;
1159
+ setRefusalState(next);
1160
+ };
1161
+ const origin = useRef(null);
1162
+ const inserted = useRef(null);
1163
+ const listOf = useCallback((state, id) => lists.includes(id) ? id : lists.find((list) => state[list].includes(String(id))) ?? null, [lists]);
1164
+ const isList = (id) => lists.includes(id);
1165
+ const where = (state, id) => {
1166
+ const list = listOf(state, id);
1167
+ return {
1168
+ place: listName(list),
1169
+ position: state[list].indexOf(id) + 1,
1170
+ count: state[list].length
1171
+ };
1172
+ };
1173
+ const update = (next) => {
1174
+ itemsRef.current = next;
1175
+ onItemsChange(next);
1176
+ };
1177
+ /** Still home: in its own list, at its own index (pass the sortable's projected index). */
1178
+ const isHome = useCallback((id, index) => {
1179
+ const start = origin.current;
1180
+ return start != null && listOf(itemsRef.current, id) === start.list && index === start.index;
1181
+ }, [listOf]);
1182
+ const onDragStart = ({ active, activatorEvent }) => {
1183
+ const id = String(active.id);
1184
+ const list = listOf(items, id);
1185
+ if (!list) return;
1186
+ origin.current = {
1187
+ list,
1188
+ index: items[list].indexOf(id),
1189
+ snapshot: items,
1190
+ keyboard: typeof KeyboardEvent !== "undefined" && activatorEvent instanceof KeyboardEvent
1191
+ };
1192
+ inserted.current = null;
1193
+ setActiveId(id);
1194
+ setOriginList(list);
1195
+ announce(say.pickedUp({
1196
+ name: itemName(id),
1197
+ ...where(items, id)
1198
+ }));
1199
+ };
1200
+ const onDragOver = ({ active, over }) => {
1201
+ const start = origin.current;
1202
+ if (!start) return;
1203
+ const id = String(active.id);
1204
+ if (!over) {
1205
+ if (refusalRef.current) setRefusal(null);
1206
+ announce(say.notOver({ name: itemName(id) }));
1207
+ return;
1208
+ }
1209
+ const current = itemsRef.current;
1210
+ const from = listOf(current, id);
1211
+ const to = listOf(current, over.id);
1212
+ if (!from || !to) return;
1213
+ const reason = refuse?.(start.list, to, id) ?? null;
1214
+ if (reason) {
1215
+ setRefusal({
1216
+ list: to,
1217
+ reason
1218
+ });
1219
+ update(start.snapshot);
1220
+ inserted.current = null;
1221
+ announce(say.refused({
1222
+ name: itemName(id),
1223
+ place: listName(to),
1224
+ reason
1225
+ }));
1226
+ return;
1227
+ }
1228
+ if (refusalRef.current) setRefusal(null);
1229
+ if (from !== to) {
1230
+ const fromList = current[from].filter((item) => item !== id);
1231
+ const toList = [...current[to]];
1232
+ let at = toList.indexOf(String(over.id));
1233
+ if (at < 0) at = toList.length;
1234
+ else if (start.keyboard) {
1235
+ if (lists.indexOf(from) > lists.indexOf(to)) at += 1;
1236
+ } else {
1237
+ const rect = active.rect.current.translated;
1238
+ if (rect && rect.top + rect.height / 2 > over.rect.top + over.rect.height / 2) at += 1;
1239
+ }
1240
+ toList.splice(at, 0, id);
1241
+ const next = {
1242
+ ...current,
1243
+ [from]: fromList,
1244
+ [to]: toList
1245
+ };
1246
+ across.moved(start.keyboard);
1247
+ update(next);
1248
+ inserted.current = isList(over.id) ? null : over.id;
1249
+ announce(say.over({
1250
+ name: itemName(id),
1251
+ ...where(next, id)
1252
+ }));
1253
+ return;
1254
+ }
1255
+ if (over.id === id) {
1256
+ inserted.current = null;
1257
+ return;
1258
+ }
1259
+ const list = current[to];
1260
+ if (inserted.current === over.id) {
1261
+ announce(say.over({
1262
+ name: itemName(id),
1263
+ ...where(current, id)
1264
+ }));
1265
+ return;
1266
+ }
1267
+ inserted.current = null;
1268
+ const overIndex = isList(over.id) ? list.length - 1 : list.indexOf(String(over.id));
1269
+ announce(say.over({
1270
+ name: itemName(id),
1271
+ place: listName(to),
1272
+ position: overIndex + 1,
1273
+ count: list.length
1274
+ }));
1275
+ };
1276
+ const finish = (dropped, overId) => {
1277
+ const start = origin.current;
1278
+ const id = activeId;
1279
+ const refused = refusalRef.current;
1280
+ origin.current = null;
1281
+ across.reset();
1282
+ setActiveId(null);
1283
+ setOriginList(null);
1284
+ setRefusal(null);
1285
+ if (!start || !id) return;
1286
+ if (!dropped || overId == null || refused) {
1287
+ update(start.snapshot);
1288
+ const home = {
1289
+ name: itemName(id),
1290
+ ...where(start.snapshot, id)
1291
+ };
1292
+ announce(refused && dropped ? say.refusedDrop({
1293
+ ...home,
1294
+ reason: refused.reason
1295
+ }) : say.cancelled(home));
1296
+ return;
1297
+ }
1298
+ const current = itemsRef.current;
1299
+ const list = listOf(current, id);
1300
+ const ids = current[list];
1301
+ const fromIndex = ids.indexOf(id);
1302
+ const toIndex = inserted.current === overId ? fromIndex : isList(overId) ? ids.length - 1 : ids.indexOf(String(overId));
1303
+ const next = toIndex >= 0 && toIndex !== fromIndex ? {
1304
+ ...current,
1305
+ [list]: arrayMove([...ids], fromIndex, toIndex)
1306
+ } : current;
1307
+ update(next);
1308
+ announce(say.dropped({
1309
+ name: itemName(id),
1310
+ ...where(next, id)
1311
+ }));
1312
+ };
1313
+ const accessibility = useMemo(() => ({
1314
+ announcements: SILENT_DRAG_ANNOUNCEMENTS,
1315
+ screenReaderInstructions: dragInstructions(messages)
1316
+ }), [messages]);
1317
+ return {
1318
+ /** The dragged item's id, or null. */
1319
+ activeId,
1320
+ /** The list that refuses the item under the hand, and why. */
1321
+ refusal,
1322
+ /** The list the drag started in, while dragging. */
1323
+ originList,
1324
+ isHome,
1325
+ listOf,
1326
+ collisionDetection: across.collisionDetection,
1327
+ coordinateGetter: across.coordinateGetter,
1328
+ accessibility,
1329
+ handlers: {
1330
+ onDragStart,
1331
+ onDragOver,
1332
+ onDragEnd: ({ over }) => finish(true, over?.id ?? null),
1333
+ onDragCancel: () => finish(false, null)
1334
+ }
1335
+ };
1336
+ }
1337
+ /**
1338
+ * Wraps each item's content in a list. The dragged item's own node is at 40%
1339
+ * while it is still home, and the dashed place (its size, its radius) once it
1340
+ * stands anywhere else. Every other item renders as it is: the wrapper stays
1341
+ * the same, so the item keeps focus when its drag starts.
1342
+ */
1343
+ function DraggedSlot({ dragging = false, home, radius, className, children }) {
1344
+ const place = dragging && !home;
1345
+ return /* @__PURE__ */ jsxs("div", {
1346
+ "data-slot": "drag-slot",
1347
+ className: "relative",
1348
+ children: [/* @__PURE__ */ jsx("div", {
1349
+ "data-drag-origin": dragging && home ? "" : void 0,
1350
+ className: place ? "invisible" : void 0,
1351
+ children
1352
+ }), place ? /* @__PURE__ */ jsx(DropPlaceholder, { className: cn("absolute inset-0", radius, className) }) : null]
1353
+ });
1354
+ }
1355
+ /** The last announcement, for a polite live region (`DragLiveRegion`). Repeats are dropped. */
1356
+ function useDragAnnouncer() {
1357
+ const [message, setMessage] = useState("");
1358
+ const last = useRef("");
1359
+ return {
1360
+ message,
1361
+ announce: useCallback((text) => {
1362
+ if (text === last.current) return;
1363
+ last.current = text;
1364
+ setMessage(text);
1365
+ }, [])
1366
+ };
1367
+ }
1368
+ /** A polite, visually hidden live region for drag announcements. */
1369
+ function DragLiveRegion({ message }) {
1370
+ return /* @__PURE__ */ jsx("span", {
1371
+ className: "sr-only",
1372
+ role: "status",
1373
+ "aria-live": "polite",
1374
+ "aria-atomic": "true",
1375
+ children: message
1376
+ });
1377
+ }
1378
+ //#endregion
1128
1379
  //#region src/components/ellipsis/ellipsis.tsx
1129
1380
  const ellipsis = tv({
1130
1381
  slots: {
@@ -2660,4 +2911,4 @@ function ChoiceList(props) {
2660
2911
  });
2661
2912
  }
2662
2913
  //#endregion
2663
- export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, ComboboxSelect, CommentCard, CommentCardMeta, CommentCardQuote, CommentCardTrigger, CommentEntry, CommentEntryAuthor, CommentEntryBody, CommentEntryHeader, CommentEntryTime, CommentMargin, CommentMarginItem, CommentMarker, DialogCommit, DialogFooterNote, DialogSheetBack, DialogSheetContent, DropdownMenuLinkItem, Ellipsis, EllipsisToggle, InboxItemLeadingBadge, InboxItemSkeleton, InboxItemSkeletonList, ListRowSkeleton, MessageItemDelegatedAvatar, MessageItemDelegatedBy, MessageItemDelegatedByButton, MessageItemDelegatedByName, MessageListJumpControls, MessageListJumpPill, MessageListJumpPillDismiss, MessageListJumpPillGroup, MessageQuotedPreviewAuthorDelegatedBy, MessageReferenceIcon, MessageReferenceReadMark, Meter, MeterHeader, MeterIndicator, MeterLabel, MeterTrack, MeterValue, MobileNavServerItem, MobileNavServerPopover, MobileNavServerPopoverContent, MobileNavServerPopoverDestination, MobileNavServerPopoverDestinations, MobileNavServerPopoverGroup, MobileNavServerPopoverList, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, MobileNavServerPopoverRowDescription, MobileNavServerPopoverRowLabel, OverlayLayerProvider, PULL_TO_REFRESH_DAMPING, PULL_TO_REFRESH_HOLD_DISTANCE, PULL_TO_REFRESH_MAX_DISTANCE, PULL_TO_REFRESH_POINTER_QUERY, PULL_TO_REFRESH_SNAP_BACK_MS, PULL_TO_REFRESH_THRESHOLD, PopoverActions, PopoverBody, PreviewCardActions, PreviewCardBody, PreviewCardEyebrow, PreviewCardFooter, PreviewCardMeta, PullToRefreshIndicator, TOUCH_DRAG_HOLD_MS, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useHoldThenMoveTouchSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
2914
+ export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, ComboboxSelect, CommentCard, CommentCardMeta, CommentCardQuote, CommentCardTrigger, CommentEntry, CommentEntryAuthor, CommentEntryBody, CommentEntryHeader, CommentEntryTime, CommentMargin, CommentMarginItem, CommentMarker, DEFAULT_DRAG_MESSAGES, DRAG_AUTO_SCROLL_ZONE_PX, DRAG_KEYBOARD_CODES, DRAG_KEYBOARD_OFFSET_PX, DRAG_LIFT_Z_INDEX, DRAG_SETTLE, DRAG_SIBLING_TRANSITION, DROP_GLIDE, DialogCommit, DialogFooterNote, DialogSheetBack, DialogSheetContent, DragLift, DragLiveRegion, DragRefusalHint, DragRemeasure, DraggedSlot, DropPlaceholder, DropdownMenuLinkItem, Ellipsis, EllipsisToggle, HoldThenMoveTouchSensor, InboxItemLeadingBadge, InboxItemSkeleton, InboxItemSkeletonList, LIFT_CLASS, ListRowSkeleton, MOUSE_DRAG_DISTANCE_PX, MessageItemDelegatedAvatar, MessageItemDelegatedBy, MessageItemDelegatedByButton, MessageItemDelegatedByName, MessageListJumpControls, MessageListJumpPill, MessageListJumpPillDismiss, MessageListJumpPillGroup, MessageQuotedPreviewAuthorDelegatedBy, MessageReferenceIcon, MessageReferenceReadMark, Meter, MeterHeader, MeterIndicator, MeterLabel, MeterTrack, MeterValue, MobileNavServerItem, MobileNavServerPopover, MobileNavServerPopoverContent, MobileNavServerPopoverDestination, MobileNavServerPopoverDestinations, MobileNavServerPopoverGroup, MobileNavServerPopoverList, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, MobileNavServerPopoverRowDescription, MobileNavServerPopoverRowLabel, MouseOnlyPointerSensor, ORIGIN_OPACITY, OverlayLayerProvider, PULL_TO_REFRESH_DAMPING, PULL_TO_REFRESH_HOLD_DISTANCE, PULL_TO_REFRESH_MAX_DISTANCE, PULL_TO_REFRESH_POINTER_QUERY, PULL_TO_REFRESH_SNAP_BACK_MS, PULL_TO_REFRESH_THRESHOLD, PopoverActions, PopoverBody, PreviewCardActions, PreviewCardBody, PreviewCardEyebrow, PreviewCardFooter, PreviewCardMeta, PullToRefreshIndicator, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useHoldThenMoveTouchSensor, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botiverse/raft-ui",
3
- "version": "0.35.1",
3
+ "version": "0.36.1",
4
4
  "description": "React components and CSS foundations for the Raft Design System.",
5
5
  "keywords": [
6
6
  "agent-skills",