@cellarnode/ui 0.177.4 → 0.178.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat/messenger-screen/messenger-screen.d.ts.map +1 -1
- package/dist/chat/messenger-screen/messenger-screen.js +11 -2
- package/dist/chat/messenger-screen/messenger-screen.js.map +1 -1
- package/dist/components/supporting-pane-layout.d.ts +162 -0
- package/dist/components/supporting-pane-layout.d.ts.map +1 -0
- package/dist/components/supporting-pane-layout.js +447 -0
- package/dist/components/supporting-pane-layout.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/offer/index.d.ts +5 -0
- package/dist/offer/index.d.ts.map +1 -1
- package/dist/offer/index.js +2 -0
- package/dist/offer/index.js.map +1 -1
- package/dist/offer/negotiation-labels.d.ts +8 -0
- package/dist/offer/negotiation-labels.d.ts.map +1 -1
- package/dist/offer/negotiation-labels.js +8 -1
- package/dist/offer/negotiation-labels.js.map +1 -1
- package/dist/offer/negotiation-section.d.ts +7 -1
- package/dist/offer/negotiation-section.d.ts.map +1 -1
- package/dist/offer/negotiation-section.js +2 -2
- package/dist/offer/negotiation-section.js.map +1 -1
- package/dist/offer/offer-branch-fixtures.d.ts +16 -0
- package/dist/offer/offer-branch-fixtures.d.ts.map +1 -0
- package/dist/offer/offer-branch-fixtures.js +81 -0
- package/dist/offer/offer-branch-fixtures.js.map +1 -0
- package/dist/offer/offer-branch-list.d.ts +34 -0
- package/dist/offer/offer-branch-list.d.ts.map +1 -0
- package/dist/offer/offer-branch-list.js +43 -0
- package/dist/offer/offer-branch-list.js.map +1 -0
- package/dist/offer/offer-branch-shared.d.ts +55 -0
- package/dist/offer/offer-branch-shared.d.ts.map +1 -0
- package/dist/offer/offer-branch-shared.js +88 -0
- package/dist/offer/offer-branch-shared.js.map +1 -0
- package/dist/offer/offer-branch-switcher.d.ts +43 -0
- package/dist/offer/offer-branch-switcher.d.ts.map +1 -0
- package/dist/offer/offer-branch-switcher.js +48 -0
- package/dist/offer/offer-branch-switcher.js.map +1 -0
- package/dist/offer/offer-page.d.ts.map +1 -1
- package/dist/offer/offer-page.js +12 -2
- package/dist/offer/offer-page.js.map +1 -1
- package/dist/offer/round-diff-banner.d.ts +6 -1
- package/dist/offer/round-diff-banner.d.ts.map +1 -1
- package/dist/offer/round-diff-banner.js +2 -2
- package/dist/offer/round-diff-banner.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messenger-screen.d.ts","sourceRoot":"","sources":["../../../src/chat/messenger-screen/messenger-screen.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAiB,oBAAoB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"messenger-screen.d.ts","sourceRoot":"","sources":["../../../src/chat/messenger-screen/messenger-screen.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAiB,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA+DtE,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CA6O1D"}
|
|
@@ -19,8 +19,17 @@ import { unreadStore } from "../unread-store.js";
|
|
|
19
19
|
import { getActiveChatRoom, setActiveChatRoom } from "./active-room-store.js";
|
|
20
20
|
import { getInitials, getRoomPresence } from "./message-adapters.js";
|
|
21
21
|
import { MessengerRoomPanel } from "./room-panel.js";
|
|
22
|
-
/**
|
|
23
|
-
|
|
22
|
+
/**
|
|
23
|
+
* Terminal offer statuses that lock the composer (both twins' shared rule).
|
|
24
|
+
*
|
|
25
|
+
* CEL-2153/2152 (decision Q7, 2026-09-30): `accepted` is deliberately NOT
|
|
26
|
+
* terminal here — a mutually accepted deal keeps its conversation writable
|
|
27
|
+
* until a party archives it ("they can keep talking in the portal until one
|
|
28
|
+
* of them removes the offer"). Same for the one-sided
|
|
29
|
+
* `awaiting_counterparty_acceptance` state. Only statuses that END the deal
|
|
30
|
+
* without agreement lock the composer.
|
|
31
|
+
*/
|
|
32
|
+
const TERMINAL_OFFER_STATUSES = new Set(["rejected", "discarded", "archived"]);
|
|
24
33
|
/**
|
|
25
34
|
* Default roster query key — the key both dashboards already share with
|
|
26
35
|
* their notification bridges + `useDashboardMessages` hooks, so the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messenger-screen.js","sourceRoot":"","sources":["../../../src/chat/messenger-screen/messenger-screen.tsx"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,wEAAwE;AACxE,wEAAwE;AACxE,mEAAmE;AACnE,iCAAiC;AACjC,EAAE;AACF,gDAAgD;AAChD,wEAAwE;AACxE,yEAAyE;AACzE,wEAAwE;AACxE,kEAAkE;AAClE,wCAAwC;AAExC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD
|
|
1
|
+
{"version":3,"file":"messenger-screen.js","sourceRoot":"","sources":["../../../src/chat/messenger-screen/messenger-screen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type SupportingPaneMode = "split" | "sheet";
|
|
3
|
+
export interface SupportingPaneContextValue {
|
|
4
|
+
/** The consumer's open state. */
|
|
5
|
+
open: boolean;
|
|
6
|
+
/** `split` beside the document, or `sheet` as a full-height modal. */
|
|
7
|
+
mode: SupportingPaneMode;
|
|
8
|
+
/** Whether the pane is on screen right now (`open`; a closed pane stays mounted but hidden). */
|
|
9
|
+
visible: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Read the pane's mode and visibility from inside pane content.
|
|
13
|
+
*
|
|
14
|
+
* The pane is always mounted, so a chat inside it stays connected while the
|
|
15
|
+
* pane is closed. Consumers MUST gate side effects that mean "the user is
|
|
16
|
+
* looking at this", such as marking messages read, on `visible`. `visible` is
|
|
17
|
+
* false until the layout has measured its mode once, so a stored "open" never
|
|
18
|
+
* counts as on screen when the layout turns out to be a closed sheet.
|
|
19
|
+
*
|
|
20
|
+
* On first load the pane starts below the page header (it is sticky, offset by
|
|
21
|
+
* `stickyOffset`), so the newest messages and the composer may not be in view.
|
|
22
|
+
* A consumer should keep them reachable, for example by scrolling the chat to
|
|
23
|
+
* the newest message once `visible` and by not relying on the pane being fully
|
|
24
|
+
* on screen at load.
|
|
25
|
+
*/
|
|
26
|
+
export declare function useSupportingPane(): SupportingPaneContextValue;
|
|
27
|
+
export interface UseSupportingPaneStateOptions {
|
|
28
|
+
/** localStorage key. Omit to disable persistence. Re-read when it changes. */
|
|
29
|
+
storageKey?: string;
|
|
30
|
+
/** Viewport width (px) at or above which the pane starts open in split mode. Default 1280. */
|
|
31
|
+
defaultOpenMinWidth?: number;
|
|
32
|
+
/** Overrides the width-based default. A stored value still wins. */
|
|
33
|
+
defaultOpen?: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface SupportingPaneToggleGetterProps {
|
|
36
|
+
open: boolean;
|
|
37
|
+
onToggle: () => void;
|
|
38
|
+
paneId: string;
|
|
39
|
+
ref: React.RefObject<HTMLButtonElement | null>;
|
|
40
|
+
}
|
|
41
|
+
export interface SupportingPaneLayoutGetterProps {
|
|
42
|
+
open: boolean;
|
|
43
|
+
onOpenChange: (open: boolean) => void;
|
|
44
|
+
paneId: string;
|
|
45
|
+
returnFocusRef: React.RefObject<HTMLElement | null>;
|
|
46
|
+
onModeChange: (mode: SupportingPaneMode) => void;
|
|
47
|
+
focusRequest: number;
|
|
48
|
+
}
|
|
49
|
+
export interface SupportingPaneState {
|
|
50
|
+
/** Effective open state: the sheet is never open on load, split follows the stored preference. */
|
|
51
|
+
open: boolean;
|
|
52
|
+
setOpen: (open: boolean) => void;
|
|
53
|
+
toggle: () => void;
|
|
54
|
+
/** Layout mode once the layout has measured itself; `undefined` before that. */
|
|
55
|
+
mode: SupportingPaneMode | undefined;
|
|
56
|
+
/** Spread onto `SupportingPaneToggle`. Wires `aria-controls`, `aria-expanded` and the focus-return ref. */
|
|
57
|
+
getToggleProps: () => SupportingPaneToggleGetterProps;
|
|
58
|
+
/** Spread onto `SupportingPaneLayout`. Wires the pane id, focus return, mode reporting and focus-on-open. */
|
|
59
|
+
getLayoutProps: () => SupportingPaneLayoutGetterProps;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Open state for a supporting pane.
|
|
63
|
+
*
|
|
64
|
+
* - The split-mode preference starts from a stored value, else `defaultOpen`,
|
|
65
|
+
* else the viewport width, and is persisted only when the user changes it
|
|
66
|
+
* while the layout is in split mode.
|
|
67
|
+
* - Sheet mode never starts open and never persists.
|
|
68
|
+
* - When the layout drops from split to sheet while open, the pane closes
|
|
69
|
+
* (a modal must not appear because a window was resized) and reopens when
|
|
70
|
+
* the layout is split again if the stored preference is open.
|
|
71
|
+
*
|
|
72
|
+
* Use the prop getters: they connect the pane id, `aria-controls`,
|
|
73
|
+
* `aria-expanded`, focus return, mode reporting and focus-on-open.
|
|
74
|
+
*/
|
|
75
|
+
export declare function useSupportingPaneState(options?: UseSupportingPaneStateOptions): SupportingPaneState;
|
|
76
|
+
export interface SupportingPaneLabels {
|
|
77
|
+
/** Accessible name for the pane close button. */
|
|
78
|
+
close: string;
|
|
79
|
+
}
|
|
80
|
+
type DataAttributes = Record<`data-${string}`, string | number | boolean | undefined>;
|
|
81
|
+
export interface SupportingPaneLayoutProps {
|
|
82
|
+
open: boolean;
|
|
83
|
+
onOpenChange: (open: boolean) => void;
|
|
84
|
+
/** Content of the pane (the conversation, for the offer page). Mounted once. */
|
|
85
|
+
pane: React.ReactNode;
|
|
86
|
+
/** Accessible name of the aside / dialog. Always applied via `aria-label`. */
|
|
87
|
+
paneLabel: string;
|
|
88
|
+
/** Visible header content beside the close button. Does not affect the accessible name. */
|
|
89
|
+
paneHeader?: React.ReactNode;
|
|
90
|
+
/**
|
|
91
|
+
* `"pane"` (default): the pane body scrolls, for simple content.
|
|
92
|
+
* `"content"`: the body is `overflow-hidden` and the child owns scrolling
|
|
93
|
+
* (a chat with its own message list and a pinned composer). The child should
|
|
94
|
+
* be `min-h-0 flex-1`.
|
|
95
|
+
*/
|
|
96
|
+
bodyScroll?: "pane" | "content";
|
|
97
|
+
/**
|
|
98
|
+
* CSS length for the sticky top edge, e.g. the height of a consumer's sticky
|
|
99
|
+
* bar. Sets `--supporting-pane-offset` on the layout root; consumers may set
|
|
100
|
+
* the variable themselves on the root (`className` or `style`; a value on an
|
|
101
|
+
* ancestor is overridden by the root default). Default `0px`.
|
|
102
|
+
*/
|
|
103
|
+
stickyOffset?: string;
|
|
104
|
+
/**
|
|
105
|
+
* CSS length kept free below the pane. Sets `--supporting-pane-bottom-inset`;
|
|
106
|
+
* consumers may set the variable themselves on the root. Default `1rem` plus the app
|
|
107
|
+
* shell gutter (`--app-shell-gutter`) when the shell exposes it, because the
|
|
108
|
+
* shell's padding also eats viewport height. Pane height is
|
|
109
|
+
* `100dvh - offset - bottom inset`.
|
|
110
|
+
*/
|
|
111
|
+
bottomInset?: string;
|
|
112
|
+
/**
|
|
113
|
+
* Minimum width, in rem, the document keeps beside the pane. The layout is a
|
|
114
|
+
* split only when its own width is at least this plus the 20rem pane
|
|
115
|
+
* minimum; otherwise it is a sheet. Default 40.
|
|
116
|
+
*/
|
|
117
|
+
minDocumentWidth?: number;
|
|
118
|
+
/** Reports the measured mode. `useSupportingPaneState().getLayoutProps()` wires this. */
|
|
119
|
+
onModeChange?: (mode: SupportingPaneMode) => void;
|
|
120
|
+
labels: SupportingPaneLabels;
|
|
121
|
+
/** Receives focus when the user closes the pane (close button, Escape, scrim). */
|
|
122
|
+
returnFocusRef?: React.RefObject<HTMLElement | null>;
|
|
123
|
+
/** Receives focus when the user opens the pane; defaults to the pane container. */
|
|
124
|
+
initialFocusRef?: React.RefObject<HTMLElement | null>;
|
|
125
|
+
/** Increment to move focus into the pane (a user-initiated open). The hook's getter drives it. */
|
|
126
|
+
focusRequest?: number;
|
|
127
|
+
/** Id for the pane, so a `SupportingPaneToggle` can point `aria-controls` at it. */
|
|
128
|
+
paneId?: string;
|
|
129
|
+
/** HTML and `data-*` attributes forwarded to the `<aside>`. `className` and `onKeyDown` are merged. */
|
|
130
|
+
paneProps?: Omit<React.HTMLAttributes<HTMLElement>, "children" | "id" | "role" | "aria-label" | "aria-modal"> & DataAttributes;
|
|
131
|
+
className?: string;
|
|
132
|
+
/** The primary document. Mounted once, in the same wrapper in every mode. */
|
|
133
|
+
children: React.ReactNode;
|
|
134
|
+
}
|
|
135
|
+
export declare function SupportingPaneLayout({ open, onOpenChange, pane, paneLabel, paneHeader, bodyScroll, stickyOffset, bottomInset, minDocumentWidth, onModeChange, labels, returnFocusRef, initialFocusRef, focusRequest, paneId, paneProps, className, children, }: SupportingPaneLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
136
|
+
export interface SupportingPaneToggleProps {
|
|
137
|
+
open: boolean;
|
|
138
|
+
onToggle: () => void;
|
|
139
|
+
/** Must match `paneId` passed to the layout. `getToggleProps()` supplies it. */
|
|
140
|
+
paneId: string;
|
|
141
|
+
/** Visible label, e.g. "Conversation". */
|
|
142
|
+
label: string;
|
|
143
|
+
/** Unread or item count. Announced as text, not only shown as a badge. */
|
|
144
|
+
count?: number;
|
|
145
|
+
/** Suffix for the count, e.g. "unread". Announced as "Conversation, 2 unread". */
|
|
146
|
+
countLabel?: string;
|
|
147
|
+
/** Show the count as visible text ("2 unread") instead of a bare badge. Default false. */
|
|
148
|
+
showCountLabel?: boolean;
|
|
149
|
+
icon?: React.ReactNode;
|
|
150
|
+
/** Matches the ui Button scale: `"sm"` (32px) sits level with small action-bar buttons. Default `"default"` (36px). */
|
|
151
|
+
size?: "sm" | "default";
|
|
152
|
+
/**
|
|
153
|
+
* Icon-only for narrow widths: the label becomes screen-reader text and the
|
|
154
|
+
* count badge stays. Needs `icon`; without one the label stays visible.
|
|
155
|
+
*/
|
|
156
|
+
compact?: boolean;
|
|
157
|
+
className?: string;
|
|
158
|
+
ref?: React.Ref<HTMLButtonElement>;
|
|
159
|
+
}
|
|
160
|
+
export declare function SupportingPaneToggle({ open, onToggle, paneId, label, count, countLabel, showCountLabel, icon, size, compact, className, ref, }: SupportingPaneToggleProps): import("react/jsx-runtime").JSX.Element;
|
|
161
|
+
export {};
|
|
162
|
+
//# sourceMappingURL=supporting-pane-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supporting-pane-layout.d.ts","sourceRoot":"","sources":["../../src/components/supporting-pane-layout.tsx"],"names":[],"mappings":"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"}
|