@botiverse/raft-ui 0.36.1 → 0.37.0
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 +26 -0
- package/dist/cn.mjs +8 -0
- package/dist/foundation.css +15 -3
- package/dist/{inbox-item-BB6vO4PO.mjs → inbox-item-D7xLTDjD.mjs} +1 -1
- package/dist/index.mjs +15 -22
- package/dist/styles.css +51 -0
- package/dist/tokens.json +40 -0
- package/dist/wip.mjs +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
## [0.37.0](https://github.com/botiverse/raft-design/compare/v0.36.1...v0.37.0) (2026-10-26)
|
|
2
|
+
|
|
3
|
+
### Design System
|
|
4
|
+
|
|
5
|
+
- **Edges fade:** content that goes on past an edge fades with a mask, not a colour gradient, so the fade works on any surface (a hovered, selected or located row, a card). Two lengths: 24px at the edge of a scrolling strip, 48px over cut-off content. `MessageListEndFade` is the one exception. ([#816](https://github.com/botiverse/raft-design/pull/816))
|
|
6
|
+
- Docs: https://raft-design.botiverse.build/foundations/spacing/
|
|
7
|
+
- **Dimmed:** deleted, offline and pending items are `opacity-dimmed` (60%); a drag origin stays 40%. Media hover is an `ink-8` overlay, not a brightness filter. ([#816](https://github.com/botiverse/raft-design/pull/816))
|
|
8
|
+
- Docs: https://raft-design.botiverse.build/foundations/states/
|
|
9
|
+
- **Tooltip:** a disabled control's reason under its name is a second line in `foreground-on-hud-muted`, 4px below. ([#813](https://github.com/botiverse/raft-design/pull/813))
|
|
10
|
+
- **Drag and drop:** a panel grip's hit area stays clear of a neighbouring resize seam, with its bar inside it. ([#814](https://github.com/botiverse/raft-design/pull/814))
|
|
11
|
+
- **Raft Chat:** the history paywall where a plan cuts a conversation's history. ([#757](https://github.com/botiverse/raft-design/pull/757))
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Utilities `mask-fade-t`, `mask-fade-b` (48px), `mask-fade-t-edge`, `mask-fade-b-edge` (24px) and `mask-fade-x` (24px on the side named by `data-overflow="start|end|both"`); tokens `fade-edge`, `fade-content`. ([#816](https://github.com/botiverse/raft-design/pull/816))
|
|
16
|
+
- Token `layer-veil` (the page at 80%) for busy and loading covers, `bg-layer-veil`; `opacity-dimmed` (0.6). Both registered with `cn`'s tailwind-merge. ([#816](https://github.com/botiverse/raft-design/pull/816))
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **Tabs**: the overflow fade is `mask-fade-x`, 24px (was 32px). ([#816](https://github.com/botiverse/raft-design/pull/816))
|
|
21
|
+
- **MessageForwardedBundle**: the fold fades with `mask-fade-b` (48px, was a 40px card-colour gradient; a tight fold 24px, was 20px). ([#816](https://github.com/botiverse/raft-design/pull/816))
|
|
22
|
+
- Affects: overrides that targeted the fold's `::after` must drop it.
|
|
23
|
+
- **Composer** upload and failed covers, and the pending **MessageImageGallery** image, use `layer-veil` (were `layer-card/80`, `layer-card/90` and `opacity-70`); the pending spinner uses its default colour. ([#816](https://github.com/botiverse/raft-design/pull/816))
|
|
24
|
+
- **Lightbox** thumbnails dim with `layer-backdrop-nested` (40%, was `black/45`); hover 28% unchanged. ([#816](https://github.com/botiverse/raft-design/pull/816))
|
|
25
|
+
- Task chip and task-card busy states, and the deleted delegated avatar, use `opacity-dimmed` (same 60%). ([#816](https://github.com/botiverse/raft-design/pull/816))
|
|
26
|
+
|
|
1
27
|
## [0.36.1](https://github.com/botiverse/raft-design/compare/v0.36.0...v0.36.1) (2026-10-26)
|
|
2
28
|
|
|
3
29
|
### Design System
|
package/dist/cn.mjs
CHANGED
|
@@ -60,6 +60,14 @@ const twMerge = extendTailwindMerge({ extend: {
|
|
|
60
60
|
"control"
|
|
61
61
|
] }],
|
|
62
62
|
"font-weight": [{ font: ["field", "card-title"] }],
|
|
63
|
+
"mask-image": [{ "mask-fade": [
|
|
64
|
+
"t",
|
|
65
|
+
"t-edge",
|
|
66
|
+
"b",
|
|
67
|
+
"b-edge",
|
|
68
|
+
"x"
|
|
69
|
+
] }],
|
|
70
|
+
opacity: [{ opacity: ["dimmed"] }],
|
|
63
71
|
"bg-image": [
|
|
64
72
|
{ overlay: [
|
|
65
73
|
"subtle",
|
package/dist/foundation.css
CHANGED
|
@@ -27,8 +27,9 @@
|
|
|
27
27
|
selected sticker, with their own value so no theme grays them.
|
|
28
28
|
Washes: ink-{alpha%} (2..40) — neutral overlays, hairlines, hover fills.
|
|
29
29
|
Opacity rule: layer tokens are opaque in every theme, except the two
|
|
30
|
-
backdrops (overlays by contract
|
|
31
|
-
|
|
30
|
+
backdrops and the veil (overlays by contract: a scrim under a modal
|
|
31
|
+
surface, a cover over something busy in place); among fills only the
|
|
32
|
+
hover tiers (fill-subtle, fill-medium, fill-frame-medium) are translucent.
|
|
32
33
|
Interaction fills: transparent resting → ink-N directly; solid family fill →
|
|
33
34
|
the family's -hover/-active pair; neutral or tinted surface → step up its ladder.
|
|
34
35
|
Escape hatches: ink ramp for one-off washes; inline oklch() literals for
|
|
@@ -36,7 +37,8 @@
|
|
|
36
37
|
|
|
37
38
|
/* Raw brand ramps (the website palette) — variables only, no utility registration. Consumed by the
|
|
38
39
|
Tailwind aliases in styles.css, the brand ramps, and state families below. Then the
|
|
39
|
-
mode-independent
|
|
40
|
+
mode-independent values: the fade lengths (design/foundations/spacing.md), the dimmed
|
|
41
|
+
opacity (design/foundations/states.md) and motion (design/foundations/motion.md). */
|
|
40
42
|
:where(:root) {
|
|
41
43
|
--palette-yellow-50: oklch(0.984 0.017 84.56);
|
|
42
44
|
--palette-yellow-100: oklch(0.975 0.027 85.64);
|
|
@@ -137,6 +139,9 @@
|
|
|
137
139
|
--palette-cream-800: oklch(0.396 0.082 95);
|
|
138
140
|
--palette-cream-900: oklch(0.276 0.057 95.1);
|
|
139
141
|
--palette-cream-950: oklch(0.19 0.039 94.7);
|
|
142
|
+
--fade-edge: 24px;
|
|
143
|
+
--fade-content: 48px;
|
|
144
|
+
--opacity-dimmed: 0.6;
|
|
140
145
|
--motion-drag-settle-duration: 160ms;
|
|
141
146
|
--motion-drag-settle-easing: cubic-bezier(0.25, 1, 0.5, 1);
|
|
142
147
|
}
|
|
@@ -168,6 +173,11 @@
|
|
|
168
173
|
--layer-popover: oklch(1 0 0);
|
|
169
174
|
--layer-backdrop: oklch(0 0 0 / 0.651);
|
|
170
175
|
--layer-backdrop-nested: oklch(0 0 0 / 0.4);
|
|
176
|
+
/* The cover over something busy or loading in place: an image uploading or
|
|
177
|
+
that failed, a preview being prepared. The page at 80%, so what is under it
|
|
178
|
+
shows through, dimmed, and a default-colour Spinner on it reads in both
|
|
179
|
+
modes. Translucent by contract, like the two backdrops. */
|
|
180
|
+
--layer-veil: oklch(1 0 0 / 0.8);
|
|
171
181
|
--layer-card: oklch(1 0 0);
|
|
172
182
|
--layer-hud: oklch(0.2634 0.0093 294.92);
|
|
173
183
|
--layer-frame: oklch(0.8829 0.1623 91.9);
|
|
@@ -381,6 +391,7 @@
|
|
|
381
391
|
--layer-popover: oklch(0.2802 0.0036 106.63);
|
|
382
392
|
--layer-backdrop: oklch(0 0 0 / 0.6);
|
|
383
393
|
--layer-backdrop-nested: oklch(0 0 0 / 0.4);
|
|
394
|
+
--layer-veil: oklch(0.2213 0.0038 106.71 / 0.8);
|
|
384
395
|
--layer-card: oklch(0.2596 0.0037 106.65);
|
|
385
396
|
--layer-hud: oklch(0.2802 0.0036 106.63);
|
|
386
397
|
--layer-frame: oklch(0.1582 0.0041 106.86);
|
|
@@ -465,6 +476,7 @@
|
|
|
465
476
|
--layer-popover: oklch(0.2802 0.0036 106.63);
|
|
466
477
|
--layer-backdrop: oklch(0 0 0 / 0.6);
|
|
467
478
|
--layer-backdrop-nested: oklch(0 0 0 / 0.4);
|
|
479
|
+
--layer-veil: oklch(0.2213 0.0038 106.71 / 0.8);
|
|
468
480
|
--layer-card: oklch(0.2596 0.0037 106.65);
|
|
469
481
|
--layer-hud: oklch(0.2802 0.0036 106.63);
|
|
470
482
|
--layer-frame: oklch(0.1582 0.0041 106.86);
|
|
@@ -4245,7 +4245,7 @@ const messageItem = tv$1({
|
|
|
4245
4245
|
"size-[19px] group-data-[size=md]/avatar:size-[19px]",
|
|
4246
4246
|
"rounded-sticker outline-none",
|
|
4247
4247
|
"bg-layer-canvas bg-[linear-gradient(var(--mi-row-fill,transparent),var(--mi-row-fill,transparent))]",
|
|
4248
|
-
"data-deleted:*:data-[slot=avatar]:grayscale data-deleted:*:data-[slot=avatar]:opacity-
|
|
4248
|
+
"data-deleted:*:data-[slot=avatar]:grayscale data-deleted:*:data-[slot=avatar]:opacity-dimmed",
|
|
4249
4249
|
"shadow-[0_0_0_1.5px_var(--mi-row-fill,transparent),0_0_0_1.5px_var(--layer-canvas)]",
|
|
4250
4250
|
"dark:shadow-[0_0_0_3px_var(--mi-row-fill,transparent),0_0_0_3px_var(--layer-canvas)]"
|
|
4251
4251
|
],
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cn } from "./cn.mjs";
|
|
2
|
-
import { $ as MessageListDateDivider, $i as DialogContent, $n as PreviewCardContent, $r as DropdownMenuItemLabel, $t as MessageReactionTooltipNameText, Aa as controlIconInset, Ai as ListRow, An as MessageItem, Ar as PopoverPopup, At as MessageMultiSelectToolbarActions, B as useDragSiblingTransition, Bi as ListRowValue, Bn as RadioGroupItem, Bt as inlineChip, C as DropPlaceholder, Ca as withOverlayLayer, Ci as ScrollAreaCorner, Cn as MessageItemEdited, Cr as PopoverArrow, Ct as messageEmbed, Da as tv, Di as Checkbox, Dn as MessageItemAvatarSlot, Dr as PopoverContent, Dt as MessageMultiSelect, Ea as ThemeStateContext, Ei as ScrollAreaViewport, En as MessageItemSearchMatch, Er as PopoverClose, Et as MessageTextSelectionToolbarSeparator, Fi as ListRowGroup, Fn as AvatarGroup, Fr as PopoverViewport, Ft as MessageReferencePending, G as SILENT_DRAG_ANNOUNCEMENTS, Gi as TooltipTrigger, Gr as MobileNavRoot, Gt as MessageReactionGlyph, Hi as TooltipContent, Hn as InputGroupAddon, Ht as MessageReactionChip, I as DragLift, Ii as ListRowIcon, In as AvatarGroupCount, It as MessageReferenceReadMark, Jr as DropdownMenuCheckboxItemIndicator, Jt as MessageReactionQuickButton, K as createDragAnnouncements, Ki as Badge, Kr as DropdownMenu, Kt as MessageReactionPickerContent, Li as ListRowMeta, Ln as AvatarImage, Lt as MessageReferenceSuffix, Ma as headEdges, Mi as ListRowBottom, Mn as Avatar, Mr as PopoverSeparator, Na as decisionWidth, Ni as ListRowChevron, Nn as AvatarBadge, Nr as PopoverTitle, Nt as MessageReferenceIndicator, Oa as stackedActions, Oi as CheckboxIndicator, On as MessageItemContinuationTime, Or as PopoverDescription, Ot as MessageMultiSelectCheckbox, Pi as ListRowDescription, Pn as AvatarFallback, Pr as PopoverTrigger, Pt as MessageReferenceLabel, Qi as DialogClose, Qr as DropdownMenuItemCount, Qt as MessageReactionTooltipName, Ri as ListRowTitle, Rn as RadioGroup, Rt as MessageReferenceText, Sa as useParentOverlayKind, Si as ScrollAreaContent, Sn as MessageItemContent, St as MessageEmbedHeader, Ta as useTheme, Ti as ScrollAreaThumb, Tn as MessageItemFooter, Tt as MessageTextSelectionToolbarButton, U as drag, Ui as TooltipPortal, Un as InputGroupInput, Ur as MobileNavItem, Ut as MessageReactionCount, V as useLiftContainer, Vi as Tooltip, Vn as InputGroup, Vt as MessageReactionAddButton, Wi as TooltipProvider, Wn as useOverflowTitle, Wr as MobileNavLabel, Wt as MessageReactionErrorIndicator, Xi as Dialog, Xr as DropdownMenuFooter, Xt as MessageReactionTooltipContent, Yi as useMobileViewport, Yn as PreviewCard, Yr as DropdownMenuContent, Yt as MessageReactionQuickRow, Zi as DialogBody, Zn as PreviewCardArrow, Zr as DropdownMenuItem, Zt as MessageReactionTooltipMeta, _ as InboxItemTrailing, _a as Button, _i as PanelHeaderRoot, _n as MessageItemSenderButton, _t as MessageQuotedPreviewTimestamp, a as InboxItemContext, aa as DialogOverlay, ai as DropdownMenuRadioItem, an as MessageItemSavedIndicator, ar as PreviewCardPopup, at as MessageQuotedPreviewAttachment, b as useLatestRef, ba as defaultNativeButton, bi as PanelSection, bn as MessageItemAttachments, bt as MessageEmbedContent, c as InboxItemLeading, ca as DialogSurface, ci as DropdownMenuShortcut, cr as PreviewCardTitle, d as InboxItemMetadata, da as PanelAction, di as DropdownMenuTrigger, dt as MessageQuotedPreviewChannel, ea as DialogDescription, ei as DropdownMenuLabel, en as MessageReactionTooltipNames, er as PreviewCardDescription, et as MessageListEndFade, f as InboxItemSelection, fa as panelToggleAction, fi as Kbd, fn as MessageItemHeader, ft as MessageQuotedPreviewContent, g as InboxItemTitle, ga as DialogSheetReset, gi as PanelFooter, gn as MessageItemSenderBadges, gt as MessageQuotedPreviewThread, h as InboxItemTimestamp, ha as textLinkVariants, hi as PanelBody, hn as MessageItemSender, ht as MessageQuotedPreviewText, i as InboxItemContent, ia as DialogNav, ii as DropdownMenuRadioGroup, in as MessageItemReadReceipt, it as MessageQuotedPreview, ja as headEdgePull, ji as ListRowBody, jn as searchHit, jr as PopoverPortal, jt as MessageReferenceChip, k as useDragSensors, ka as useStackedActions, ki as PRESENCE_COLOR, kn as MessageItemGutter, kr as PopoverHeader, kt as MessageMultiSelectToolbar, l as InboxItemMarks, la as DialogTitle, li as DropdownMenuSubmenu, lr as PreviewCardTrigger, lt as MessageQuotedPreviewAuthorMeta, m as InboxItemSubtitle, ma as TextLinkExternalIcon, mi as Panel, mn as MessageItemMeta, mt as MessageQuotedPreviewLoading, n as InboxItemActions, ni as DropdownMenuPopup, nn as MessageItemBadge, nt as MessageListNotice, o as InboxItemHeading, oa as DialogPortal, oi as DropdownMenuRadioItemIndicator, on as MessageItemToolbar, or as PreviewCardPortal, ot as MessageQuotedPreviewAttachments, p as InboxItemSender, pa as TextLink, pi as KbdGroup, pn as MessageItemInlineStatus, pt as MessageQuotedPreviewHeader, q as dragInstructions, qr as DropdownMenuCheckboxItem, qt as MessageReactionPickerStatic, r as InboxItemBody, ra as DialogHeader, ri as DropdownMenuPortal, rn as MessageItemBadgeSeparator, rr as PreviewCardHeader, rt as MessageList, s as InboxItemHoverTarget, si as DropdownMenuSeparator, sn as MessageItemToolbarButton, sr as PreviewCardSeparator, st as MessageQuotedPreviewAuthor, t as InboxItem, ta as DialogFooter, tn as MessageReactionTooltipSeparator, tt as MessageListHistoryLimited, u as InboxItemMessage, ua as DialogTrigger, ui as DropdownMenuSubmenuTrigger, ut as MessageQuotedPreviewAuthorName, v as InboxItemTrigger, va as buttonVariants, vi as PanelScrollContent, vn as MessageItemSenderGroup, vt as MessageQuotedPreviewUnavailable, wa as useThemeScopeProps, wi as ScrollAreaScrollbar, wn as MessageItemEmbedded, wr as PopoverBackdrop, wt as MessageTextSelectionToolbar, x as Skeleton, xi as ScrollArea, xn as MessageItemBody, xr as Popover, xt as MessageEmbedFooter, ya as Spinner, yi as PanelScrollViewport, yn as MessageItemTime, yt as MessageEmbed, zi as ListRowTop, zn as RadioGroupIndicator, zt as MessageReferenceUnavailable } from "./inbox-item-
|
|
2
|
+
import { $ as MessageListDateDivider, $i as DialogContent, $n as PreviewCardContent, $r as DropdownMenuItemLabel, $t as MessageReactionTooltipNameText, Aa as controlIconInset, Ai as ListRow, An as MessageItem, Ar as PopoverPopup, At as MessageMultiSelectToolbarActions, B as useDragSiblingTransition, Bi as ListRowValue, Bn as RadioGroupItem, Bt as inlineChip, C as DropPlaceholder, Ca as withOverlayLayer, Ci as ScrollAreaCorner, Cn as MessageItemEdited, Cr as PopoverArrow, Ct as messageEmbed, Da as tv, Di as Checkbox, Dn as MessageItemAvatarSlot, Dr as PopoverContent, Dt as MessageMultiSelect, Ea as ThemeStateContext, Ei as ScrollAreaViewport, En as MessageItemSearchMatch, Er as PopoverClose, Et as MessageTextSelectionToolbarSeparator, Fi as ListRowGroup, Fn as AvatarGroup, Fr as PopoverViewport, Ft as MessageReferencePending, G as SILENT_DRAG_ANNOUNCEMENTS, Gi as TooltipTrigger, Gr as MobileNavRoot, Gt as MessageReactionGlyph, Hi as TooltipContent, Hn as InputGroupAddon, Ht as MessageReactionChip, I as DragLift, Ii as ListRowIcon, In as AvatarGroupCount, It as MessageReferenceReadMark, Jr as DropdownMenuCheckboxItemIndicator, Jt as MessageReactionQuickButton, K as createDragAnnouncements, Ki as Badge, Kr as DropdownMenu, Kt as MessageReactionPickerContent, Li as ListRowMeta, Ln as AvatarImage, Lt as MessageReferenceSuffix, Ma as headEdges, Mi as ListRowBottom, Mn as Avatar, Mr as PopoverSeparator, Na as decisionWidth, Ni as ListRowChevron, Nn as AvatarBadge, Nr as PopoverTitle, Nt as MessageReferenceIndicator, Oa as stackedActions, Oi as CheckboxIndicator, On as MessageItemContinuationTime, Or as PopoverDescription, Ot as MessageMultiSelectCheckbox, Pi as ListRowDescription, Pn as AvatarFallback, Pr as PopoverTrigger, Pt as MessageReferenceLabel, Qi as DialogClose, Qr as DropdownMenuItemCount, Qt as MessageReactionTooltipName, Ri as ListRowTitle, Rn as RadioGroup, Rt as MessageReferenceText, Sa as useParentOverlayKind, Si as ScrollAreaContent, Sn as MessageItemContent, St as MessageEmbedHeader, Ta as useTheme, Ti as ScrollAreaThumb, Tn as MessageItemFooter, Tt as MessageTextSelectionToolbarButton, U as drag, Ui as TooltipPortal, Un as InputGroupInput, Ur as MobileNavItem, Ut as MessageReactionCount, V as useLiftContainer, Vi as Tooltip, Vn as InputGroup, Vt as MessageReactionAddButton, Wi as TooltipProvider, Wn as useOverflowTitle, Wr as MobileNavLabel, Wt as MessageReactionErrorIndicator, Xi as Dialog, Xr as DropdownMenuFooter, Xt as MessageReactionTooltipContent, Yi as useMobileViewport, Yn as PreviewCard, Yr as DropdownMenuContent, Yt as MessageReactionQuickRow, Zi as DialogBody, Zn as PreviewCardArrow, Zr as DropdownMenuItem, Zt as MessageReactionTooltipMeta, _ as InboxItemTrailing, _a as Button, _i as PanelHeaderRoot, _n as MessageItemSenderButton, _t as MessageQuotedPreviewTimestamp, a as InboxItemContext, aa as DialogOverlay, ai as DropdownMenuRadioItem, an as MessageItemSavedIndicator, ar as PreviewCardPopup, at as MessageQuotedPreviewAttachment, b as useLatestRef, ba as defaultNativeButton, bi as PanelSection, bn as MessageItemAttachments, bt as MessageEmbedContent, c as InboxItemLeading, ca as DialogSurface, ci as DropdownMenuShortcut, cr as PreviewCardTitle, d as InboxItemMetadata, da as PanelAction, di as DropdownMenuTrigger, dt as MessageQuotedPreviewChannel, ea as DialogDescription, ei as DropdownMenuLabel, en as MessageReactionTooltipNames, er as PreviewCardDescription, et as MessageListEndFade, f as InboxItemSelection, fa as panelToggleAction, fi as Kbd, fn as MessageItemHeader, ft as MessageQuotedPreviewContent, g as InboxItemTitle, ga as DialogSheetReset, gi as PanelFooter, gn as MessageItemSenderBadges, gt as MessageQuotedPreviewThread, h as InboxItemTimestamp, ha as textLinkVariants, hi as PanelBody, hn as MessageItemSender, ht as MessageQuotedPreviewText, i as InboxItemContent, ia as DialogNav, ii as DropdownMenuRadioGroup, in as MessageItemReadReceipt, it as MessageQuotedPreview, ja as headEdgePull, ji as ListRowBody, jn as searchHit, jr as PopoverPortal, jt as MessageReferenceChip, k as useDragSensors, ka as useStackedActions, ki as PRESENCE_COLOR, kn as MessageItemGutter, kr as PopoverHeader, kt as MessageMultiSelectToolbar, l as InboxItemMarks, la as DialogTitle, li as DropdownMenuSubmenu, lr as PreviewCardTrigger, lt as MessageQuotedPreviewAuthorMeta, m as InboxItemSubtitle, ma as TextLinkExternalIcon, mi as Panel, mn as MessageItemMeta, mt as MessageQuotedPreviewLoading, n as InboxItemActions, ni as DropdownMenuPopup, nn as MessageItemBadge, nt as MessageListNotice, o as InboxItemHeading, oa as DialogPortal, oi as DropdownMenuRadioItemIndicator, on as MessageItemToolbar, or as PreviewCardPortal, ot as MessageQuotedPreviewAttachments, p as InboxItemSender, pa as TextLink, pi as KbdGroup, pn as MessageItemInlineStatus, pt as MessageQuotedPreviewHeader, q as dragInstructions, qr as DropdownMenuCheckboxItem, qt as MessageReactionPickerStatic, r as InboxItemBody, ra as DialogHeader, ri as DropdownMenuPortal, rn as MessageItemBadgeSeparator, rr as PreviewCardHeader, rt as MessageList, s as InboxItemHoverTarget, si as DropdownMenuSeparator, sn as MessageItemToolbarButton, sr as PreviewCardSeparator, st as MessageQuotedPreviewAuthor, t as InboxItem, ta as DialogFooter, tn as MessageReactionTooltipSeparator, tt as MessageListHistoryLimited, u as InboxItemMessage, ua as DialogTrigger, ui as DropdownMenuSubmenuTrigger, ut as MessageQuotedPreviewAuthorName, v as InboxItemTrigger, va as buttonVariants, vi as PanelScrollContent, vn as MessageItemSenderGroup, vt as MessageQuotedPreviewUnavailable, wa as useThemeScopeProps, wi as ScrollAreaScrollbar, wn as MessageItemEmbedded, wr as PopoverBackdrop, wt as MessageTextSelectionToolbar, x as Skeleton, xi as ScrollArea, xn as MessageItemBody, xr as Popover, xt as MessageEmbedFooter, ya as Spinner, yi as PanelScrollViewport, yn as MessageItemTime, yt as MessageEmbed, zi as ListRowTop, zn as RadioGroupIndicator, zt as MessageReferenceUnavailable } from "./inbox-item-D7xLTDjD.mjs";
|
|
3
3
|
import { Dialog as Dialog$1 } from "@base-ui/react/dialog";
|
|
4
4
|
import { AlertTriangle, Bell, Check, CheckCircle2, ChevronDown, ChevronLeft, ChevronRight, CircleCheck, Copy, FileText, Image, Info, TriangleAlert, Upload, X, Zap } from "lucide-react";
|
|
5
5
|
import { Children, cloneElement, createContext, createElement, isValidElement, use, useCallback, useContext, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
@@ -2703,7 +2703,7 @@ const lightbox = tv({ slots: {
|
|
|
2703
2703
|
],
|
|
2704
2704
|
thumbnailOverlay: [
|
|
2705
2705
|
"pointer-events-none absolute inset-0 block transition-colors duration-150",
|
|
2706
|
-
"bg-
|
|
2706
|
+
"bg-layer-backdrop-nested group-hover/lightbox-thumb:bg-layer-backdrop-nested/70",
|
|
2707
2707
|
"group-data-active/lightbox-thumb:bg-transparent"
|
|
2708
2708
|
],
|
|
2709
2709
|
close: ["pointer-events-auto"]
|
|
@@ -5964,14 +5964,14 @@ const messageImageGallery = tv({
|
|
|
5964
5964
|
slots: {
|
|
5965
5965
|
root: ["@container/gallery w-full max-w-[min(360px,100%)] stack-y-1"],
|
|
5966
5966
|
row: ["grid", "gap-1"],
|
|
5967
|
-
item: [
|
|
5968
|
-
"group/img relative overflow-hidden text-left",
|
|
5969
|
-
"rounded-control border border-line-hairline bg-fill-muted",
|
|
5970
|
-
"has-data-[slot=message-image-gallery-overlay]:opacity-70"
|
|
5971
|
-
],
|
|
5967
|
+
item: ["group/img relative overflow-hidden text-left", "rounded-control border border-line-hairline bg-fill-muted"],
|
|
5972
5968
|
media: "block size-full ",
|
|
5973
|
-
overlay: "absolute inset-0 flex items-center justify-center",
|
|
5974
|
-
preview: [
|
|
5969
|
+
overlay: "absolute inset-0 flex items-center justify-center bg-layer-veil",
|
|
5970
|
+
preview: [
|
|
5971
|
+
"absolute inset-0",
|
|
5972
|
+
"transition-colors duration-75 hover:bg-ink-8",
|
|
5973
|
+
"outline-none focus-visible:keyboard:inset-ring-2 focus-visible:keyboard:inset-ring-foreground"
|
|
5974
|
+
],
|
|
5975
5975
|
action: [
|
|
5976
5976
|
"absolute z-10 hidden items-center justify-center",
|
|
5977
5977
|
"focus:flex",
|
|
@@ -6317,12 +6317,7 @@ const messageForwardedBundle = tv({
|
|
|
6317
6317
|
},
|
|
6318
6318
|
variants: {
|
|
6319
6319
|
fullWidth: { true: { root: "w-full max-w-none" } },
|
|
6320
|
-
collapsed: { true: { items: [
|
|
6321
|
-
"max-h-40 overflow-clip",
|
|
6322
|
-
"after:pointer-events-none after:absolute after:inset-x-0 after:bottom-0 after:h-10 after:bg-linear-to-t",
|
|
6323
|
-
"data-[tight-fold]:after:h-5",
|
|
6324
|
-
"after:from-layer-card after:via-layer-card/80 after:to-layer-card/0"
|
|
6325
|
-
] } }
|
|
6320
|
+
collapsed: { true: { items: ["max-h-40 overflow-clip", "mask-fade-b data-tight-fold:mask-fade-b-edge"] } }
|
|
6326
6321
|
}
|
|
6327
6322
|
});
|
|
6328
6323
|
const messageForwardedBundleItem = tv({
|
|
@@ -8267,7 +8262,7 @@ const composerAttachment = tv({
|
|
|
8267
8262
|
attachmentUploadingOverlay: [
|
|
8268
8263
|
"absolute inset-0 z-10 flex flex-col items-center justify-center px-1",
|
|
8269
8264
|
"text-center",
|
|
8270
|
-
"rounded-control bg-layer-
|
|
8265
|
+
"rounded-control bg-layer-veil",
|
|
8271
8266
|
"font-mono text-mono-meta font-bold text-foreground"
|
|
8272
8267
|
],
|
|
8273
8268
|
attachmentUploadProgressBar: [
|
|
@@ -8280,7 +8275,7 @@ const composerAttachment = tv({
|
|
|
8280
8275
|
"absolute inset-0 z-10 flex flex-col items-center justify-center px-1",
|
|
8281
8276
|
"[border-width:var(--ca-overlay-border,2px)]",
|
|
8282
8277
|
"text-center",
|
|
8283
|
-
"rounded-control border-danger-strong bg-layer-
|
|
8278
|
+
"rounded-control border-danger-strong bg-layer-veil",
|
|
8284
8279
|
"font-sans text-caption font-semibold text-danger-strong"
|
|
8285
8280
|
],
|
|
8286
8281
|
attachmentRemove: [
|
|
@@ -10431,9 +10426,7 @@ const tabs = tv({
|
|
|
10431
10426
|
"relative isolate flex w-max max-w-full",
|
|
10432
10427
|
"overscroll-contain whitespace-nowrap",
|
|
10433
10428
|
"scrollbar-none [&::-webkit-scrollbar]:hidden",
|
|
10434
|
-
"
|
|
10435
|
-
"data-[overflow=start]:mask-[linear-gradient(to_right,transparent,black_32px)]",
|
|
10436
|
-
"data-[overflow=both]:mask-[linear-gradient(to_right,transparent,black_32px,black_calc(100%-32px),transparent)]"
|
|
10429
|
+
"mask-fade-x"
|
|
10437
10430
|
],
|
|
10438
10431
|
background: ["", "hidden"],
|
|
10439
10432
|
tab: [
|
|
@@ -12116,7 +12109,7 @@ const taskStatusStrong = tv({ variants: { status: {
|
|
|
12116
12109
|
const taskCardStatus = tv({ base: [
|
|
12117
12110
|
"inline-flex min-w-0 shrink-0 touch-manipulation items-center",
|
|
12118
12111
|
"transition-[filter,opacity] duration-100 outline-none",
|
|
12119
|
-
"data-[busy=true]:pointer-events-none data-[busy=true]:cursor-wait data-[busy=true]:opacity-
|
|
12112
|
+
"data-[busy=true]:pointer-events-none data-[busy=true]:cursor-wait data-[busy=true]:opacity-dimmed data-[busy=true]:disabled:opacity-100",
|
|
12120
12113
|
"h-[22px] gap-1.5 rounded-chip border-0 px-[7px] py-0",
|
|
12121
12114
|
"font-sans text-[12px] leading-4 font-semibold text-foreground",
|
|
12122
12115
|
"[&:not(:has([data-slot=task-card-status-label]))]:hidden",
|
|
@@ -15298,7 +15291,7 @@ function TaskChip({ status, loading = false, variant = "default", size = "defaul
|
|
|
15298
15291
|
"data-slot": "task-chip",
|
|
15299
15292
|
"data-inline-reference": "",
|
|
15300
15293
|
"data-loading": loading ? "true" : void 0,
|
|
15301
|
-
className: cn(root({ className }), loading && "pointer-events-none opacity-
|
|
15294
|
+
className: cn(root({ className }), loading && "pointer-events-none opacity-dimmed"),
|
|
15302
15295
|
children
|
|
15303
15296
|
};
|
|
15304
15297
|
return useRender({
|
package/dist/styles.css
CHANGED
|
@@ -191,6 +191,7 @@
|
|
|
191
191
|
--color-layer-popover: var(--layer-popover);
|
|
192
192
|
--color-layer-backdrop: var(--layer-backdrop);
|
|
193
193
|
--color-layer-backdrop-nested: var(--layer-backdrop-nested);
|
|
194
|
+
--color-layer-veil: var(--layer-veil);
|
|
194
195
|
--color-layer-card: var(--layer-card);
|
|
195
196
|
--color-layer-hud: var(--layer-hud);
|
|
196
197
|
--color-foreground-on-hud: var(--foreground-on-hud);
|
|
@@ -663,6 +664,56 @@ textarea:-webkit-autofill:disabled {
|
|
|
663
664
|
}
|
|
664
665
|
}
|
|
665
666
|
|
|
667
|
+
/* Dimmed: something present but not active, deleted, offline or still
|
|
668
|
+
pending, at 60% (design/foundations/states.md#dimmed). Lighter than the 40%
|
|
669
|
+
of a drag origin, which says "it was here", not "it is here, inactive". */
|
|
670
|
+
@utility opacity-dimmed {
|
|
671
|
+
opacity: var(--opacity-dimmed);
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
/* Content fades (design/foundations/spacing.md#edges-fade): a mask, never a
|
|
675
|
+
colour gradient, so whatever is behind the content (a row's hover or
|
|
676
|
+
located fill, a card, a tint) shows through the fade unchanged.
|
|
677
|
+
mask-fade-t / mask-fade-b fade the top or bottom edge over fade-content
|
|
678
|
+
(48px), where content is cut: a fold, a glimpse. mask-fade-x fades the
|
|
679
|
+
sides of a strip that scrolls sideways over fade-edge (24px), on the side
|
|
680
|
+
its data-overflow names (start, end or both) and nowhere without it.
|
|
681
|
+
mask-fade-t-edge / mask-fade-b-edge take the edge length instead, for a
|
|
682
|
+
fold too short to give 48px to the fade. */
|
|
683
|
+
@utility mask-fade-t {
|
|
684
|
+
mask-image: linear-gradient(to bottom, transparent, oklch(0 0 0) var(--fade-content));
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
@utility mask-fade-t-edge {
|
|
688
|
+
mask-image: linear-gradient(to bottom, transparent, oklch(0 0 0) var(--fade-edge));
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
@utility mask-fade-b {
|
|
692
|
+
mask-image: linear-gradient(to top, transparent, oklch(0 0 0) var(--fade-content));
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
@utility mask-fade-b-edge {
|
|
696
|
+
mask-image: linear-gradient(to top, transparent, oklch(0 0 0) var(--fade-edge));
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
@utility mask-fade-x {
|
|
700
|
+
&[data-overflow="start"] {
|
|
701
|
+
mask-image: linear-gradient(to right, transparent, oklch(0 0 0) var(--fade-edge));
|
|
702
|
+
}
|
|
703
|
+
&[data-overflow="end"] {
|
|
704
|
+
mask-image: linear-gradient(to left, transparent, oklch(0 0 0) var(--fade-edge));
|
|
705
|
+
}
|
|
706
|
+
&[data-overflow="both"] {
|
|
707
|
+
mask-image: linear-gradient(
|
|
708
|
+
to right,
|
|
709
|
+
transparent,
|
|
710
|
+
oklch(0 0 0) var(--fade-edge),
|
|
711
|
+
oklch(0 0 0) calc(100% - var(--fade-edge)),
|
|
712
|
+
transparent
|
|
713
|
+
);
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
|
|
666
717
|
/* Drag and drop (design/patterns/drag-and-drop.md). While something is
|
|
667
718
|
lifted, DragLift sets data-dragging on the root, and DragRefusalHint sets
|
|
668
719
|
data-drag-refused while the place under the hand refuses it: the cursor
|
package/dist/tokens.json
CHANGED
|
@@ -1377,6 +1377,25 @@
|
|
|
1377
1377
|
}
|
|
1378
1378
|
}
|
|
1379
1379
|
},
|
|
1380
|
+
"veil": {
|
|
1381
|
+
"$value": {
|
|
1382
|
+
"colorSpace": "oklch",
|
|
1383
|
+
"components": [1, 0, 0],
|
|
1384
|
+
"alpha": 0.8
|
|
1385
|
+
},
|
|
1386
|
+
"$description": "The cover over something busy or loading in place: an image uploading or that failed, a preview being prepared. The page at 80%, so what is under it shows through, dimmed, and a default-colour Spinner on it reads in both modes. Translucent by contract, like the two backdrops.",
|
|
1387
|
+
"$extensions": {
|
|
1388
|
+
"build.botiverse.raft": {
|
|
1389
|
+
"modes": {
|
|
1390
|
+
"dark": {
|
|
1391
|
+
"colorSpace": "oklch",
|
|
1392
|
+
"components": [0.2213, 0.0038, 106.71],
|
|
1393
|
+
"alpha": 0.8
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
}
|
|
1398
|
+
},
|
|
1380
1399
|
"card": {
|
|
1381
1400
|
"$value": {
|
|
1382
1401
|
"colorSpace": "oklch",
|
|
@@ -2530,6 +2549,27 @@
|
|
|
2530
2549
|
}
|
|
2531
2550
|
}
|
|
2532
2551
|
},
|
|
2552
|
+
"fade": {
|
|
2553
|
+
"$type": "dimension",
|
|
2554
|
+
"edge": {
|
|
2555
|
+
"$value": { "value": 24, "unit": "px" },
|
|
2556
|
+
"$description": "The fade at the edge of a strip that scrolls sideways (mask-fade-x): long enough to say more is there, short enough to leave the item under it readable.",
|
|
2557
|
+
"$extensions": { "build.botiverse.raft": { "scope": "root" } }
|
|
2558
|
+
},
|
|
2559
|
+
"content": {
|
|
2560
|
+
"$value": { "value": 48, "unit": "px" },
|
|
2561
|
+
"$description": "The fade where content is cut (mask-fade-t, mask-fade-b): a long message folded, a glimpse of hidden history. About two lines, so the cut reads as a fold, not a clipped line.",
|
|
2562
|
+
"$extensions": { "build.botiverse.raft": { "scope": "root" } }
|
|
2563
|
+
}
|
|
2564
|
+
},
|
|
2565
|
+
"opacity": {
|
|
2566
|
+
"$type": "number",
|
|
2567
|
+
"dimmed": {
|
|
2568
|
+
"$value": 0.6,
|
|
2569
|
+
"$description": "Something present but not active: deleted, offline or still pending (opacity-dimmed). The place a dragged item came from keeps its own 0.4 (data-drag-origin).",
|
|
2570
|
+
"$extensions": { "build.botiverse.raft": { "scope": "root" } }
|
|
2571
|
+
}
|
|
2572
|
+
},
|
|
2533
2573
|
"motion": {
|
|
2534
2574
|
"drag-settle-duration": {
|
|
2535
2575
|
"$type": "duration",
|
package/dist/wip.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cn } from "./cn.mjs";
|
|
2
|
-
import { $i as DialogContent, A as DRAG_AUTO_SCROLL_ZONE_PX, Ai as ListRow, B as useDragSiblingTransition, Bn as RadioGroupItem, Br as TOUCH_DRAG_TOLERANCE_PX, C as DropPlaceholder, D as listKeyboardCoordinates, Da as tv, Di as Checkbox, E as MOUSE_DRAG_DISTANCE_PX, F as DROP_GLIDE, G as SILENT_DRAG_ANNOUNCEMENTS, Gi as TooltipTrigger, Gn as measureContent, H as LIFT_CLASS, Hi as TooltipContent, Hn as InputGroupAddon, Hr as useMouseOnlyPointerSensor, I as DragLift, Ir as HoldThenMoveTouchSensor, It as MessageReferenceReadMark, J as dragMessages, Ji as DialogSheetContent, Jn as readNow, K as createDragAnnouncements, Kn as measureElement, L as ORIGIN_OPACITY, Li as ListRowMeta, Lr as MouseOnlyPointerSensor, M as DRAG_LIFT_Z_INDEX, Mi as ListRowBottom, Mt as MessageReferenceIcon, N as DRAG_SETTLE, O as useDragAcrossLists, P as DRAG_SIBLING_TRANSITION, Pi as ListRowDescription, Q as MessageListJumpPillGroup, Qi as DialogClose, Qn as PreviewCardBody, R as cancelDrag, Ri as ListRowTitle, Rn as RadioGroup, Rr as TOUCH_DRAG_DISTANCE_PX, S as DragRefusalHint, Sa as useParentOverlayKind, Sr as PopoverActions, T as DragRemeasure, Ta as useTheme, Tr as PopoverBody, Un as InputGroupInput, Vi as Tooltip, Vn as InputGroup, Vr as useHoldThenMoveTouchSensor, W as DEFAULT_DRAG_MESSAGES, Wn as useOverflowTitle, X as MessageListJumpPill, Xi as Dialog, Xn as PreviewCardActions, Y as MessageListJumpControls, Z as MessageListJumpPillDismiss, _ as InboxItemTrailing, _a as Button$1, _r as MobileNavServerPopoverRow, a as InboxItemContext, b as useLatestRef, ba as defaultNativeButton, br as MobileNavServerPopoverRowLabel, c as InboxItemLeading, cn as MessageItemDelegatedAvatar, ct as MessageQuotedPreviewAuthorDelegatedBy, dn as MessageItemDelegatedByName, dr as MobileNavServerPopover, fr as MobileNavServerPopoverContent, g as InboxItemTitle, gr as MobileNavServerPopoverList, h as InboxItemTimestamp, hr as MobileNavServerPopoverGroup, i as InboxItemContent, ir as PreviewCardMeta, j as DRAG_KEYBOARD_OFFSET_PX, ji as ListRowBody, k as useDragSensors, la as DialogTitle, ln as MessageItemDelegatedBy, mr as MobileNavServerPopoverDestinations, na as DialogFooterNote, nr as PreviewCardFooter, o as InboxItemHeading, pa as TextLink, pr as MobileNavServerPopoverDestination, q as dragInstructions, qi as DialogCommit, qn as observeTruncation, r as InboxItemBody, sa as DialogSheetBack, t as InboxItem, ti as DropdownMenuLinkItem, tr as PreviewCardEyebrow, ua as DialogTrigger, un as MessageItemDelegatedByButton, ur as MobileNavServerItem, vr as MobileNavServerPopoverRowBody, w as DRAG_KEYBOARD_CODES, wa as useThemeScopeProps, x as Skeleton, xa as OverlayLayerProvider, y as inboxItem, ya as Spinner, yr as MobileNavServerPopoverRowDescription, z as keepGrabInside, zi as ListRowTop, zr as TOUCH_DRAG_HOLD_MS } from "./inbox-item-
|
|
2
|
+
import { $i as DialogContent, A as DRAG_AUTO_SCROLL_ZONE_PX, Ai as ListRow, B as useDragSiblingTransition, Bn as RadioGroupItem, Br as TOUCH_DRAG_TOLERANCE_PX, C as DropPlaceholder, D as listKeyboardCoordinates, Da as tv, Di as Checkbox, E as MOUSE_DRAG_DISTANCE_PX, F as DROP_GLIDE, G as SILENT_DRAG_ANNOUNCEMENTS, Gi as TooltipTrigger, Gn as measureContent, H as LIFT_CLASS, Hi as TooltipContent, Hn as InputGroupAddon, Hr as useMouseOnlyPointerSensor, I as DragLift, Ir as HoldThenMoveTouchSensor, It as MessageReferenceReadMark, J as dragMessages, Ji as DialogSheetContent, Jn as readNow, K as createDragAnnouncements, Kn as measureElement, L as ORIGIN_OPACITY, Li as ListRowMeta, Lr as MouseOnlyPointerSensor, M as DRAG_LIFT_Z_INDEX, Mi as ListRowBottom, Mt as MessageReferenceIcon, N as DRAG_SETTLE, O as useDragAcrossLists, P as DRAG_SIBLING_TRANSITION, Pi as ListRowDescription, Q as MessageListJumpPillGroup, Qi as DialogClose, Qn as PreviewCardBody, R as cancelDrag, Ri as ListRowTitle, Rn as RadioGroup, Rr as TOUCH_DRAG_DISTANCE_PX, S as DragRefusalHint, Sa as useParentOverlayKind, Sr as PopoverActions, T as DragRemeasure, Ta as useTheme, Tr as PopoverBody, Un as InputGroupInput, Vi as Tooltip, Vn as InputGroup, Vr as useHoldThenMoveTouchSensor, W as DEFAULT_DRAG_MESSAGES, Wn as useOverflowTitle, X as MessageListJumpPill, Xi as Dialog, Xn as PreviewCardActions, Y as MessageListJumpControls, Z as MessageListJumpPillDismiss, _ as InboxItemTrailing, _a as Button$1, _r as MobileNavServerPopoverRow, a as InboxItemContext, b as useLatestRef, ba as defaultNativeButton, br as MobileNavServerPopoverRowLabel, c as InboxItemLeading, cn as MessageItemDelegatedAvatar, ct as MessageQuotedPreviewAuthorDelegatedBy, dn as MessageItemDelegatedByName, dr as MobileNavServerPopover, fr as MobileNavServerPopoverContent, g as InboxItemTitle, gr as MobileNavServerPopoverList, h as InboxItemTimestamp, hr as MobileNavServerPopoverGroup, i as InboxItemContent, ir as PreviewCardMeta, j as DRAG_KEYBOARD_OFFSET_PX, ji as ListRowBody, k as useDragSensors, la as DialogTitle, ln as MessageItemDelegatedBy, mr as MobileNavServerPopoverDestinations, na as DialogFooterNote, nr as PreviewCardFooter, o as InboxItemHeading, pa as TextLink, pr as MobileNavServerPopoverDestination, q as dragInstructions, qi as DialogCommit, qn as observeTruncation, r as InboxItemBody, sa as DialogSheetBack, t as InboxItem, ti as DropdownMenuLinkItem, tr as PreviewCardEyebrow, ua as DialogTrigger, un as MessageItemDelegatedByButton, ur as MobileNavServerItem, vr as MobileNavServerPopoverRowBody, w as DRAG_KEYBOARD_CODES, wa as useThemeScopeProps, x as Skeleton, xa as OverlayLayerProvider, y as inboxItem, ya as Spinner, yr as MobileNavServerPopoverRowDescription, z as keepGrabInside, zi as ListRowTop, zr as TOUCH_DRAG_HOLD_MS } from "./inbox-item-D7xLTDjD.mjs";
|
|
3
3
|
import { Check, ChevronDown, LoaderCircle, Plus, Search, X } from "lucide-react";
|
|
4
4
|
import { createContext, use, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
5
5
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|