@botiverse/raft-ui 0.58.1 → 0.59.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/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ ## [0.59.0](https://github.com/botiverse/raft-design/compare/v0.58.1...v0.59.0) (2026-11-03)
2
+
3
+ ### Breaking Changes
4
+
5
+ - **TableHead / TableCell**: `align` is now a variant, `"left"` (the default) or `"right"`, instead of the native HTML `align` attribute. Pass the same value to a column's heading and its cells. ([#959](https://github.com/botiverse/raft-design/pull/959))
6
+ - Why: a right-aligned column was set with a class on each cell, which can't move a sortable heading's label (a button filling the cell); one `align` value now aligns a heading, its cells and a sortable heading's label alike.
7
+ - Affects: `align="right"` sets `text-right` instead of rendering the `align` attribute; `align` no longer takes `"center"`, `"justify"` or `"char"`, and is no longer passed to the `th` or `td`.
8
+ - Migrate: replace `align="center"` / `"justify"` / `"char"` with a class such as `text-center`; a column aligned with a `text-right` class can pass `align="right"` to its heading and cells instead.
9
+ - Docs: https://raft-design.botiverse.build/components/table/#content
10
+
11
+ ### Added
12
+
13
+ - **TableSortableHead** (`@botiverse/raft-ui/wip`, experimental, + types `TableSort`, `TableSortableHeadProps`): a column heading that sorts the rows. Its label is a button filling the cell; it sets `aria-sort` on the heading cell and draws a 12px arrow on the sorted column only, after the label or before it with `align="right"`. The sort stays in your state: pass `sort` and set it from `onSortChange`; `firstSort` (default `"ascending"`) is the direction of a first click. ([#959](https://github.com/botiverse/raft-design/pull/959))
14
+ - Why: the Sorting rule had no part, so each list had to build its heading's button, `aria-sort`, arrow and touch hit area itself.
15
+ - Affects: every sortable heading keeps the 12px arrow's room, empty when unsorted, so columns don't move when the sort changes; on a touch screen the button's hit area is 44px high.
16
+ - Docs: https://raft-design.botiverse.build/components/table/#sorting
17
+
1
18
  ## [0.58.1](https://github.com/botiverse/raft-design/compare/v0.58.0...v0.58.1) (2026-11-03)
2
19
 
3
20
  ### Fixed
@@ -1,2 +1,2 @@
1
- import { Table, TableBody, TableBodyProps, TableCaption, TableCaptionProps, TableCell, TableCellProps, TableColgroup, TableColgroupProps, TableColumn, TableColumnProps, TableHead, TableHeadProps, TableHeader, TableHeaderProps, TableProps, TableRow, TableRowProps } 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 };
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 };
@@ -5,8 +5,62 @@ type TableProps = StyledProps<useRender.ComponentProps<"table">>;
5
5
  type TableHeaderProps = StyledProps<useRender.ComponentProps<"thead">>;
6
6
  type TableBodyProps = StyledProps<useRender.ComponentProps<"tbody">>;
7
7
  type TableRowProps = StyledProps<useRender.ComponentProps<"tr">>;
8
- type TableHeadProps = StyledProps<useRender.ComponentProps<"th">>;
9
- type TableCellProps = StyledProps<useRender.ComponentProps<"td">>;
8
+ type TableHeadProps = Omit<StyledProps<useRender.ComponentProps<"th">>, "align"> & {
9
+ /**
10
+ * `"right"` for a right-aligned column, such as numbers. Pass the same
11
+ * value to the column's cells, so the heading sits over its values.
12
+ */
13
+ align?: "left" | "right";
14
+ };
15
+ type TableCellProps = Omit<StyledProps<useRender.ComponentProps<"td">>, "align"> & {
16
+ /**
17
+ * `"right"` for a right-aligned column, such as numbers. Pass the same
18
+ * value to the column's heading, so the heading sits over its values.
19
+ */
20
+ align?: "left" | "right";
21
+ };
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
+ };
44
+ type TableSortableHeadProps = Omit<StyledProps<useRender.ComponentProps<"th">>, "align" | "aria-sort"> & {
45
+ /**
46
+ * The column's current sort, or undefined when the rows aren't sorted by
47
+ * it. Sets `aria-sort` on the heading cell and draws the arrow.
48
+ */
49
+ sort?: TableSort;
50
+ /**
51
+ * The direction of a first click, when the rows aren't sorted by this
52
+ * column: `"descending"` for numbers and dates, `"ascending"` for text.
53
+ */
54
+ firstSort?: TableSort;
55
+ /** Called with the next direction: the reverse of `sort`, or `firstSort`. */
56
+ onSortChange?: (sort: TableSort) => void;
57
+ /**
58
+ * `"right"` for a right-aligned column, such as numbers: the label ends on
59
+ * the column's right edge and the arrow goes before it. Pass the same value
60
+ * to the column's cells.
61
+ */
62
+ align?: "left" | "right";
63
+ };
10
64
  type TableColgroupProps = StyledProps<useRender.ComponentProps<"colgroup">>;
11
65
  type TableColumnProps = StyledProps<useRender.ComponentProps<"col">>;
12
66
  type TableCaptionProps = StyledProps<useRender.ComponentProps<"caption">>;
@@ -21,8 +75,33 @@ export declare function Table({ className, render, ...props }: TableProps): impo
21
75
  export declare function TableHeader({ className, render, ...props }: TableHeaderProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
22
76
  export declare function TableBody({ className, render, ...props }: TableBodyProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
23
77
  export declare function TableRow({ className, render, ...props }: TableRowProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
24
- export declare function TableHead({ className, render, scope, ...props }: TableHeadProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
25
- export declare function TableCell({ className, render, ...props }: TableCellProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
78
+ export declare function TableHead({ className, render, scope, align, ...props }: TableHeadProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
79
+ /**
80
+ * A column heading that sorts the rows (table.md, "Sorting"): a `TableHead`
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.
88
+ */
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>>;
104
+ export declare function TableCell({ className, render, align, ...props }: TableCellProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
26
105
  /**
27
106
  * The table's accessible name. Render it visually or hide it with `sr-only`;
28
107
  * a table without a caption should carry `aria-label` instead.
@@ -32,4 +111,4 @@ export declare function TableCaption({ className, render, ...props }: TableCapti
32
111
  export declare function TableColgroup({ className, render, ...props }: TableColgroupProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
33
112
  export declare function TableColumn({ className, render, ...props }: TableColumnProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
34
113
  //#endregion
35
- export type { TableBodyProps, TableCaptionProps, TableCellProps, TableColgroupProps, TableColumnProps, TableHeadProps, TableHeaderProps, TableProps, TableRowProps };
114
+ export type { TableBodyProps, TableCaptionProps, TableCellProps, TableColgroupProps, TableColumnProps, TableHeadProps, TableHeaderProps, TableProps, TableRowProps, TableSort, TableSortButtonProps, TableSortableHeadProps };
@@ -1,4 +1,7 @@
1
1
  import { table } from "./table.recipe.mjs";
2
+ import { ArrowDown, ArrowUp } from "lucide-react";
3
+ import { useEffect, useRef } from "react";
4
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
2
5
  import { mergeProps } from "@base-ui/react/merge-props";
3
6
  import { useRender } from "@base-ui/react/use-render";
4
7
  //#region src/components/table/table.tsx
@@ -45,8 +48,8 @@ function TableRow({ className, render, ...props }) {
45
48
  state: { slot: "table-row" }
46
49
  });
47
50
  }
48
- function TableHead({ className, render, scope = "col", ...props }) {
49
- const { head } = table();
51
+ function TableHead({ className, render, scope = "col", align = "left", ...props }) {
52
+ const { head } = table({ align });
50
53
  return useRender({
51
54
  defaultTagName: "th",
52
55
  render,
@@ -57,8 +60,111 @@ function TableHead({ className, render, scope = "col", ...props }) {
57
60
  state: { slot: "table-head" }
58
61
  });
59
62
  }
60
- function TableCell({ className, render, ...props }) {
61
- const { cell } = table();
63
+ /**
64
+ * A column heading that sorts the rows (table.md, "Sorting"): a `TableHead`
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.
72
+ */
73
+ function TableSortableHead({ className, render, scope, sort, firstSort = "ascending", onSortChange, align = "left", children, ...props }) {
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({
133
+ align,
134
+ sorted: sort !== void 0
135
+ });
136
+ const arrow = sort ? /* @__PURE__ */ jsx(sort === "descending" ? ArrowDown : ArrowUp, {
137
+ "aria-hidden": true,
138
+ "data-slot": "table-sort-arrow",
139
+ className: classes.sortArrow()
140
+ }) : /* @__PURE__ */ jsx("span", {
141
+ "aria-hidden": true,
142
+ "data-slot": "table-sort-arrow-space",
143
+ className: classes.sortArrow()
144
+ });
145
+ const defaultProps = {
146
+ type: "button",
147
+ "data-slot": "table-sort-button",
148
+ className: classes[slot]({ className }),
149
+ onClick: () => onSortChange?.(sort ? reverseSort(sort) : firstSort),
150
+ children: /* @__PURE__ */ jsxs(Fragment$1, { children: [
151
+ align === "right" ? arrow : null,
152
+ children,
153
+ align === "right" ? null : arrow
154
+ ] })
155
+ };
156
+ return useRender({
157
+ defaultTagName: "button",
158
+ render,
159
+ ref,
160
+ props: mergeProps(defaultProps, props)
161
+ });
162
+ }
163
+ function reverseSort(sort) {
164
+ return sort === "ascending" ? "descending" : "ascending";
165
+ }
166
+ function TableCell({ className, render, align = "left", ...props }) {
167
+ const { cell } = table({ align });
62
168
  return useRender({
63
169
  defaultTagName: "td",
64
170
  render,
@@ -99,4 +205,4 @@ function TableColumn({ className, render, ...props }) {
99
205
  });
100
206
  }
101
207
  //#endregion
102
- export { Table, TableBody, TableCaption, TableCell, TableColgroup, TableColumn, TableHead, TableHeader, TableRow };
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).
@@ -7,25 +14,60 @@ import { tv } from "../../lib/tv.mjs";
7
14
  * `table-fixed` class when stable widths matter; the base writes no
8
15
  * `table-layout` so that override is always available.
9
16
  */
10
- const table = tv({ slots: {
11
- root: ["w-full border-collapse caption-bottom", "font-sans text-callout text-foreground"],
12
- header: [],
13
- body: ["[&>tr:last-child>td]:border-b-0 [&>tr:last-child>th]:border-b-0", "[&>tr]:hover:bg-fill-subtle [&>tr]:active:bg-fill-medium"],
14
- row: [
15
- "not-aria-selected:not-data-[selected=true]:data-popup-open:bg-fill-subtle",
16
- "not-aria-selected:not-data-[selected=true]:has-data-popup-open:bg-fill-subtle",
17
- "aria-selected:bg-info-soft aria-selected:hover:bg-info-soft aria-selected:active:bg-info-soft",
18
- "data-[selected=true]:bg-info-soft data-[selected=true]:hover:bg-info-soft data-[selected=true]:active:bg-info-soft"
19
- ],
20
- head: [
21
- "text-left whitespace-nowrap",
22
- "border-b border-line-hairline px-3 py-2",
23
- "text-footnote font-bold normal-case tracking-normal text-foreground-hint"
24
- ],
25
- cell: ["align-top wrap-anywhere", "border-b border-line-hairline px-3 py-2"],
26
- colgroup: [],
27
- column: [],
28
- caption: ["pt-2 text-caption text-foreground-hint"]
29
- } });
17
+ const table = tv({
18
+ slots: {
19
+ root: ["w-full border-collapse caption-bottom", "font-sans text-callout text-foreground"],
20
+ header: [],
21
+ body: ["[&>tr:last-child>td]:border-b-0 [&>tr:last-child>th]:border-b-0", "[&>tr]:hover:bg-fill-subtle [&>tr]:active:bg-fill-medium"],
22
+ row: [
23
+ "not-aria-selected:not-data-[selected=true]:data-popup-open:bg-fill-subtle",
24
+ "not-aria-selected:not-data-[selected=true]:has-data-popup-open:bg-fill-subtle",
25
+ "aria-selected:bg-info-soft aria-selected:hover:bg-info-soft aria-selected:active:bg-info-soft",
26
+ "data-[selected=true]:bg-info-soft data-[selected=true]:hover:bg-info-soft data-[selected=true]:active:bg-info-soft"
27
+ ],
28
+ head: [
29
+ "text-left whitespace-nowrap",
30
+ "border-b border-line-hairline px-3 py-2",
31
+ "text-footnote font-bold normal-case tracking-normal text-foreground-hint"
32
+ ],
33
+ cell: ["align-top wrap-anywhere", "border-b border-line-hairline px-3 py-2"],
34
+ colgroup: [],
35
+ column: [],
36
+ caption: ["pt-2 text-caption text-foreground-hint"],
37
+ sortableHead: ["p-0"],
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: [
44
+ "relative flex w-full items-center gap-1",
45
+ "border-0 bg-transparent px-3 py-2 [font:inherit]",
46
+ ...sortButtonInteraction
47
+ ],
48
+ sortArrow: ["size-3 shrink-0"]
49
+ },
50
+ variants: {
51
+ align: {
52
+ left: {},
53
+ right: {
54
+ head: "text-right",
55
+ cell: "text-right",
56
+ sortButton: "justify-end",
57
+ headSortButton: "justify-end"
58
+ }
59
+ },
60
+ sorted: {
61
+ true: {
62
+ sortButton: "text-foreground",
63
+ headSortButton: "text-foreground"
64
+ },
65
+ false: {
66
+ sortButton: "text-foreground-hint",
67
+ headSortButton: "text-foreground-hint"
68
+ }
69
+ }
70
+ }
71
+ });
30
72
  //#endregion
31
73
  export { table };
package/dist/wip.d.mts CHANGED
@@ -16,6 +16,8 @@ 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, TableSortButton, TableSortButtonProps, TableSortableHead, TableSortableHeadProps } from "./components/table/table.mjs";
20
+ import "./components/table/index.mjs";
19
21
  import { DEFAULT_DRAG_MESSAGES, DragAnnouncementSource, DragMessages, DragNamed, DragPlace, createDragAnnouncements, dragInstructions, dragMessages } from "./components/drag/drag-announcements.mjs";
20
22
  import { PanelSplitAction, PanelSplitActionMain, PanelSplitActionMainProps, PanelSplitActionMenu, PanelSplitActionMenuProps, PanelSplitActionProps, PanelSplitActionToggle, PanelSplitActionToggleProps } from "./components/panel/panel-split-action.mjs";
21
23
  import "./components/panel/index.mjs";
@@ -62,4 +64,4 @@ import { SaveStatus, SaveStatusError, SaveStatusErrorProps, SaveStatusProps, Sav
62
64
  import "./components/save-status/index.mjs";
63
65
  import { TaskCompletionControl, TaskCompletionControlProps } from "./components/task-completion-control/task-completion-control.mjs";
64
66
  import "./components/task-completion-control/index.mjs";
65
- 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, 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,6 +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 { TableSortButton, TableSortableHead } from "./components/table/table.mjs";
15
16
  import { DEFAULT_DRAG_MESSAGES, createDragAnnouncements, dragInstructions, dragMessages } from "./components/drag/drag-announcements.mjs";
16
17
  import { LIFT_CLASS } from "./components/drag/drag.recipe.mjs";
17
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";
@@ -42,4 +43,4 @@ import { PullToRefreshIndicator } from "./components/pull-to-refresh/pull-to-ref
42
43
  import { ChoiceList } from "./components/choice-list/choice-list.mjs";
43
44
  import { SaveStatus, SaveStatusError, SaveStatusSaved } from "./components/save-status/save-status.mjs";
44
45
  import { TaskCompletionControl } from "./components/task-completion-control/task-completion-control.mjs";
45
- 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, 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.58.1",
3
+ "version": "0.59.1",
4
4
  "description": "React components and CSS foundations for the Raft Design System.",
5
5
  "keywords": [
6
6
  "agent-skills",