@botiverse/raft-ui 0.59.0 → 0.59.2

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 CHANGED
@@ -1,3 +1,12 @@
1
+ ## [0.59.2](https://github.com/botiverse/raft-design/compare/v0.59.1...v0.59.2) (2026-11-03)
2
+
3
+ ### Fixed
4
+
5
+ - **Button**: a Button narrower than its content truncates the content instead of overflowing its border. Its content wrapper (`data-slot="button-content"`) can now shrink to the Button, so a label with `truncate` truncates and icons keep their size. ([#967](https://github.com/botiverse/raft-design/pull/967))
6
+ - Why: a Button given `min-w-0 max-w-full` in a card or a row, holding a long label and an end icon, spilled its content out of its border on both sides, because the content wrapper kept its full width; the wrapper now has `min-w-0 max-w-full`.
7
+ - Affects: only Buttons whose width is constrained below their content; a Button that sizes to its content renders as before.
8
+ - Docs: https://raft-design.botiverse.build/components/button/#content
9
+
1
10
  ## [0.59.0](https://github.com/botiverse/raft-design/compare/v0.58.1...v0.59.0) (2026-11-03)
2
11
 
3
12
  ### Breaking Changes
@@ -33,7 +33,7 @@ const buttonVariants = tv({
33
33
  "disabled:border-line-hairline disabled:bg-fill-muted disabled:bg-none disabled:text-foreground-disabled disabled:ring-0",
34
34
  "aria-disabled:border-line-hairline aria-disabled:bg-fill-muted aria-disabled:bg-none aria-disabled:text-foreground-disabled aria-disabled:ring-0"
35
35
  ],
36
- content: "relative z-10 inline-flex items-center justify-center gap-[inherit] data-[loading=true]:invisible",
36
+ content: "relative z-10 inline-flex min-w-0 max-w-full items-center justify-center gap-[inherit] data-[loading=true]:invisible",
37
37
  loadingIndicator: "pointer-events-none absolute inset-0 z-10 flex items-center justify-center"
38
38
  },
39
39
  variants: {
@@ -1,2 +1,2 @@
1
- import { Table, TableBody, TableBodyProps, TableCaption, TableCaptionProps, TableCell, TableCellProps, TableColgroup, TableColgroupProps, TableColumn, TableColumnProps, TableHead, TableHeadProps, TableHeader, TableHeaderProps, TableProps, TableRow, TableRowProps, TableSort, TableSortableHead, TableSortableHeadProps } from "./table.mjs";
2
- export { Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableColgroup, type TableColgroupProps, TableColumn, type TableColumnProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, type TableSort, TableSortableHead, type TableSortableHeadProps };
1
+ import { Table, TableBody, TableBodyProps, TableCaption, TableCaptionProps, TableCell, TableCellProps, TableColgroup, TableColgroupProps, TableColumn, TableColumnProps, TableHead, TableHeadProps, TableHeader, TableHeaderProps, TableProps, TableRow, TableRowProps, TableSort, TableSortButton, TableSortButtonProps, TableSortableHead, TableSortableHeadProps } from "./table.mjs";
2
+ export { Table, TableBody, type TableBodyProps, TableCaption, type TableCaptionProps, TableCell, type TableCellProps, TableColgroup, type TableColgroupProps, TableColumn, type TableColumnProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, type TableSort, TableSortButton, type TableSortButtonProps, TableSortableHead, type TableSortableHeadProps };
@@ -20,6 +20,27 @@ type TableCellProps = Omit<StyledProps<useRender.ComponentProps<"td">>, "align">
20
20
  align?: "left" | "right";
21
21
  };
22
22
  type TableSort = "ascending" | "descending";
23
+ type TableSortButtonProps = Omit<StyledProps<useRender.ComponentProps<"button">>, "aria-sort"> & {
24
+ /**
25
+ * The column's current sort, or undefined when the rows aren't sorted by
26
+ * it. Draws the arrow and colors the label; set the same value as
27
+ * `aria-sort` on the heading cell around the button (in development, a
28
+ * warning says when they differ).
29
+ */
30
+ sort?: TableSort;
31
+ /**
32
+ * The direction of a first click, when the rows aren't sorted by this
33
+ * column: `"descending"` for numbers and dates, `"ascending"` for text.
34
+ */
35
+ firstSort?: TableSort;
36
+ /** Called with the next direction: the reverse of `sort`, or `firstSort`. */
37
+ onSortChange?: (sort: TableSort) => void;
38
+ /**
39
+ * `"right"` for a right-aligned column, such as numbers: the label ends on
40
+ * the column's right edge and the arrow goes before it.
41
+ */
42
+ align?: "left" | "right";
43
+ };
23
44
  type TableSortableHeadProps = Omit<StyledProps<useRender.ComponentProps<"th">>, "align" | "aria-sort"> & {
24
45
  /**
25
46
  * The column's current sort, or undefined when the rows aren't sorted by
@@ -57,14 +78,29 @@ export declare function TableRow({ className, render, ...props }: TableRowProps)
57
78
  export declare function TableHead({ className, render, scope, align, ...props }: TableHeadProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
58
79
  /**
59
80
  * A column heading that sorts the rows (table.md, "Sorting"): a `TableHead`
60
- * whose label is a button filling the cell, with `aria-sort` on the cell and
61
- * a 12px arrow on the sorted column only. Which column is sorted is the
62
- * caller's: pass `sort` and update it from `onSortChange`. In a header row
63
- * drawn without `Table`, pass `render={<div role="columnheader" />}`; with
64
- * `render` it sets no `scope`, which only a `th` takes. Native props,
65
- * `className` and the ref go to the heading cell, not the button.
81
+ * whose label is a `TableSortButton` filling the cell, with `aria-sort` on the
82
+ * cell and a 12px arrow on the sorted column only. Which column is sorted is
83
+ * the caller's: pass `sort` and update it from `onSortChange`. With
84
+ * `render={<div role="columnheader" />}` it draws a th-like cell, with the
85
+ * header type, line and padding, and sets no `scope`, which only a `th`
86
+ * takes. Native props, `className` and the ref go to the heading cell, not the
87
+ * button.
66
88
  */
67
89
  export declare function TableSortableHead({ className, render, scope, sort, firstSort, onSortChange, align, children, ...props }: TableSortableHeadProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
90
+ /**
91
+ * The button of a heading that sorts, on its own, for a header row drawn
92
+ * without `Table` (table.md, "Sorting"): the label, the 12px arrow on the
93
+ * sorted column (its room kept, empty, on the others), the label's color, the
94
+ * touch hit area and the sort cycle. It fills the heading cell around it, so
95
+ * the whole cell is the target. It has no padding and no border and inherits
96
+ * the font: the cell sets the type, height and line and has no padding, and
97
+ * the row's horizontal padding goes on the button through `className`. Set
98
+ * `aria-sort` on that cell, which needs `role="columnheader"` inside a
99
+ * `role="row"` in a `role="table"` or `role="grid"`; in development a warning
100
+ * says when there is no such cell or its `aria-sort` isn't `sort`. Native
101
+ * props, `className` and the ref go to the button.
102
+ */
103
+ export declare function TableSortButton({ firstSort, align, ref, ...props }: TableSortButtonProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
68
104
  export declare function TableCell({ className, render, align, ...props }: TableCellProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
69
105
  /**
70
106
  * The table's accessible name. Render it visually or hide it with `sr-only`;
@@ -75,4 +111,4 @@ export declare function TableCaption({ className, render, ...props }: TableCapti
75
111
  export declare function TableColgroup({ className, render, ...props }: TableColgroupProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
76
112
  export declare function TableColumn({ className, render, ...props }: TableColumnProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
77
113
  //#endregion
78
- export type { TableBodyProps, TableCaptionProps, TableCellProps, TableColgroupProps, TableColumnProps, TableHeadProps, TableHeaderProps, TableProps, TableRowProps, TableSort, TableSortableHeadProps };
114
+ export type { TableBodyProps, TableCaptionProps, TableCellProps, TableColgroupProps, TableColumnProps, TableHeadProps, TableHeaderProps, TableProps, TableRowProps, TableSort, TableSortButtonProps, TableSortableHeadProps };
@@ -1,6 +1,7 @@
1
1
  import { table } from "./table.recipe.mjs";
2
2
  import { ArrowDown, ArrowUp } from "lucide-react";
3
- import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useRef } from "react";
4
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
4
5
  import { mergeProps } from "@base-ui/react/merge-props";
5
6
  import { useRender } from "@base-ui/react/use-render";
6
7
  //#region src/components/table/table.tsx
@@ -61,48 +62,102 @@ function TableHead({ className, render, scope = "col", align = "left", ...props
61
62
  }
62
63
  /**
63
64
  * A column heading that sorts the rows (table.md, "Sorting"): a `TableHead`
64
- * whose label is a button filling the cell, with `aria-sort` on the cell and
65
- * a 12px arrow on the sorted column only. Which column is sorted is the
66
- * caller's: pass `sort` and update it from `onSortChange`. In a header row
67
- * drawn without `Table`, pass `render={<div role="columnheader" />}`; with
68
- * `render` it sets no `scope`, which only a `th` takes. Native props,
69
- * `className` and the ref go to the heading cell, not the button.
65
+ * whose label is a `TableSortButton` filling the cell, with `aria-sort` on the
66
+ * cell and a 12px arrow on the sorted column only. Which column is sorted is
67
+ * the caller's: pass `sort` and update it from `onSortChange`. With
68
+ * `render={<div role="columnheader" />}` it draws a th-like cell, with the
69
+ * header type, line and padding, and sets no `scope`, which only a `th`
70
+ * takes. Native props, `className` and the ref go to the heading cell, not the
71
+ * button.
70
72
  */
71
73
  function TableSortableHead({ className, render, scope, sort, firstSort = "ascending", onSortChange, align = "left", children, ...props }) {
72
- const { head, sortableHead, sortButton, sortArrow } = table({
74
+ const { head, sortableHead } = table({ align });
75
+ const button = useSortButton({
76
+ sort,
77
+ firstSort,
78
+ onSortChange,
79
+ align,
80
+ children
81
+ }, "headSortButton");
82
+ return useRender({
83
+ defaultTagName: "th",
84
+ render,
85
+ props: mergeProps({
86
+ scope: scope ?? (render === void 0 ? "col" : void 0),
87
+ "aria-sort": sort,
88
+ className: head({ className: sortableHead({ className }) }),
89
+ children: button
90
+ }, props),
91
+ state: { slot: "table-sortable-head" }
92
+ });
93
+ }
94
+ /**
95
+ * The button of a heading that sorts, on its own, for a header row drawn
96
+ * without `Table` (table.md, "Sorting"): the label, the 12px arrow on the
97
+ * sorted column (its room kept, empty, on the others), the label's color, the
98
+ * touch hit area and the sort cycle. It fills the heading cell around it, so
99
+ * the whole cell is the target. It has no padding and no border and inherits
100
+ * the font: the cell sets the type, height and line and has no padding, and
101
+ * the row's horizontal padding goes on the button through `className`. Set
102
+ * `aria-sort` on that cell, which needs `role="columnheader"` inside a
103
+ * `role="row"` in a `role="table"` or `role="grid"`; in development a warning
104
+ * says when there is no such cell or its `aria-sort` isn't `sort`. Native
105
+ * props, `className` and the ref go to the button.
106
+ */
107
+ function TableSortButton({ firstSort = "ascending", align = "left", ref, ...props }) {
108
+ const element = useRef(null);
109
+ const { sort } = props;
110
+ useEffect(() => {
111
+ if (process.env.NODE_ENV === "production") return;
112
+ warnOnSortCell(element.current, sort);
113
+ }, [sort]);
114
+ return useSortButton({
115
+ ...props,
116
+ firstSort,
117
+ align
118
+ }, "sortButton", ref ? [ref, element] : element);
119
+ }
120
+ function warnOnSortCell(button, sort) {
121
+ if (!button) return;
122
+ const cell = button.closest("[role=\"columnheader\"], th");
123
+ if (!cell) {
124
+ console.warn("raft-ui: a TableSortButton is not inside a heading cell, so screen readers never hear the sort of its column. Put it in a `th`, or in an element with role=\"columnheader\" inside a role=\"row\", and set aria-sort on that cell from the same `sort`.");
125
+ return;
126
+ }
127
+ const ariaSort = cell.getAttribute("aria-sort");
128
+ if ((ariaSort === null || ariaSort === "none" ? void 0 : ariaSort) === sort) return;
129
+ console.warn(`raft-ui: a TableSortButton has sort=${sort === void 0 ? "undefined" : `"${sort}"`} but its heading cell has ${ariaSort === null ? "no aria-sort" : `aria-sort="${ariaSort}"`}, so screen readers hear a different sort from the one its arrow shows. Set aria-sort={sort} on the cell.`);
130
+ }
131
+ function useSortButton({ className, render, sort, firstSort, onSortChange, align, children, ...props }, slot, ref) {
132
+ const classes = table({
73
133
  align,
74
134
  sorted: sort !== void 0
75
135
  });
76
136
  const arrow = sort ? /* @__PURE__ */ jsx(sort === "descending" ? ArrowDown : ArrowUp, {
77
137
  "aria-hidden": true,
78
138
  "data-slot": "table-sort-arrow",
79
- className: sortArrow()
139
+ className: classes.sortArrow()
80
140
  }) : /* @__PURE__ */ jsx("span", {
81
141
  "aria-hidden": true,
82
142
  "data-slot": "table-sort-arrow-space",
83
- className: sortArrow()
143
+ className: classes.sortArrow()
84
144
  });
85
- const button = /* @__PURE__ */ jsxs("button", {
145
+ const defaultProps = {
86
146
  type: "button",
87
147
  "data-slot": "table-sort-button",
88
- className: sortButton(),
148
+ className: classes[slot]({ className }),
89
149
  onClick: () => onSortChange?.(sort ? reverseSort(sort) : firstSort),
90
- children: [
150
+ children: /* @__PURE__ */ jsxs(Fragment$1, { children: [
91
151
  align === "right" ? arrow : null,
92
152
  children,
93
153
  align === "right" ? null : arrow
94
- ]
95
- });
154
+ ] })
155
+ };
96
156
  return useRender({
97
- defaultTagName: "th",
157
+ defaultTagName: "button",
98
158
  render,
99
- props: mergeProps({
100
- scope: scope ?? (render === void 0 ? "col" : void 0),
101
- "aria-sort": sort,
102
- className: head({ className: sortableHead({ className }) }),
103
- children: button
104
- }, props),
105
- state: { slot: "table-sortable-head" }
159
+ ref,
160
+ props: mergeProps(defaultProps, props)
106
161
  });
107
162
  }
108
163
  function reverseSort(sort) {
@@ -150,4 +205,4 @@ function TableColumn({ className, render, ...props }) {
150
205
  });
151
206
  }
152
207
  //#endregion
153
- export { Table, TableBody, TableCaption, TableCell, TableColgroup, TableColumn, TableHead, TableHeader, TableRow, TableSortableHead };
208
+ export { Table, TableBody, TableCaption, TableCell, TableColgroup, TableColumn, TableHead, TableHeader, TableRow, TableSortButton, TableSortableHead };
@@ -1,5 +1,12 @@
1
1
  import { tv } from "../../lib/tv.mjs";
2
2
  //#region src/components/table/table.recipe.ts
3
+ const sortButtonInteraction = [
4
+ "cursor-pointer rounded-sticker",
5
+ "hover:text-foreground",
6
+ "outline-none focus-visible:shadow-focus",
7
+ "pointer-coarse:after:absolute pointer-coarse:after:inset-x-0 pointer-coarse:after:bottom-0 pointer-coarse:after:content-['']",
8
+ "pointer-coarse:after:-top-[calc(--spacing(11)-100%)]"
9
+ ];
3
10
  /**
4
11
  * The settings-grade table: unified header, row separators and cell padding in
5
12
  * the shared theme language (matching the markdown table's chrome tokens).
@@ -29,13 +36,14 @@ const table = tv({
29
36
  caption: ["pt-2 text-caption text-foreground-hint"],
30
37
  sortableHead: ["p-0"],
31
38
  sortButton: [
39
+ "relative flex h-full w-full items-center gap-1",
40
+ "border-0 bg-transparent [font:inherit]",
41
+ ...sortButtonInteraction
42
+ ],
43
+ headSortButton: [
32
44
  "relative flex w-full items-center gap-1",
33
45
  "border-0 bg-transparent px-3 py-2 [font:inherit]",
34
- "cursor-pointer rounded-sticker",
35
- "hover:text-foreground",
36
- "outline-none focus-visible:shadow-focus",
37
- "pointer-coarse:after:absolute pointer-coarse:after:inset-x-0 pointer-coarse:after:bottom-0 pointer-coarse:after:content-['']",
38
- "pointer-coarse:after:-top-[calc(--spacing(11)-100%)]"
46
+ ...sortButtonInteraction
39
47
  ],
40
48
  sortArrow: ["size-3 shrink-0"]
41
49
  },
@@ -45,12 +53,19 @@ const table = tv({
45
53
  right: {
46
54
  head: "text-right",
47
55
  cell: "text-right",
48
- sortButton: "justify-end"
56
+ sortButton: "justify-end",
57
+ headSortButton: "justify-end"
49
58
  }
50
59
  },
51
60
  sorted: {
52
- true: { sortButton: "text-foreground" },
53
- false: { sortButton: "text-foreground-hint" }
61
+ true: {
62
+ sortButton: "text-foreground",
63
+ headSortButton: "text-foreground"
64
+ },
65
+ false: {
66
+ sortButton: "text-foreground-hint",
67
+ headSortButton: "text-foreground-hint"
68
+ }
54
69
  }
55
70
  }
56
71
  });
package/dist/wip.d.mts CHANGED
@@ -16,7 +16,7 @@ import { MessageQuotedPreviewAuthorDelegatedBy, MessageQuotedPreviewAuthorDelega
16
16
  import "./components/message-quoted-preview/index.mjs";
17
17
  import { MessageListJumpControls, MessageListJumpControlsProps, MessageListJumpPill, MessageListJumpPillDismiss, MessageListJumpPillDismissProps, MessageListJumpPillGroup, MessageListJumpPillGroupProps, MessageListJumpPillProps } from "./components/message-list/message-list-jump.mjs";
18
18
  import "./components/message-list/index.mjs";
19
- import { TableSort, TableSortableHead, TableSortableHeadProps } from "./components/table/table.mjs";
19
+ import { TableSort, TableSortButton, TableSortButtonProps, TableSortableHead, TableSortableHeadProps } from "./components/table/table.mjs";
20
20
  import "./components/table/index.mjs";
21
21
  import { DEFAULT_DRAG_MESSAGES, DragAnnouncementSource, DragMessages, DragNamed, DragPlace, createDragAnnouncements, dragInstructions, dragMessages } from "./components/drag/drag-announcements.mjs";
22
22
  import { PanelSplitAction, PanelSplitActionMain, PanelSplitActionMainProps, PanelSplitActionMenu, PanelSplitActionMenuProps, PanelSplitActionProps, PanelSplitActionToggle, PanelSplitActionToggleProps } from "./components/panel/panel-split-action.mjs";
@@ -64,4 +64,4 @@ import { SaveStatus, SaveStatusError, SaveStatusErrorProps, SaveStatusProps, Sav
64
64
  import "./components/save-status/index.mjs";
65
65
  import { TaskCompletionControl, TaskCompletionControlProps } from "./components/task-completion-control/task-completion-control.mjs";
66
66
  import "./components/task-completion-control/index.mjs";
67
- export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AvatarGroupButton, type AvatarGroupButtonProps, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, type ChoiceListGroup, type ChoiceListItem, type ChoiceListMultipleProps, type ChoiceListProps, type ChoiceListSingleProps, ComboboxSelect, type ComboboxSelectGroup, type ComboboxSelectMessages, type ComboboxSelectOption, type ComboboxSelectProps, type ComboboxSelectSelection, type ComboboxSelectValue, CommentCard, CommentCardMeta, type CommentCardMetaProps, type CommentCardProps, CommentCardQuote, type CommentCardQuoteProps, CommentCardTrigger, type CommentCardTriggerProps, CommentEntry, CommentEntryAuthor, type CommentEntryAuthorProps, CommentEntryBody, type CommentEntryBodyProps, CommentEntryHeader, type CommentEntryHeaderProps, type CommentEntryProps, CommentEntryTime, type CommentEntryTimeProps, CommentMargin, CommentMarginItem, type CommentMarginItemProps, type CommentMarginLayout, type CommentMarginLayoutItem, type CommentMarginLayoutOptions, type CommentMarginProps, CommentMarker, type CommentMarkerProps, 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, type DialogCommitProps, DialogFooterNote, type DialogFooterNoteProps, DialogSheetBack, type DialogSheetBackProps, DialogSheetContent, type DialogSheetContentProps, type DragAcrossLists, type DragAnnouncementSource, DragLift, type DragLiftProps, type DragListsItems, DragLiveRegion, type DragMessages, type DragNamed, type DragPlace, DragRefusalHint, type DragRefusalHintProps, DragRemeasure, type DragRemeasureProps, type DragSensorsOptions, DraggedSlot, type DraggedSlotProps, DropPlaceholder, type DropPlaceholderProps, DropdownMenuLinkItem, type DropdownMenuLinkItemProps, Ellipsis, type EllipsisProps, type EllipsisState, EllipsisToggle, type EllipsisToggleProps, FilterChip, FilterChipLabel, type FilterChipLabelProps, type FilterChipProps, FilterChipRemove, type FilterChipRemoveProps, type HoldThenMoveOptions, HoldThenMoveTouchSensor, InboxItemLeadingBadge, type InboxItemLeadingBadgeProps, InboxItemSkeleton, InboxItemSkeletonList, type InboxItemSkeletonListProps, type InboxItemSkeletonProps, LIFT_CLASS, ListRowSkeleton, type ListRowSkeletonProps, MOUSE_DRAG_DISTANCE_PX, MessageItemDelegatedAvatar, type MessageItemDelegatedAvatarProps, MessageItemDelegatedBy, MessageItemDelegatedByButton, type MessageItemDelegatedByButtonProps, MessageItemDelegatedByName, type MessageItemDelegatedByNameProps, type MessageItemDelegatedByProps, MessageListJumpControls, type MessageListJumpControlsProps, MessageListJumpPill, MessageListJumpPillDismiss, type MessageListJumpPillDismissProps, MessageListJumpPillGroup, type MessageListJumpPillGroupProps, type MessageListJumpPillProps, MessageQuotedPreviewAuthorDelegatedBy, type MessageQuotedPreviewAuthorDelegatedByProps, MessageReferenceIcon, type MessageReferenceIconProps, MessageReferenceReadMark, type MessageReferenceReadMarkProps, Meter, MeterHeader, type MeterHeaderProps, MeterIndicator, type MeterIndicatorProps, MeterLabel, type MeterLabelProps, type MeterProps, MeterTrack, type MeterTrackProps, MeterValue, type MeterValueProps, MobileNavServerItem, type MobileNavServerItemProps, MobileNavServerPopover, MobileNavServerPopoverContent, type MobileNavServerPopoverContentProps, MobileNavServerPopoverDestination, type MobileNavServerPopoverDestinationProps, MobileNavServerPopoverDestinations, type MobileNavServerPopoverDestinationsProps, MobileNavServerPopoverGroup, type MobileNavServerPopoverGroupProps, MobileNavServerPopoverList, type MobileNavServerPopoverListProps, type MobileNavServerPopoverProps, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, type MobileNavServerPopoverRowBodyProps, MobileNavServerPopoverRowDescription, type MobileNavServerPopoverRowDescriptionProps, MobileNavServerPopoverRowLabel, type MobileNavServerPopoverRowLabelProps, type MobileNavServerPopoverRowProps, ModeBar, ModeBarAction, type ModeBarActionProps, ModeBarContent, type ModeBarContentProps, ModeBarDescription, type ModeBarDescriptionProps, type ModeBarProps, ModeBarTitle, type ModeBarTitleProps, MouseOnlyPointerSensor, ORIGIN_OPACITY, type OverlayLayerKind, OverlayLayerProvider, type OverlayLayerProviderProps, 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, PanelSplitAction, PanelSplitActionMain, type PanelSplitActionMainProps, PanelSplitActionMenu, type PanelSplitActionMenuProps, type PanelSplitActionProps, PanelSplitActionToggle, type PanelSplitActionToggleProps, PopoverActions, type PopoverActionsProps, PopoverBody, type PopoverBodyProps, PreviewCardActions, type PreviewCardActionsProps, PreviewCardBody, type PreviewCardBodyProps, PreviewCardEyebrow, type PreviewCardEyebrowProps, PreviewCardFooter, type PreviewCardFooterProps, PreviewCardMeta, type PreviewCardMetaProps, type PullToRefresh, PullToRefreshIndicator, type PullToRefreshIndicatorProps, type PullToRefreshPlatform, type PullToRefreshState, SaveStatus, SaveStatusError, type SaveStatusErrorProps, type SaveStatusProps, SaveStatusSaved, type SaveStatusSavedProps, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, type TableSort, TableSortableHead, type TableSortableHeadProps, TaskCompletionControl, type TaskCompletionControlProps, type UseCommentMarginFitsOptions, type UseDragListsOptions, type UsePullToRefreshOptions, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useHoldThenMoveTouchSensor, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
67
+ export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AvatarGroupButton, type AvatarGroupButtonProps, COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, ChoiceList, type ChoiceListGroup, type ChoiceListItem, type ChoiceListMultipleProps, type ChoiceListProps, type ChoiceListSingleProps, ComboboxSelect, type ComboboxSelectGroup, type ComboboxSelectMessages, type ComboboxSelectOption, type ComboboxSelectProps, type ComboboxSelectSelection, type ComboboxSelectValue, CommentCard, CommentCardMeta, type CommentCardMetaProps, type CommentCardProps, CommentCardQuote, type CommentCardQuoteProps, CommentCardTrigger, type CommentCardTriggerProps, CommentEntry, CommentEntryAuthor, type CommentEntryAuthorProps, CommentEntryBody, type CommentEntryBodyProps, CommentEntryHeader, type CommentEntryHeaderProps, type CommentEntryProps, CommentEntryTime, type CommentEntryTimeProps, CommentMargin, CommentMarginItem, type CommentMarginItemProps, type CommentMarginLayout, type CommentMarginLayoutItem, type CommentMarginLayoutOptions, type CommentMarginProps, CommentMarker, type CommentMarkerProps, 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, type DialogCommitProps, DialogFooterNote, type DialogFooterNoteProps, DialogSheetBack, type DialogSheetBackProps, DialogSheetContent, type DialogSheetContentProps, type DragAcrossLists, type DragAnnouncementSource, DragLift, type DragLiftProps, type DragListsItems, DragLiveRegion, type DragMessages, type DragNamed, type DragPlace, DragRefusalHint, type DragRefusalHintProps, DragRemeasure, type DragRemeasureProps, type DragSensorsOptions, DraggedSlot, type DraggedSlotProps, DropPlaceholder, type DropPlaceholderProps, DropdownMenuLinkItem, type DropdownMenuLinkItemProps, Ellipsis, type EllipsisProps, type EllipsisState, EllipsisToggle, type EllipsisToggleProps, FilterChip, FilterChipLabel, type FilterChipLabelProps, type FilterChipProps, FilterChipRemove, type FilterChipRemoveProps, type HoldThenMoveOptions, HoldThenMoveTouchSensor, InboxItemLeadingBadge, type InboxItemLeadingBadgeProps, InboxItemSkeleton, InboxItemSkeletonList, type InboxItemSkeletonListProps, type InboxItemSkeletonProps, LIFT_CLASS, ListRowSkeleton, type ListRowSkeletonProps, MOUSE_DRAG_DISTANCE_PX, MessageItemDelegatedAvatar, type MessageItemDelegatedAvatarProps, MessageItemDelegatedBy, MessageItemDelegatedByButton, type MessageItemDelegatedByButtonProps, MessageItemDelegatedByName, type MessageItemDelegatedByNameProps, type MessageItemDelegatedByProps, MessageListJumpControls, type MessageListJumpControlsProps, MessageListJumpPill, MessageListJumpPillDismiss, type MessageListJumpPillDismissProps, MessageListJumpPillGroup, type MessageListJumpPillGroupProps, type MessageListJumpPillProps, MessageQuotedPreviewAuthorDelegatedBy, type MessageQuotedPreviewAuthorDelegatedByProps, MessageReferenceIcon, type MessageReferenceIconProps, MessageReferenceReadMark, type MessageReferenceReadMarkProps, Meter, MeterHeader, type MeterHeaderProps, MeterIndicator, type MeterIndicatorProps, MeterLabel, type MeterLabelProps, type MeterProps, MeterTrack, type MeterTrackProps, MeterValue, type MeterValueProps, MobileNavServerItem, type MobileNavServerItemProps, MobileNavServerPopover, MobileNavServerPopoverContent, type MobileNavServerPopoverContentProps, MobileNavServerPopoverDestination, type MobileNavServerPopoverDestinationProps, MobileNavServerPopoverDestinations, type MobileNavServerPopoverDestinationsProps, MobileNavServerPopoverGroup, type MobileNavServerPopoverGroupProps, MobileNavServerPopoverList, type MobileNavServerPopoverListProps, type MobileNavServerPopoverProps, MobileNavServerPopoverRow, MobileNavServerPopoverRowBody, type MobileNavServerPopoverRowBodyProps, MobileNavServerPopoverRowDescription, type MobileNavServerPopoverRowDescriptionProps, MobileNavServerPopoverRowLabel, type MobileNavServerPopoverRowLabelProps, type MobileNavServerPopoverRowProps, ModeBar, ModeBarAction, type ModeBarActionProps, ModeBarContent, type ModeBarContentProps, ModeBarDescription, type ModeBarDescriptionProps, type ModeBarProps, ModeBarTitle, type ModeBarTitleProps, MouseOnlyPointerSensor, ORIGIN_OPACITY, type OverlayLayerKind, OverlayLayerProvider, type OverlayLayerProviderProps, 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, PanelSplitAction, PanelSplitActionMain, type PanelSplitActionMainProps, PanelSplitActionMenu, type PanelSplitActionMenuProps, type PanelSplitActionProps, PanelSplitActionToggle, type PanelSplitActionToggleProps, PopoverActions, type PopoverActionsProps, PopoverBody, type PopoverBodyProps, PreviewCardActions, type PreviewCardActionsProps, PreviewCardBody, type PreviewCardBodyProps, PreviewCardEyebrow, type PreviewCardEyebrowProps, PreviewCardFooter, type PreviewCardFooterProps, PreviewCardMeta, type PreviewCardMetaProps, type PullToRefresh, PullToRefreshIndicator, type PullToRefreshIndicatorProps, type PullToRefreshPlatform, type PullToRefreshState, SaveStatus, SaveStatusError, type SaveStatusErrorProps, type SaveStatusProps, SaveStatusSaved, type SaveStatusSavedProps, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, type TableSort, TableSortButton, type TableSortButtonProps, TableSortableHead, type TableSortableHeadProps, TaskCompletionControl, type TaskCompletionControlProps, type UseCommentMarginFitsOptions, type UseDragListsOptions, type UsePullToRefreshOptions, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useHoldThenMoveTouchSensor, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
package/dist/wip.mjs CHANGED
@@ -12,7 +12,7 @@ import { MessageItemDelegatedAvatar, MessageItemDelegatedBy, MessageItemDelegate
12
12
  import { MessageReferenceIcon, MessageReferenceReadMark } from "./components/message-item/message-reference.mjs";
13
13
  import { MessageQuotedPreviewAuthorDelegatedBy } from "./components/message-quoted-preview/message-quoted-preview.mjs";
14
14
  import { MessageListJumpControls, MessageListJumpPill, MessageListJumpPillDismiss, MessageListJumpPillGroup } from "./components/message-list/message-list-jump.mjs";
15
- import { TableSortableHead } from "./components/table/table.mjs";
15
+ import { TableSortButton, TableSortableHead } from "./components/table/table.mjs";
16
16
  import { DEFAULT_DRAG_MESSAGES, createDragAnnouncements, dragInstructions, dragMessages } from "./components/drag/drag-announcements.mjs";
17
17
  import { LIFT_CLASS } from "./components/drag/drag.recipe.mjs";
18
18
  import { DRAG_AUTO_SCROLL_ZONE_PX, DRAG_KEYBOARD_OFFSET_PX, DRAG_LIFT_Z_INDEX, DRAG_SETTLE, DRAG_SIBLING_TRANSITION, DROP_GLIDE, DragLift, ORIGIN_OPACITY, cancelDrag, keepGrabInside, useDragSiblingTransition } from "./components/drag/drag-lift.mjs";
@@ -43,4 +43,4 @@ import { PullToRefreshIndicator } from "./components/pull-to-refresh/pull-to-ref
43
43
  import { ChoiceList } from "./components/choice-list/choice-list.mjs";
44
44
  import { SaveStatus, SaveStatusError, SaveStatusSaved } from "./components/save-status/save-status.mjs";
45
45
  import { TaskCompletionControl } from "./components/task-completion-control/task-completion-control.mjs";
46
- export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AvatarGroupButton, 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, FilterChip, FilterChipLabel, FilterChipRemove, 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, ModeBar, ModeBarAction, ModeBarContent, ModeBarDescription, ModeBarTitle, 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, PanelSplitAction, PanelSplitActionMain, PanelSplitActionMenu, PanelSplitActionToggle, PopoverActions, PopoverBody, PreviewCardActions, PreviewCardBody, PreviewCardEyebrow, PreviewCardFooter, PreviewCardMeta, PullToRefreshIndicator, SaveStatus, SaveStatusError, SaveStatusSaved, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, TableSortableHead, TaskCompletionControl, cancelDrag, createDragAnnouncements, dragInstructions, dragListStrategy, dragMessages, keepGrabInside, listKeyboardCoordinates, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits, useDragAcrossLists, useDragAnnouncer, useDragLists, useDragSensors, useDragSiblingTransition, useHoldThenMoveTouchSensor, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
46
+ export { Dialog as AnnouncementDialog, AnnouncementDialogAction, AnnouncementDialogBody, DialogClose as AnnouncementDialogClose, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle, DialogTrigger as AnnouncementDialogTrigger, AvatarGroupButton, 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, FilterChip, FilterChipLabel, FilterChipRemove, 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, ModeBar, ModeBarAction, ModeBarContent, ModeBarDescription, ModeBarTitle, 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, PanelSplitAction, PanelSplitActionMain, PanelSplitActionMenu, PanelSplitActionToggle, PopoverActions, PopoverBody, PreviewCardActions, PreviewCardBody, PreviewCardEyebrow, PreviewCardFooter, PreviewCardMeta, PullToRefreshIndicator, SaveStatus, SaveStatusError, SaveStatusSaved, TOUCH_DRAG_DISTANCE_PX, TOUCH_DRAG_HOLD_MS, TOUCH_DRAG_TOLERANCE_PX, TableSortButton, TableSortableHead, TaskCompletionControl, 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.59.0",
3
+ "version": "0.59.2",
4
4
  "description": "React components and CSS foundations for the Raft Design System.",
5
5
  "keywords": [
6
6
  "agent-skills",