@botiverse/raft-ui 0.62.0 → 0.63.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 +20 -0
- package/dist/components/inbox-item/inbox-item-skeleton.d.mts +9 -3
- package/dist/components/inbox-item/inbox-item-skeleton.mjs +14 -9
- package/dist/components/inbox-item/inbox-item.d.mts +76 -11
- package/dist/components/inbox-item/inbox-item.mjs +95 -20
- package/dist/components/inbox-item/inbox-item.recipe.mjs +32 -11
- package/dist/fonts.css +20 -17
- package/dist/wip.d.mts +2 -1
- package/dist/wip.mjs +2 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
## [0.63.1](https://github.com/botiverse/raft-design/compare/v0.63.0...v0.63.1) (2026-11-05)
|
|
2
|
+
|
|
3
|
+
### Fixed
|
|
4
|
+
|
|
5
|
+
- **Fonts**: Cyrillic text no longer shows with its letters spaced apart. The sans and heading stacks try Arial and Helvetica Neue before the CJK faces. ([#994](https://github.com/botiverse/raft-design/pull/994))
|
|
6
|
+
- Why: Space Grotesk has no Cyrillic, so Russian and Ukrainian fell through to the CJK faces, whose Cyrillic glyphs are fullwidth (Hands #155, artin, #triage:83068786).
|
|
7
|
+
- Affects: only characters Space Grotesk lacks (Cyrillic, Greek and a few symbols such as arrows), on every page language. Latin and CJK text keeps its faces.
|
|
8
|
+
- Docs: https://raft-design.botiverse.build/foundations/typography/
|
|
9
|
+
|
|
10
|
+
## [0.63.0](https://github.com/botiverse/raft-design/compare/v0.62.0...v0.63.0) (2026-11-05)
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **InboxItemLine**, **InboxItemStatus**, **InboxItemListGroup** and **InboxItemListHeading** (from `@botiverse/raft-ui/wip`): a compact InboxItem row with no trailing column, and a list of rows grouped by day. ([#999](https://github.com/botiverse/raft-design/pull/999), rules in [#998](https://github.com/botiverse/raft-design/pull/998))
|
|
15
|
+
- Why: the trailing column held the time and task number on their own, wasting the row's width; the time now sits at the end of the first line and the preview takes the full width (stdrc, #proj-raft-ui:e09717fb).
|
|
16
|
+
- Affects: nothing until a row uses `InboxItemLine`. Rows built with `InboxItemTrailing` render the same DOM and classes as 0.62.0 (a parity test compares them).
|
|
17
|
+
- Docs: https://raft-design.botiverse.build/components/inbox-item/
|
|
18
|
+
- **InboxItemTimestamp**: `reveal="hover"`, for an older row in a list with `InboxItemLine`: the time is hidden at rest and shows while the row is hovered or holds keyboard focus; never on touch. In a compact row's heading the time can carry a tooltip, and a click on it opens the item.
|
|
19
|
+
- **InboxItemSkeleton** and its list: a `line` prop, so a loading row matches a row with `InboxItemLine`. Off by default.
|
|
20
|
+
|
|
1
21
|
## [0.62.0](https://github.com/botiverse/raft-design/compare/v0.61.0...v0.62.0) (2026-11-05)
|
|
2
22
|
|
|
3
23
|
### Changed
|
|
@@ -8,6 +8,11 @@ type InboxItemSkeletonShape = {
|
|
|
8
8
|
leading?: boolean;
|
|
9
9
|
/** A context line above the title, where the rows have an `InboxItemContext`. */
|
|
10
10
|
context?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* In `density="compact"`, where the rows have an `InboxItemLine`: no trailing
|
|
13
|
+
* column, the time at the end of the heading.
|
|
14
|
+
*/
|
|
15
|
+
line?: boolean;
|
|
11
16
|
};
|
|
12
17
|
export type InboxItemSkeletonProps = Omit<InboxItemProps, "active" | "disabled" | "children"> & InboxItemSkeletonShape;
|
|
13
18
|
/**
|
|
@@ -16,11 +21,12 @@ export type InboxItemSkeletonProps = Omit<InboxItemProps, "active" | "disabled"
|
|
|
16
21
|
* leading block, the context line, the title, the excerpt, the timestamp),
|
|
17
22
|
* each holding a bar instead of text. The padding, the divider and every
|
|
18
23
|
* line's height are the loaded row's, so nothing moves when the content
|
|
19
|
-
* arrives. Match `density`, `leading` and `
|
|
24
|
+
* arrives. Match `density`, `leading`, `context` and `line` to the rows it
|
|
25
|
+
* stands for.
|
|
20
26
|
* Hidden from assistive technology: mark the region that stays while the
|
|
21
27
|
* list loads `aria-busy`.
|
|
22
28
|
*/
|
|
23
|
-
export declare function InboxItemSkeleton({ density, leading, context, ...props }: InboxItemSkeletonProps): import("react").JSX.Element;
|
|
29
|
+
export declare function InboxItemSkeleton({ density, leading, context, line, ...props }: InboxItemSkeletonProps): import("react").JSX.Element;
|
|
24
30
|
export type InboxItemSkeletonListProps = useRender.ComponentProps<"div"> & InboxItemSkeletonShape & {
|
|
25
31
|
/** How many rows to show. About a screenful; ignored when there are children. */
|
|
26
32
|
count?: number;
|
|
@@ -42,5 +48,5 @@ export type InboxItemSkeletonListProps = useRender.ComponentProps<"div"> & Inbox
|
|
|
42
48
|
* content arrives, so mark the region that stays, such as the list's panel or
|
|
43
49
|
* viewport, `aria-busy` while it loads.
|
|
44
50
|
*/
|
|
45
|
-
export declare function InboxItemSkeletonList({ count, delay, density, leading, context, children, className, render, ...props }: InboxItemSkeletonListProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
51
|
+
export declare function InboxItemSkeletonList({ count, delay, density, leading, context, line, children, className, render, ...props }: InboxItemSkeletonListProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
46
52
|
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Skeleton } from "../skeleton/skeleton.mjs";
|
|
2
|
-
import { InboxItem, InboxItemBody, InboxItemContent, InboxItemContext, InboxItemHeading, InboxItemLeading, InboxItemTimestamp, InboxItemTitle, InboxItemTrailing } from "./inbox-item.mjs";
|
|
2
|
+
import { InboxItem, InboxItemBody, InboxItemContent, InboxItemContext, InboxItemHeading, InboxItemLeading, InboxItemLine, InboxItemTimestamp, InboxItemTitle, InboxItemTrailing } from "./inbox-item.mjs";
|
|
3
3
|
import { inboxItemSkeleton } from "./inbox-item-skeleton.recipe.mjs";
|
|
4
4
|
import { useEffect, useState } from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -12,16 +12,20 @@ import { useRender } from "@base-ui/react/use-render";
|
|
|
12
12
|
* leading block, the context line, the title, the excerpt, the timestamp),
|
|
13
13
|
* each holding a bar instead of text. The padding, the divider and every
|
|
14
14
|
* line's height are the loaded row's, so nothing moves when the content
|
|
15
|
-
* arrives. Match `density`, `leading` and `
|
|
15
|
+
* arrives. Match `density`, `leading`, `context` and `line` to the rows it
|
|
16
|
+
* stands for.
|
|
16
17
|
* Hidden from assistive technology: mark the region that stays while the
|
|
17
18
|
* list loads `aria-busy`.
|
|
18
19
|
*/
|
|
19
|
-
function InboxItemSkeleton({ density, leading = false, context = false, ...props }) {
|
|
20
|
+
function InboxItemSkeleton({ density, leading = false, context = false, line = false, ...props }) {
|
|
20
21
|
const slots = inboxItemSkeleton();
|
|
21
22
|
const bar = (width) => /* @__PURE__ */ jsx(Skeleton, {
|
|
22
23
|
variant: "line",
|
|
23
24
|
className: slots.bar({ className: width })
|
|
24
25
|
});
|
|
26
|
+
const fullWidth = line && density === "compact";
|
|
27
|
+
const timestamp = /* @__PURE__ */ jsx(InboxItemTimestamp, { children: bar(slots.timestampBar()) });
|
|
28
|
+
const body = /* @__PURE__ */ jsx(InboxItemBody, { children: bar(slots.bodyBar()) });
|
|
25
29
|
return /* @__PURE__ */ jsxs(InboxItem, {
|
|
26
30
|
"aria-hidden": true,
|
|
27
31
|
"data-skeleton": "",
|
|
@@ -36,13 +40,13 @@ function InboxItemSkeleton({ density, leading = false, context = false, ...props
|
|
|
36
40
|
className: slots.line(),
|
|
37
41
|
children: bar(slots.contextBar())
|
|
38
42
|
}) }) : null,
|
|
39
|
-
/* @__PURE__ */
|
|
43
|
+
/* @__PURE__ */ jsxs(InboxItemHeading, { children: [/* @__PURE__ */ jsx(InboxItemTitle, {
|
|
40
44
|
className: slots.title(),
|
|
41
45
|
children: bar(slots.titleBar())
|
|
42
|
-
}) }),
|
|
43
|
-
/* @__PURE__ */ jsx(
|
|
46
|
+
}), fullWidth ? timestamp : null] }),
|
|
47
|
+
fullWidth ? /* @__PURE__ */ jsx(InboxItemLine, { children: body }) : body
|
|
44
48
|
] }),
|
|
45
|
-
|
|
49
|
+
fullWidth ? null : /* @__PURE__ */ jsx(InboxItemTrailing, { children: timestamp })
|
|
46
50
|
]
|
|
47
51
|
});
|
|
48
52
|
}
|
|
@@ -56,7 +60,7 @@ function InboxItemSkeleton({ density, leading = false, context = false, ...props
|
|
|
56
60
|
* content arrives, so mark the region that stays, such as the list's panel or
|
|
57
61
|
* viewport, `aria-busy` while it loads.
|
|
58
62
|
*/
|
|
59
|
-
function InboxItemSkeletonList({ count = 6, delay = 1e3, density, leading, context, children, className, render, ...props }) {
|
|
63
|
+
function InboxItemSkeletonList({ count = 6, delay = 1e3, density, leading, context, line, children, className, render, ...props }) {
|
|
60
64
|
const { list } = inboxItemSkeleton();
|
|
61
65
|
const shown = useDelayPassed(delay);
|
|
62
66
|
const defaultProps = {
|
|
@@ -66,7 +70,8 @@ function InboxItemSkeletonList({ count = 6, delay = 1e3, density, leading, conte
|
|
|
66
70
|
children: shown ? children ?? Array.from({ length: count }, (_, index) => /* @__PURE__ */ jsx(InboxItemSkeleton, {
|
|
67
71
|
density,
|
|
68
72
|
leading,
|
|
69
|
-
context
|
|
73
|
+
context,
|
|
74
|
+
line
|
|
70
75
|
}, index)) : null
|
|
71
76
|
};
|
|
72
77
|
return useRender({
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { TaskStatusBadgeProps } from "../tasks/task-status-badge.mjs";
|
|
1
2
|
import { useRender } from "@base-ui/react/use-render";
|
|
2
3
|
//#region src/components/inbox-item/inbox-item.d.ts
|
|
3
4
|
/**
|
|
4
5
|
* `compact`: one line for the title and one for the excerpt, the row centred
|
|
5
|
-
* on its leading visual, and the trailing column set on the same two 20px
|
|
6
|
-
*
|
|
6
|
+
* on its leading visual, and the trailing column set on the same two 20px lines
|
|
7
|
+
* (a conversation list). With `InboxItemLine` in place of the column both lines
|
|
8
|
+
* run the full width: the time at the end of the heading, the marks at the end
|
|
9
|
+
* of the line. Leave it unset for the default two-line rows.
|
|
7
10
|
*/
|
|
8
11
|
export type InboxItemDensity = "compact";
|
|
9
12
|
export type InboxItemProps = useRender.ComponentProps<"div"> & {
|
|
@@ -29,19 +32,77 @@ export declare function InboxItemContext({ className, render, ...props }: InboxI
|
|
|
29
32
|
export type InboxItemSubtitleProps = useRender.ComponentProps<"div">;
|
|
30
33
|
export declare function InboxItemSubtitle({ className, render, ...props }: InboxItemSubtitleProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
31
34
|
export type InboxItemHeadingProps = useRender.ComponentProps<"div">;
|
|
32
|
-
export declare function InboxItemHeading({ className, render, ...props }: InboxItemHeadingProps): import("react").
|
|
35
|
+
export declare function InboxItemHeading({ className, render, ...props }: InboxItemHeadingProps): import("react").JSX.Element;
|
|
33
36
|
export type InboxItemTitleProps = useRender.ComponentProps<"div">;
|
|
34
37
|
export declare function InboxItemTitle({ className, render, ...props }: InboxItemTitleProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
35
38
|
export type InboxItemTrailingProps = useRender.ComponentProps<"div">;
|
|
36
39
|
export declare function InboxItemTrailing({ className, render, ...props }: InboxItemTrailingProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
37
|
-
export type InboxItemTimestampProps = useRender.ComponentProps<"span">;
|
|
38
|
-
export declare function InboxItemTimestamp({ className, render, ...props }: InboxItemTimestampProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
39
40
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
41
|
+
* The time. In the heading of a compact row it takes the pointer, so it can
|
|
42
|
+
* carry a tooltip, and a click on it still opens the item. A tooltip's trigger
|
|
43
|
+
* replaces `data-slot`, so the heading finds the time by `data-inbox-item-time`.
|
|
44
|
+
* In `InboxItemTrailing` it does neither and lets the pointer through.
|
|
45
|
+
*/
|
|
46
|
+
export type InboxItemTimestampProps = useRender.ComponentProps<"span"> & {
|
|
47
|
+
/**
|
|
48
|
+
* `hover`, for an older row in a list with `InboxItemLine`: hidden at rest, so
|
|
49
|
+
* the title takes its room. It shows in the same place, without animation,
|
|
50
|
+
* while the row is hovered or it or a control in it holds keyboard focus; a
|
|
51
|
+
* touch screen never hovers, so there it stays hidden. While hidden it isn't
|
|
52
|
+
* read out: say the time in the trigger's name.
|
|
53
|
+
*/
|
|
54
|
+
reveal?: "hover";
|
|
55
|
+
};
|
|
56
|
+
export declare function InboxItemTimestamp({ className, onClick, render, reveal, ...props }: InboxItemTimestampProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
57
|
+
/**
|
|
58
|
+
* The excerpt's line in a compact row with no trailing column: `InboxItemBody`
|
|
59
|
+
* or `InboxItemMessage`, taking the room, then `InboxItemMarks`. Marks with
|
|
60
|
+
* nothing in them take no room. Its presence is what puts the row in this
|
|
61
|
+
* layout: both lines run the full width, and `InboxItemActions` with
|
|
62
|
+
* `reveal="hover"`, last in `InboxItemContent`, centres on the row while both
|
|
63
|
+
* lines end short of it. A row without it stays as it is.
|
|
64
|
+
*/
|
|
65
|
+
export type InboxItemLineProps = useRender.ComponentProps<"div">;
|
|
66
|
+
export declare function InboxItemLine({ className, render, ...props }: InboxItemLineProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
67
|
+
/**
|
|
68
|
+
* Marks at the end of a line: a mention, muted, an unread count. At the end of
|
|
69
|
+
* `InboxItemLine`, or a 20px line of its own in `InboxItemTrailing`, so it sits
|
|
70
|
+
* beside the excerpt either way.
|
|
42
71
|
*/
|
|
43
72
|
export type InboxItemMarksProps = useRender.ComponentProps<"div">;
|
|
44
73
|
export declare function InboxItemMarks({ className, render, ...props }: InboxItemMarksProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
74
|
+
/**
|
|
75
|
+
* A task's status in `InboxItemMarks`: the chip with its word, and in a row with
|
|
76
|
+
* `InboxItemLine` narrower than 360px only the chip's pixel, with the word in a
|
|
77
|
+
* tooltip on it. It queries the container that row names, `inbox-item-row`, so
|
|
78
|
+
* it is the row that is measured, not the window or any other container around it. Pass an `id` to name the word in the trigger's
|
|
79
|
+
* `aria-labelledby`, as it isn't on screen there. In a row with a trailing
|
|
80
|
+
* column it stays the chip with its word.
|
|
81
|
+
*/
|
|
82
|
+
export type InboxItemStatusProps = Omit<TaskStatusBadgeProps, "children" | "render" | "size"> & {
|
|
83
|
+
/** The status's word. The caller owns the copy and its localization. */
|
|
84
|
+
children: string;
|
|
85
|
+
};
|
|
86
|
+
export declare function InboxItemStatus({ children, className, status, ...props }: InboxItemStatusProps): import("react").JSX.Element;
|
|
87
|
+
/**
|
|
88
|
+
* One day's or one group's heading and rows, placed straight in the list's
|
|
89
|
+
* column. A sticky heading stays inside its parent, so with one of these per day
|
|
90
|
+
* the next day's heading pushes the last one up and out. In one shared column
|
|
91
|
+
* the headings would pile up at the top instead. Rows of a virtualized list,
|
|
92
|
+
* placed one by one, can't sit in one: there the list has to do this itself.
|
|
93
|
+
*/
|
|
94
|
+
export type InboxItemListGroupProps = useRender.ComponentProps<"div">;
|
|
95
|
+
export declare function InboxItemListGroup({ className, render, ...props }: InboxItemListGroupProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
96
|
+
/**
|
|
97
|
+
* The heading of an `InboxItemListGroup`: it starts on the rows' content line,
|
|
98
|
+
* 8px over the first row's shape with the group's gap, and the group holds it
|
|
99
|
+
* further from the rows above. An `h3`: render another level if the list's title
|
|
100
|
+
* isn't an `h2`. To keep it in view while its rows scroll, the list makes it
|
|
101
|
+
* sticky and gives it the list's surface; its box holds the 4px above and below
|
|
102
|
+
* its words, so no row shows through them. The 2px under the box is a margin.
|
|
103
|
+
*/
|
|
104
|
+
export type InboxItemListHeadingProps = useRender.ComponentProps<"h3">;
|
|
105
|
+
export declare function InboxItemListHeading({ className, render, ...props }: InboxItemListHeadingProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
45
106
|
/**
|
|
46
107
|
* Takes the pointer inside the content, which otherwise lets it through to
|
|
47
108
|
* the trigger, so a badge's tooltip opens on hover. A click on it still opens
|
|
@@ -60,10 +121,14 @@ export declare function InboxItemMetadata({ className, render, ...props }: Inbox
|
|
|
60
121
|
export type InboxItemActionsProps = useRender.ComponentProps<"div"> & {
|
|
61
122
|
/**
|
|
62
123
|
* `hover`: with a mouse, the actions stay hidden until the row is hovered,
|
|
63
|
-
* holds focus, is `active` or has a menu open
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
124
|
+
* holds focus, is `active` or has a menu open. Give the button
|
|
125
|
+
* `variant="ghost"` here. On a touch screen (`pointer: coarse`) they show at
|
|
126
|
+
* rest. In a compact row without `InboxItemTrailing`, put them last in
|
|
127
|
+
* `InboxItemContent`: they centre on the row and both lines end short of them,
|
|
128
|
+
* the time and the marks moving over and staying visible (room for one
|
|
129
|
+
* 32px button). In `InboxItemTrailing` they take the place of the timestamp,
|
|
130
|
+
* the marks and the attention dot, which step aside; on a touch screen the
|
|
131
|
+
* rest of the trailing column moves over to make room.
|
|
67
132
|
*/
|
|
68
133
|
reveal?: "hover";
|
|
69
134
|
};
|
|
@@ -1,11 +1,30 @@
|
|
|
1
|
+
import { Tooltip, TooltipContent, TooltipTrigger } from "../tooltip/tooltip.mjs";
|
|
2
|
+
import { TaskStatusIcon } from "../tasks/task-status-icon.mjs";
|
|
3
|
+
import { TaskStatusBadge } from "../tasks/task-status-badge.mjs";
|
|
1
4
|
import { inboxItem } from "./inbox-item.recipe.mjs";
|
|
2
5
|
import { createContext, useContext } from "react";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
4
7
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
5
8
|
import { useRender } from "@base-ui/react/use-render";
|
|
6
9
|
//#region src/components/inbox-item/inbox-item.tsx
|
|
7
10
|
const InboxItemDisabledContext = createContext(false);
|
|
8
11
|
const InboxItemDensityContext = createContext(void 0);
|
|
12
|
+
const InboxItemHeadingContext = createContext(false);
|
|
13
|
+
/** The content lets the pointer through to the trigger; a part that takes it hands its click on. */
|
|
14
|
+
function openItemFrom(event) {
|
|
15
|
+
if (event.defaultPrevented) return;
|
|
16
|
+
const trigger = event.currentTarget.closest("[data-slot=inbox-item]")?.querySelector("[data-slot=inbox-item-open]");
|
|
17
|
+
if (!trigger) return;
|
|
18
|
+
trigger.dispatchEvent(new MouseEvent("click", {
|
|
19
|
+
bubbles: true,
|
|
20
|
+
cancelable: true,
|
|
21
|
+
detail: event.detail,
|
|
22
|
+
altKey: event.altKey,
|
|
23
|
+
ctrlKey: event.ctrlKey,
|
|
24
|
+
metaKey: event.metaKey,
|
|
25
|
+
shiftKey: event.shiftKey
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
9
28
|
function InboxItem({ active = false, className, density, disabled = false, render, ...props }) {
|
|
10
29
|
const { item } = inboxItem({ density });
|
|
11
30
|
const defaultProps = {
|
|
@@ -80,7 +99,8 @@ function InboxItemSelection({ className, render, ...props }) {
|
|
|
80
99
|
});
|
|
81
100
|
}
|
|
82
101
|
function InboxItemContent({ className, render, ...props }) {
|
|
83
|
-
const
|
|
102
|
+
const density = useContext(InboxItemDensityContext);
|
|
103
|
+
const { itemContent } = inboxItem({ density });
|
|
84
104
|
const defaultProps = {
|
|
85
105
|
"data-slot": "inbox-item-content",
|
|
86
106
|
className: itemContent({ className })
|
|
@@ -116,16 +136,21 @@ function InboxItemSubtitle({ className, render, ...props }) {
|
|
|
116
136
|
});
|
|
117
137
|
}
|
|
118
138
|
function InboxItemHeading({ className, render, ...props }) {
|
|
119
|
-
const
|
|
139
|
+
const density = useContext(InboxItemDensityContext);
|
|
140
|
+
const { itemHeading } = inboxItem({ density });
|
|
120
141
|
const defaultProps = {
|
|
121
142
|
"data-slot": "inbox-item-heading",
|
|
122
143
|
className: itemHeading({ className })
|
|
123
144
|
};
|
|
124
|
-
|
|
145
|
+
const element = useRender({
|
|
125
146
|
defaultTagName: "div",
|
|
126
147
|
render,
|
|
127
148
|
props: mergeProps(defaultProps, props)
|
|
128
149
|
});
|
|
150
|
+
return /* @__PURE__ */ jsx(InboxItemHeadingContext.Provider, {
|
|
151
|
+
value: density === "compact",
|
|
152
|
+
children: element
|
|
153
|
+
});
|
|
129
154
|
}
|
|
130
155
|
function InboxItemTitle({ className, render, ...props }) {
|
|
131
156
|
const density = useContext(InboxItemDensityContext);
|
|
@@ -153,12 +178,21 @@ function InboxItemTrailing({ className, render, ...props }) {
|
|
|
153
178
|
props: mergeProps(defaultProps, props)
|
|
154
179
|
});
|
|
155
180
|
}
|
|
156
|
-
function InboxItemTimestamp({ className, render, ...props }) {
|
|
181
|
+
function InboxItemTimestamp({ className, onClick, render, reveal, ...props }) {
|
|
157
182
|
const density = useContext(InboxItemDensityContext);
|
|
158
|
-
const
|
|
183
|
+
const inHeading = useContext(InboxItemHeadingContext);
|
|
184
|
+
const { itemTimestamp } = inboxItem({
|
|
185
|
+
density,
|
|
186
|
+
reveal
|
|
187
|
+
});
|
|
159
188
|
const defaultProps = {
|
|
189
|
+
"data-inbox-item-time": inHeading ? "" : void 0,
|
|
160
190
|
"data-slot": "inbox-item-timestamp",
|
|
161
|
-
className: itemTimestamp({ className })
|
|
191
|
+
className: itemTimestamp({ className }),
|
|
192
|
+
onClick: inHeading ? (event) => {
|
|
193
|
+
onClick?.(event);
|
|
194
|
+
openItemFrom(event);
|
|
195
|
+
} : onClick
|
|
162
196
|
};
|
|
163
197
|
return useRender({
|
|
164
198
|
defaultTagName: "span",
|
|
@@ -166,6 +200,18 @@ function InboxItemTimestamp({ className, render, ...props }) {
|
|
|
166
200
|
props: mergeProps(defaultProps, props)
|
|
167
201
|
});
|
|
168
202
|
}
|
|
203
|
+
function InboxItemLine({ className, render, ...props }) {
|
|
204
|
+
const { itemLine } = inboxItem();
|
|
205
|
+
const defaultProps = {
|
|
206
|
+
"data-slot": "inbox-item-line",
|
|
207
|
+
className: itemLine({ className })
|
|
208
|
+
};
|
|
209
|
+
return useRender({
|
|
210
|
+
defaultTagName: "div",
|
|
211
|
+
render,
|
|
212
|
+
props: mergeProps(defaultProps, props)
|
|
213
|
+
});
|
|
214
|
+
}
|
|
169
215
|
function InboxItemMarks({ className, render, ...props }) {
|
|
170
216
|
const { itemMarks } = inboxItem();
|
|
171
217
|
const defaultProps = {
|
|
@@ -178,6 +224,46 @@ function InboxItemMarks({ className, render, ...props }) {
|
|
|
178
224
|
props: mergeProps(defaultProps, props)
|
|
179
225
|
});
|
|
180
226
|
}
|
|
227
|
+
function InboxItemStatus({ children, className, status, ...props }) {
|
|
228
|
+
const { itemStatusWord, itemStatusPixel } = inboxItem();
|
|
229
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(TaskStatusBadge, {
|
|
230
|
+
status,
|
|
231
|
+
size: "sm",
|
|
232
|
+
className: itemStatusWord({ className }),
|
|
233
|
+
...props,
|
|
234
|
+
children
|
|
235
|
+
}), /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
|
|
236
|
+
render: /* @__PURE__ */ jsx(InboxItemHoverTarget, { className: itemStatusPixel() }),
|
|
237
|
+
role: "img",
|
|
238
|
+
"aria-label": children,
|
|
239
|
+
"data-slot": "inbox-item-status-pixel",
|
|
240
|
+
children: /* @__PURE__ */ jsx(TaskStatusIcon, { status })
|
|
241
|
+
}), /* @__PURE__ */ jsx(TooltipContent, { children })] })] });
|
|
242
|
+
}
|
|
243
|
+
function InboxItemListGroup({ className, render, ...props }) {
|
|
244
|
+
const { itemListGroup } = inboxItem();
|
|
245
|
+
const defaultProps = {
|
|
246
|
+
"data-slot": "inbox-item-list-group",
|
|
247
|
+
className: itemListGroup({ className })
|
|
248
|
+
};
|
|
249
|
+
return useRender({
|
|
250
|
+
defaultTagName: "div",
|
|
251
|
+
render,
|
|
252
|
+
props: mergeProps(defaultProps, props)
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
function InboxItemListHeading({ className, render, ...props }) {
|
|
256
|
+
const { itemListHeading } = inboxItem();
|
|
257
|
+
const defaultProps = {
|
|
258
|
+
"data-slot": "inbox-item-list-heading",
|
|
259
|
+
className: itemListHeading({ className })
|
|
260
|
+
};
|
|
261
|
+
return useRender({
|
|
262
|
+
defaultTagName: "h3",
|
|
263
|
+
render,
|
|
264
|
+
props: mergeProps(defaultProps, props)
|
|
265
|
+
});
|
|
266
|
+
}
|
|
181
267
|
function InboxItemHoverTarget({ className, onClick, render, ...props }) {
|
|
182
268
|
const { itemHoverTarget } = inboxItem();
|
|
183
269
|
const defaultProps = {
|
|
@@ -185,18 +271,7 @@ function InboxItemHoverTarget({ className, onClick, render, ...props }) {
|
|
|
185
271
|
className: itemHoverTarget({ className }),
|
|
186
272
|
onClick: (event) => {
|
|
187
273
|
onClick?.(event);
|
|
188
|
-
|
|
189
|
-
const trigger = event.currentTarget.closest("[data-slot=inbox-item]")?.querySelector("[data-slot=inbox-item-open]");
|
|
190
|
-
if (!trigger) return;
|
|
191
|
-
trigger.dispatchEvent(new MouseEvent("click", {
|
|
192
|
-
bubbles: true,
|
|
193
|
-
cancelable: true,
|
|
194
|
-
detail: event.detail,
|
|
195
|
-
altKey: event.altKey,
|
|
196
|
-
ctrlKey: event.ctrlKey,
|
|
197
|
-
metaKey: event.metaKey,
|
|
198
|
-
shiftKey: event.shiftKey
|
|
199
|
-
}));
|
|
274
|
+
openItemFrom(event);
|
|
200
275
|
}
|
|
201
276
|
};
|
|
202
277
|
return useRender({
|
|
@@ -273,4 +348,4 @@ function InboxItemActions({ className, render, reveal, ...props }) {
|
|
|
273
348
|
});
|
|
274
349
|
}
|
|
275
350
|
//#endregion
|
|
276
|
-
export { InboxItem, InboxItemActions, InboxItemBody, InboxItemContent, InboxItemContext, InboxItemHeading, InboxItemHoverTarget, InboxItemLeading, InboxItemMarks, InboxItemMessage, InboxItemMetadata, InboxItemSelection, InboxItemSender, InboxItemSubtitle, InboxItemTimestamp, InboxItemTitle, InboxItemTrailing, InboxItemTrigger };
|
|
351
|
+
export { InboxItem, InboxItemActions, InboxItemBody, InboxItemContent, InboxItemContext, InboxItemHeading, InboxItemHoverTarget, InboxItemLeading, InboxItemLine, InboxItemListGroup, InboxItemListHeading, InboxItemMarks, InboxItemMessage, InboxItemMetadata, InboxItemSelection, InboxItemSender, InboxItemStatus, InboxItemSubtitle, InboxItemTimestamp, InboxItemTitle, InboxItemTrailing, InboxItemTrigger };
|
|
@@ -70,9 +70,18 @@ const inboxItem = tv({
|
|
|
70
70
|
"group-data-[active=true]/inbox-item:[--inbox-item-revealed:1] group-data-popup-open/inbox-item:[--inbox-item-revealed:1]",
|
|
71
71
|
"has-[>[data-reveal=hover]_[data-popup-open]]:[--inbox-item-revealed:1]"
|
|
72
72
|
],
|
|
73
|
+
itemStatusWord: ["shrink-0 @max-[320px]/inbox-item-row:hidden"],
|
|
74
|
+
itemStatusPixel: ["hidden items-center @max-[320px]/inbox-item-row:inline-flex"],
|
|
75
|
+
itemListGroup: ["flex flex-col gap-0.5", "mt-1.5 first:mt-0"],
|
|
76
|
+
itemListHeading: ["mb-0.5 px-5 py-1", "font-sans text-footnote font-bold text-foreground-hint"],
|
|
73
77
|
itemMarks: ["flex h-5 shrink-0 items-center justify-end gap-1.5", "text-foreground-hint"],
|
|
74
78
|
itemHoverTarget: ["pointer-events-auto"],
|
|
75
79
|
itemTimestamp: ["shrink-0 whitespace-nowrap text-right tabular-nums", "font-mono text-mono-meta text-foreground-hint"],
|
|
80
|
+
itemLine: [
|
|
81
|
+
"flex h-(--text-callout--line-height) min-w-0 items-center gap-2",
|
|
82
|
+
"*:not-data-[slot=inbox-item-marks]:min-w-0 *:not-data-[slot=inbox-item-marks]:flex-1",
|
|
83
|
+
"*:data-[slot=inbox-item-marks]:empty:hidden"
|
|
84
|
+
],
|
|
76
85
|
itemBody: [
|
|
77
86
|
"col-span-full nth-[-n+2]:col-[1/2]",
|
|
78
87
|
"line-clamp-2",
|
|
@@ -105,7 +114,16 @@ const inboxItem = tv({
|
|
|
105
114
|
},
|
|
106
115
|
variants: {
|
|
107
116
|
density: { compact: {
|
|
108
|
-
item: [
|
|
117
|
+
item: [
|
|
118
|
+
"items-center",
|
|
119
|
+
"has-data-[slot=inbox-item-line]:@container/inbox-item-row",
|
|
120
|
+
"has-data-[slot=inbox-item-line]:[--inbox-item-content-end:-1]",
|
|
121
|
+
"has-data-[slot=inbox-item-line]:pointer-fine:[:hover,:focus-within,[data-active=true],[data-popup-open],:has([data-popup-open])]:[--inbox-item-actions-room:--spacing(10)]",
|
|
122
|
+
"has-data-[slot=inbox-item-line]:pointer-coarse:[--inbox-item-actions-room:--spacing(11)]",
|
|
123
|
+
"has-data-[slot=inbox-item-line]:hover:[--inbox-item-time-display:inline] has-data-[slot=inbox-item-line]:keyboard:focus-within:[--inbox-item-time-display:inline]"
|
|
124
|
+
],
|
|
125
|
+
itemContent: ["has-[>[data-slot=inbox-item-line]]:has-[>[data-reveal=hover]]:pr-(--inbox-item-actions-room,0px)"],
|
|
126
|
+
itemHeading: ["has-[>[data-inbox-item-time]]:h-(--text-subhead--line-height) has-[>[data-inbox-item-time]]:items-baseline", "*:data-inbox-item-time:pointer-events-auto *:data-inbox-item-time:cursor-default"],
|
|
109
127
|
itemTitle: ["line-clamp-1", "pl-0 has-[>svg]:pl-[18px]"],
|
|
110
128
|
itemTrailing: [
|
|
111
129
|
"gap-0 pt-0",
|
|
@@ -116,16 +134,19 @@ const inboxItem = tv({
|
|
|
116
134
|
itemBody: ["line-clamp-1", "mt-0"],
|
|
117
135
|
itemMessage: ["line-clamp-1", "mt-0"]
|
|
118
136
|
} },
|
|
119
|
-
reveal: { hover: {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
137
|
+
reveal: { hover: {
|
|
138
|
+
itemActions: [
|
|
139
|
+
"absolute top-0 right-0 z-10",
|
|
140
|
+
"pointer-events-none opacity-0 transition-opacity",
|
|
141
|
+
"group-hover/inbox-item:pointer-events-auto group-hover/inbox-item:opacity-100",
|
|
142
|
+
"group-focus-within/inbox-item:pointer-events-auto group-focus-within/inbox-item:opacity-100",
|
|
143
|
+
"group-data-[active=true]/inbox-item:pointer-events-auto group-data-[active=true]/inbox-item:opacity-100",
|
|
144
|
+
"group-data-popup-open/inbox-item:pointer-events-auto group-data-popup-open/inbox-item:opacity-100",
|
|
145
|
+
"has-data-popup-open:pointer-events-auto has-data-popup-open:opacity-100",
|
|
146
|
+
"pointer-coarse:pointer-events-auto pointer-coarse:opacity-100 pointer-coarse:only:static"
|
|
147
|
+
],
|
|
148
|
+
itemTimestamp: ["[display:var(--inbox-item-time-display,none)]"]
|
|
149
|
+
} }
|
|
129
150
|
},
|
|
130
151
|
compoundVariants: [{
|
|
131
152
|
density: "compact",
|
package/dist/fonts.css
CHANGED
|
@@ -1,43 +1,46 @@
|
|
|
1
1
|
@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300..700&family=Space+Mono:wght@400;700&display=swap");
|
|
2
2
|
|
|
3
3
|
/* Raft Design System: Space Grotesk is what people say, Space Mono is what
|
|
4
|
-
machines write.
|
|
4
|
+
machines write. Arial / Helvetica Neue cover Cyrillic before the CJK faces,
|
|
5
|
+
whose Cyrillic glyphs can have wide advances. Keep system-ui after the CJK
|
|
6
|
+
families so it does not override their language-specific glyph shapes.
|
|
7
|
+
CJK falls back to PingFang / Source Han Sans; a Traditional
|
|
5
8
|
Chinese, Japanese or Korean page (<html lang="zh-TW|ja|ko">) falls back to its
|
|
6
9
|
own faces first, so characters keep Traditional or Japanese glyph shapes and
|
|
7
10
|
Hangul a Korean face. */
|
|
8
11
|
:where(:root) {
|
|
9
12
|
--heading-font:
|
|
10
|
-
"Space Grotesk", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
|
|
11
|
-
system-ui, sans-serif;
|
|
13
|
+
"Space Grotesk", Arial, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
|
|
14
|
+
"Noto Sans SC", system-ui, sans-serif;
|
|
12
15
|
--sans-font:
|
|
13
|
-
"Space Grotesk", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
|
|
14
|
-
system-ui, sans-serif;
|
|
16
|
+
"Space Grotesk", Arial, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
|
|
17
|
+
"Noto Sans SC", system-ui, sans-serif;
|
|
15
18
|
--mono-font: "Space Mono", ui-monospace, "SF Mono", Menlo, monospace;
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
:where(:root:lang(zh-TW), :root:lang(zh-HK), :root:lang(zh-MO), :root:lang(zh-Hant)) {
|
|
19
22
|
--heading-font:
|
|
20
|
-
"Space Grotesk", "
|
|
21
|
-
"Noto Sans CJK TC", system-ui, sans-serif;
|
|
23
|
+
"Space Grotesk", Arial, "Helvetica Neue", "PingFang TC", "Microsoft JhengHei UI",
|
|
24
|
+
"Microsoft JhengHei", "Noto Sans TC", "Noto Sans CJK TC", system-ui, sans-serif;
|
|
22
25
|
--sans-font:
|
|
23
|
-
"Space Grotesk", "
|
|
24
|
-
"Noto Sans CJK TC", system-ui, sans-serif;
|
|
26
|
+
"Space Grotesk", Arial, "Helvetica Neue", "PingFang TC", "Microsoft JhengHei UI",
|
|
27
|
+
"Microsoft JhengHei", "Noto Sans TC", "Noto Sans CJK TC", system-ui, sans-serif;
|
|
25
28
|
}
|
|
26
29
|
|
|
27
30
|
:where(:root:lang(ja)) {
|
|
28
31
|
--heading-font:
|
|
29
|
-
"Space Grotesk", "Hiragino Sans", "Hiragino Kaku Gothic ProN",
|
|
30
|
-
"Noto Sans JP", "Noto Sans CJK JP", system-ui, sans-serif;
|
|
32
|
+
"Space Grotesk", Arial, "Helvetica Neue", "Hiragino Sans", "Hiragino Kaku Gothic ProN",
|
|
33
|
+
"Yu Gothic UI", Meiryo, "Noto Sans JP", "Noto Sans CJK JP", system-ui, sans-serif;
|
|
31
34
|
--sans-font:
|
|
32
|
-
"Space Grotesk", "Hiragino Sans", "Hiragino Kaku Gothic ProN",
|
|
33
|
-
"Noto Sans JP", "Noto Sans CJK JP", system-ui, sans-serif;
|
|
35
|
+
"Space Grotesk", Arial, "Helvetica Neue", "Hiragino Sans", "Hiragino Kaku Gothic ProN",
|
|
36
|
+
"Yu Gothic UI", Meiryo, "Noto Sans JP", "Noto Sans CJK JP", system-ui, sans-serif;
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
:where(:root:lang(ko)) {
|
|
37
40
|
--heading-font:
|
|
38
|
-
"Space Grotesk", "Apple SD Gothic Neo", "Malgun Gothic",
|
|
39
|
-
system-ui, sans-serif;
|
|
41
|
+
"Space Grotesk", Arial, "Helvetica Neue", "Apple SD Gothic Neo", "Malgun Gothic",
|
|
42
|
+
"Noto Sans KR", "Noto Sans CJK KR", system-ui, sans-serif;
|
|
40
43
|
--sans-font:
|
|
41
|
-
"Space Grotesk", "Apple SD Gothic Neo", "Malgun Gothic",
|
|
42
|
-
system-ui, sans-serif;
|
|
44
|
+
"Space Grotesk", Arial, "Helvetica Neue", "Apple SD Gothic Neo", "Malgun Gothic",
|
|
45
|
+
"Noto Sans KR", "Noto Sans CJK KR", system-ui, sans-serif;
|
|
43
46
|
}
|
package/dist/wip.d.mts
CHANGED
|
@@ -25,6 +25,7 @@ import "./components/table/index.mjs";
|
|
|
25
25
|
import { DEFAULT_DRAG_MESSAGES, DragAnnouncementSource, DragMessages, DragNamed, DragPlace, createDragAnnouncements, dragInstructions, dragMessages } from "./components/drag/drag-announcements.mjs";
|
|
26
26
|
import { PanelSplitAction, PanelSplitActionMain, PanelSplitActionMainProps, PanelSplitActionMenu, PanelSplitActionMenuProps, PanelSplitActionProps, PanelSplitActionToggle, PanelSplitActionToggleProps } from "./components/panel/panel-split-action.mjs";
|
|
27
27
|
import "./components/panel/index.mjs";
|
|
28
|
+
import { InboxItemLine, InboxItemLineProps, InboxItemListGroup, InboxItemListGroupProps, InboxItemListHeading, InboxItemListHeadingProps, InboxItemStatus, InboxItemStatusProps } from "./components/inbox-item/inbox-item.mjs";
|
|
28
29
|
import { ModeBar, ModeBarAction, ModeBarActionProps, ModeBarContent, ModeBarContentProps, ModeBarDescription, ModeBarDescriptionProps, ModeBarProps, ModeBarTitle, ModeBarTitleProps } from "./components/mode-bar/mode-bar.mjs";
|
|
29
30
|
import "./components/mode-bar/index.mjs";
|
|
30
31
|
import { ComboboxSelectGroup, ComboboxSelectMessages, ComboboxSelectOption, ComboboxSelectProps, ComboboxSelectSelection, ComboboxSelectValue } from "./components/combobox-select/combobox-select.types.mjs";
|
|
@@ -68,4 +69,4 @@ import { SaveStatus, SaveStatusError, SaveStatusErrorProps, SaveStatusProps, Sav
|
|
|
68
69
|
import "./components/save-status/index.mjs";
|
|
69
70
|
import { TaskCompletionControl, TaskCompletionControlProps } from "./components/task-completion-control/task-completion-control.mjs";
|
|
70
71
|
import "./components/task-completion-control/index.mjs";
|
|
71
|
-
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, type KbdKeyName, KbdShortcut, type KbdShortcutProps, type KeyboardPlatform, 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, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|
|
72
|
+
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, InboxItemLine, type InboxItemLineProps, InboxItemListGroup, type InboxItemListGroupProps, InboxItemListHeading, type InboxItemListHeadingProps, InboxItemSkeleton, InboxItemSkeletonList, type InboxItemSkeletonListProps, type InboxItemSkeletonProps, InboxItemStatus, type InboxItemStatusProps, type KbdKeyName, KbdShortcut, type KbdShortcutProps, type KeyboardPlatform, 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, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|
package/dist/wip.mjs
CHANGED
|
@@ -21,6 +21,7 @@ import { DRAG_AUTO_SCROLL_ZONE_PX, DRAG_KEYBOARD_OFFSET_PX, DRAG_LIFT_Z_INDEX, D
|
|
|
21
21
|
import { DRAG_KEYBOARD_CODES, DragRemeasure, MOUSE_DRAG_DISTANCE_PX, listKeyboardCoordinates, useDragAcrossLists, useDragSensors } from "./components/drag/drag-sensors.mjs";
|
|
22
22
|
import { DragRefusalHint, DropPlaceholder } from "./components/drag/drop-placeholder.mjs";
|
|
23
23
|
import { PanelSplitAction, PanelSplitActionMain, PanelSplitActionMenu, PanelSplitActionToggle } from "./components/panel/panel-split-action.mjs";
|
|
24
|
+
import { InboxItemLine, InboxItemListGroup, InboxItemListHeading, InboxItemStatus } from "./components/inbox-item/inbox-item.mjs";
|
|
24
25
|
import { ModeBar, ModeBarAction, ModeBarContent, ModeBarDescription, ModeBarTitle } from "./components/mode-bar/mode-bar.mjs";
|
|
25
26
|
import { ComboboxSelect } from "./components/combobox-select/combobox-select.mjs";
|
|
26
27
|
import { AnnouncementDialogAction, AnnouncementDialogBody, AnnouncementDialogContent, AnnouncementDialogFooter, AnnouncementDialogHeader, AnnouncementDialogLabel, AnnouncementDialogPicture, AnnouncementDialogSecondaryAction, AnnouncementDialogText, AnnouncementDialogTitle } from "./components/announcement-dialog/announcement-dialog.mjs";
|
|
@@ -45,4 +46,4 @@ import { PullToRefreshIndicator } from "./components/pull-to-refresh/pull-to-ref
|
|
|
45
46
|
import { ChoiceList } from "./components/choice-list/choice-list.mjs";
|
|
46
47
|
import { SaveStatus, SaveStatusError, SaveStatusSaved } from "./components/save-status/save-status.mjs";
|
|
47
48
|
import { TaskCompletionControl } from "./components/task-completion-control/task-completion-control.mjs";
|
|
48
|
-
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, KbdShortcut, 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, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|
|
49
|
+
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, InboxItemLine, InboxItemListGroup, InboxItemListHeading, InboxItemSkeleton, InboxItemSkeletonList, InboxItemStatus, KbdShortcut, 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, useKeyboardPlatform, useMouseOnlyPointerSensor, useParentOverlayKind, usePullToRefresh, useTruncated };
|