@crewlethq/ui 0.94.0 → 0.96.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.
@@ -1,5 +1,5 @@
1
- export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from '../chunk-HSBRFE4Y.js';
2
- import '../chunk-4MJN2KN6.js';
1
+ export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from '../chunk-BHVEHAAX.js';
2
+ import '../chunk-ZDJQQ4LU.js';
3
3
  import '../chunk-WFCWPXJN.js';
4
4
  import '../chunk-FXGQWLZ6.js';
5
5
  import '../chunk-NAHA62WD.js';
@@ -1,11 +1,32 @@
1
1
  import type { HTMLAttributes, ReactNode } from 'react';
2
+ /** The room the layout is drawn in: a whole page, or a detail pane beside a list. */
3
+ export type AsideLayoutFit = 'page' | 'pane';
4
+ /**
5
+ * The layout's own width, in rem, from which the aside stands beside the main
6
+ * column, by `fit`. The stylesheet's container queries split at these widths.
7
+ */
8
+ export declare const ASIDE_LAYOUT_SPLIT_REM: Readonly<Record<AsideLayoutFit, number>>;
2
9
  export interface AsideLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
3
10
  /** The page's main column: what the page is about. */
4
11
  children: ReactNode;
5
- /** The column beside it: facts about the subject, how it is used, related places. */
6
- aside: ReactNode;
12
+ /**
13
+ * The column beside it: facts about the subject, how it is used, related
14
+ * places. Left out (or null), the main column stands alone at the full width.
15
+ */
16
+ aside?: ReactNode;
7
17
  /** What the aside is, for a screen reader's landmark: "About the company". */
8
18
  asideLabel: string;
19
+ /**
20
+ * `page` (the default): the aside stands beside the main column from 56rem,
21
+ * 18rem wide. `pane`: from 44rem, 16rem wide and 16px apart, for a detail
22
+ * pane beside a list, such as setup steps beside the form they explain.
23
+ */
24
+ fit?: AsideLayoutFit | undefined;
25
+ /**
26
+ * Beside the main column, the aside's content stays at the scroller's top
27
+ * while the main column scrolls past. For an aside shorter than its scroller.
28
+ */
29
+ sticky?: boolean | undefined;
9
30
  }
10
31
  /**
11
32
  * A page's main column with an aside beside it, each a stack of blocks one
@@ -13,12 +34,15 @@ export interface AsideLayoutProps extends Omit<HTMLAttributes<HTMLDivElement>, '
13
34
  *
14
35
  * THE COLUMNS FOLLOW THE ROOM THE PAGE HAS, NOT THE WINDOW. It is a container
15
36
  * query on its own width, because a page beside a navigation rail is narrow
16
- * on a wide screen too: from 56rem the aside stands beside the main column at
17
- * `--crewlet-aside-layout-aside` (18rem by default), and below that it
18
- * follows the main column under one hairline, so a phone reads the subject
19
- * first and its facts after it.
37
+ * on a wide screen too: from 56rem (44rem in a `pane`) the aside stands beside
38
+ * the main column at `--crewlet-aside-layout-aside` (18rem by default, 16rem
39
+ * in a pane), and below that it follows the main column under one hairline,
40
+ * so a phone reads the subject first and its facts after it.
41
+ *
42
+ * THE MAIN COLUMN IS ALWAYS THE FIRST CHILD, so it stays the same element as
43
+ * an aside comes and goes, and nothing in it is drawn afresh.
20
44
  *
21
45
  * THE ASIDE IS A COMPLEMENTARY LANDMARK named by `asideLabel`, so a screen
22
46
  * reader can skip to it or past it.
23
47
  */
24
- export declare function AsideLayout({ children, aside, asideLabel, className, ...rest }: AsideLayoutProps): import("react").JSX.Element;
48
+ export declare function AsideLayout({ children, aside, asideLabel, fit, sticky, className, ...rest }: AsideLayoutProps): import("react").JSX.Element;
@@ -1,3 +1,3 @@
1
1
  import './AsideLayout.css';
2
- export { AsideLayout } from './AsideLayout.js';
3
- export type { AsideLayoutProps } from './AsideLayout.js';
2
+ export { ASIDE_LAYOUT_SPLIT_REM, AsideLayout } from './AsideLayout.js';
3
+ export type { AsideLayoutFit, AsideLayoutProps } from './AsideLayout.js';
@@ -1,2 +1,2 @@
1
- export { AsideLayout } from '../chunk-QOXLP5PE.js';
1
+ export { ASIDE_LAYOUT_SPLIT_REM, AsideLayout } from '../chunk-7UQQEUOT.js';
2
2
  import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,93 @@
1
+ /*
2
+ * AsideLayout: a main column with an aside beside it from 56rem of its own
3
+ * width (44rem in a pane), and after it below that (AsideLayout.tsx).
4
+ */
5
+
6
+ .crewlet-aside-layout {
7
+ container-type: inline-size;
8
+ min-width: 0;
9
+ }
10
+
11
+ .crewlet-aside-layout__columns {
12
+ --crewlet-aside-layout-gap: var(--spacing-7);
13
+
14
+ display: grid;
15
+ grid-template-columns: minmax(0, 1fr);
16
+ align-items: start;
17
+ gap: var(--crewlet-aside-layout-gap);
18
+ }
19
+
20
+ /* EACH COLUMN IS A STACK one step apart, so the blocks in it stand apart
21
+ evenly without each carrying a margin of its own. */
22
+ .crewlet-aside-layout__main,
23
+ .crewlet-aside-layout__aside {
24
+ display: flex;
25
+ flex-direction: column;
26
+ gap: var(--spacing-6);
27
+ min-width: 0;
28
+ }
29
+
30
+ /* FOLLOWING THE MAIN COLUMN, the aside is set off by one hairline, so its
31
+ facts read as about the page rather than as more of it. The hairline sits
32
+ midway: the aside takes the gap's own step under it, where the stack's
33
+ smaller step left it 32px under the main column and 24px over the aside. */
34
+ .crewlet-aside-layout__aside {
35
+ --crewlet-aside-layout-stick: static;
36
+
37
+ padding-top: var(--crewlet-aside-layout-gap);
38
+ border-top: 1px solid var(--color-border-default);
39
+ }
40
+
41
+ @container (min-width: 56rem) {
42
+ .crewlet-aside-layout__columns {
43
+ grid-template-columns: minmax(0, 1fr) var(--crewlet-aside-layout-aside, 18rem);
44
+ gap: var(--spacing-8);
45
+ }
46
+
47
+ .crewlet-aside-layout__aside {
48
+ --crewlet-aside-layout-stick: sticky;
49
+
50
+ padding-top: 0;
51
+ border-top: 0;
52
+ }
53
+ }
54
+
55
+ /* A PANE (`fit="pane"`) is narrower than a page by the list beside it: it
56
+ splits sooner, at a narrower aside, one step apart. */
57
+ .crewlet-aside-layout--pane .crewlet-aside-layout__columns {
58
+ --crewlet-aside-layout-gap: var(--spacing-6);
59
+ }
60
+
61
+ @container (min-width: 44rem) {
62
+ .crewlet-aside-layout--pane .crewlet-aside-layout__columns {
63
+ grid-template-columns: minmax(0, 1fr) var(--crewlet-aside-layout-aside, 16rem);
64
+ gap: var(--spacing-4);
65
+ }
66
+
67
+ .crewlet-aside-layout--pane .crewlet-aside-layout__aside {
68
+ --crewlet-aside-layout-stick: sticky;
69
+
70
+ padding-top: 0;
71
+ border-top: 0;
72
+ }
73
+ }
74
+
75
+ /* STICKY (`sticky`): the aside's content as one stack, as tall as itself, so
76
+ it has the aside's length to stick along. Only a split sets the aside's
77
+ `--crewlet-aside-layout-stick`, so it sticks beside the main column alone. */
78
+ .crewlet-aside-layout--sticky > .crewlet-aside-layout__columns {
79
+ align-items: stretch;
80
+ }
81
+
82
+ .crewlet-aside-layout__stick {
83
+ position: var(--crewlet-aside-layout-stick);
84
+ top: 0;
85
+ display: flex;
86
+ flex-direction: column;
87
+ gap: var(--spacing-6);
88
+ }
89
+
90
+ /* ALONE (no aside), the main column is the whole width at every size. */
91
+ .crewlet-aside-layout--alone > .crewlet-aside-layout__columns {
92
+ grid-template-columns: minmax(0, 1fr);
93
+ }
@@ -1,5 +1,5 @@
1
- export { ConfirmField, confirmMatches } from '../chunk-7OEEDQSJ.js';
2
- import '../chunk-PLL7ZJHY.js';
1
+ export { ConfirmField, confirmMatches } from '../chunk-OGOLTPFQ.js';
2
+ import '../chunk-OBFEL5KH.js';
3
3
  import '../chunk-KCLHYBIZ.js';
4
4
  import '../chunk-NICEDVZM.js';
5
5
  import '../chunk-PGCLHYVP.js';
@@ -7,8 +7,8 @@ import '../chunk-ZXXZESCD.js';
7
7
  import '../chunk-YGRTX67J.js';
8
8
  import '../chunk-STJ7QBC3.js';
9
9
  import '../chunk-DTIW4CHZ.js';
10
- import '../chunk-EE3DJMSQ.js';
11
10
  import '../chunk-NXFTCPF6.js';
11
+ import '../chunk-EE3DJMSQ.js';
12
12
  import '../chunk-EC6EUIAD.js';
13
13
  import '../chunk-EJNJMHQG.js';
14
14
  import '../chunk-RE3FBGQQ.js';
@@ -1,11 +1,12 @@
1
- import type { HTMLAttributes } from 'react';
1
+ import { type HTMLAttributes } from 'react';
2
2
  export type InlineCodeVariant =
3
3
  /** An identifier, a path, a config key, a header name. */
4
4
  'default'
5
5
  /**
6
6
  * A `${NAME}` pointing at a secret or an environment variable. Ligatures are
7
- * off everywhere in this component, and this variant also holds the braces
8
- * on one line: a reference torn across a line break names nothing.
7
+ * off everywhere in this component, and this variant holds `${` and `}` to
8
+ * the name: the chip moves to the next line whole where it fits there, and
9
+ * breaks inside the name only where it does not fit on a line of its own.
9
10
  */
10
11
  | 'reference';
11
12
  export type InlineCodeTone =
@@ -1,2 +1,2 @@
1
- export { InlineCode } from '../chunk-PLL7ZJHY.js';
1
+ export { InlineCode } from '../chunk-OBFEL5KH.js';
2
2
  import '../chunk-ODEQTPFM.js';
@@ -35,13 +35,16 @@
35
35
  }
36
36
 
37
37
  /*
38
- * A `${NAME}` pointer. It is one token a reader copies, so it keeps its braces
39
- * together. THE SAME INK AS ANY OTHER CHIP: a pointer is the name of a sealed
40
- * entry, and drawn a step quieter than the identifiers around it, it read as
41
- * decoration rather than as the thing an operator has to type back.
38
+ * A `${NAME}` pointer. It is one token a reader copies, so `${` and `}` are
39
+ * held to the name's first and last characters. THE SAME INK AS ANY OTHER
40
+ * CHIP: drawn a step quieter, it read as decoration rather than as the thing
41
+ * an operator has to type back.
42
+ *
43
+ * THE NAME ITSELF MAY BREAK. Held whole, a long name ran past a dialog at a
44
+ * phone's width. It offers no break of its own, so the chip still moves to
45
+ * the next line whole where it fits there, and breaks only where it does not.
42
46
  */
43
- .crewlet-inline-code--reference {
44
- overflow-wrap: normal;
47
+ .crewlet-inline-code__end {
45
48
  white-space: nowrap;
46
49
  }
47
50
 
@@ -1,6 +1,6 @@
1
- export { LinkInterstitial, openExternal } from '../chunk-MYAARF4Z.js';
1
+ export { LinkInterstitial, openExternal } from '../chunk-OC6BMY3C.js';
2
2
  import '../chunk-ZXXZESCD.js';
3
- import '../chunk-PLL7ZJHY.js';
3
+ import '../chunk-OBFEL5KH.js';
4
4
  import '../chunk-BPCY7ZID.js';
5
5
  import '../chunk-L72URIHR.js';
6
6
  import '../chunk-DGXZ635L.js';
@@ -1,14 +1,14 @@
1
- export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-DWQYV5AV.js';
1
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-I46ZTLDW.js';
2
2
  import '../chunk-ZDWAIVWL.js';
3
3
  import '../chunk-MY374UUD.js';
4
4
  import '../chunk-5YXMKZUA.js';
5
5
  import '../chunk-LM3ISVJA.js';
6
6
  import '../chunk-YTLWOHOY.js';
7
7
  import '../chunk-XZY6S3UC.js';
8
- import '../chunk-CVKANYHD.js';
9
8
  import '../chunk-OMV5W53A.js';
10
9
  import '../chunk-TUEM2XIW.js';
11
10
  import '../chunk-4ITETIGZ.js';
12
11
  import '../chunk-UAUP6XGK.js';
12
+ import '../chunk-CVKANYHD.js';
13
13
  import '../chunk-UT6CW3C7.js';
14
14
  import '../chunk-ODEQTPFM.js';
@@ -1,11 +1,18 @@
1
1
  import { type HTMLAttributes, type LiHTMLAttributes, type ReactNode } from 'react';
2
+ import type { NodeHue } from '../utils/nodeHue.js';
2
3
  export type TimelineItemState =
3
4
  /** Done, or simply past. */
4
5
  'default'
5
- /** This step failed. */
6
+ /** This step failed, or, in a plan still to run, takes something away. */
6
7
  | 'danger'
7
8
  /** This step is where the work is now. */
8
9
  | 'active';
10
+ /** How much room each step takes. */
11
+ export type TimelineDensity =
12
+ /** A run's ledger of blocks, a step's prose and its tool calls under it. The default. */
13
+ 'comfortable'
14
+ /** A handful of short sentences, the steps a dialog lists before somebody confirms them. */
15
+ | 'compact';
9
16
  export interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
10
17
  /**
11
18
  * The word read before an item's number. "Round" makes the hidden label
@@ -17,6 +24,15 @@ export interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
17
24
  * separates adjacent blocks without claiming a meaning.
18
25
  */
19
26
  alternating?: boolean | undefined;
27
+ /**
28
+ * The hue of whoever the steps belong to, on each default step's node and
29
+ * rail: an agent's own colour, as its `Avatar` wears it. A danger or an
30
+ * active step keeps its own colour, and the steps' words still say what
31
+ * each one does, so the hue is identity and never state.
32
+ */
33
+ hue?: NodeHue | undefined;
34
+ /** `compact` tightens each step for a dialog or a card. */
35
+ density?: TimelineDensity | undefined;
20
36
  }
21
37
  /**
22
38
  * A numbered sequence of steps, each bracketed by its own rail.
@@ -27,7 +43,7 @@ export interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
27
43
  * flat stack of look-alike rows. Bounded to its own item, every step is
28
44
  * delimited and the ledger still ends where its last step's content ends.
29
45
  */
30
- export declare function Timeline({ itemLabel, alternating, className, children, ...rest }: TimelineProps): import("react").JSX.Element;
46
+ export declare function Timeline({ itemLabel, alternating, hue, density, className, children, ...rest }: TimelineProps): import("react").JSX.Element;
31
47
  export declare namespace Timeline {
32
48
  var Item: typeof TimelineItem;
33
49
  }
@@ -1,3 +1,3 @@
1
1
  import './Timeline.css';
2
2
  export { Timeline, TimelineItem } from './Timeline.js';
3
- export type { TimelineProps, TimelineItemProps, TimelineItemState } from './Timeline.js';
3
+ export type { TimelineDensity, TimelineProps, TimelineItemProps, TimelineItemState } from './Timeline.js';
@@ -1,3 +1,3 @@
1
- export { Timeline, TimelineItem } from '../chunk-4MJN2KN6.js';
1
+ export { Timeline, TimelineItem } from '../chunk-ZDJQQ4LU.js';
2
2
  import '../chunk-UT6CW3C7.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -119,6 +119,54 @@
119
119
  flex-direction: column;
120
120
  gap: var(--spacing-2);
121
121
  min-width: 0;
122
+ /* A long handle or path breaks inside the column rather than running past
123
+ the ledger, which at a phone's width is past the dialog holding it. */
124
+ overflow-wrap: anywhere;
125
+ }
126
+
127
+ /*
128
+ * COMPACT: a dialog's handful of short sentences rather than a run's blocks.
129
+ * The pad between steps still beats the gap inside one, so a step's note
130
+ * stays with its own step.
131
+ */
132
+ .crewlet-timeline--compact .crewlet-timeline__item {
133
+ padding-block: var(--spacing-1);
134
+ }
135
+
136
+ .crewlet-timeline--compact .crewlet-timeline__body {
137
+ gap: var(--spacing-1);
138
+ }
139
+
140
+ /*
141
+ * A HUE: whose steps these are, in the colour their avatar wears. Each hue
142
+ * pairs its fill with its own ink, which the palette gate measures as a pair.
143
+ */
144
+ .crewlet-timeline--hue-purple { --crewlet-timeline-hue-fill: var(--color-node-purple-fill); --crewlet-timeline-hue-line: var(--color-node-purple-line); --crewlet-timeline-hue-ink: var(--color-node-purple-ink); }
145
+ .crewlet-timeline--hue-cyan { --crewlet-timeline-hue-fill: var(--color-node-cyan-fill); --crewlet-timeline-hue-line: var(--color-node-cyan-line); --crewlet-timeline-hue-ink: var(--color-node-cyan-ink); }
146
+ .crewlet-timeline--hue-green { --crewlet-timeline-hue-fill: var(--color-node-green-fill); --crewlet-timeline-hue-line: var(--color-node-green-line); --crewlet-timeline-hue-ink: var(--color-node-green-ink); }
147
+ .crewlet-timeline--hue-amber { --crewlet-timeline-hue-fill: var(--color-node-amber-fill); --crewlet-timeline-hue-line: var(--color-node-amber-line); --crewlet-timeline-hue-ink: var(--color-node-amber-ink); }
148
+ .crewlet-timeline--hue-rose { --crewlet-timeline-hue-fill: var(--color-node-rose-fill); --crewlet-timeline-hue-line: var(--color-node-rose-line); --crewlet-timeline-hue-ink: var(--color-node-rose-ink); }
149
+ .crewlet-timeline--hue-blue { --crewlet-timeline-hue-fill: var(--color-node-blue-fill); --crewlet-timeline-hue-line: var(--color-node-blue-line); --crewlet-timeline-hue-ink: var(--color-node-blue-ink); }
150
+
151
+ /*
152
+ * ONLY A DEFAULT STEP TAKES THE HUE. A failed or destructive step and the
153
+ * step in flight keep their own node, so the one step a reader scans for
154
+ * still stands out among an agent's others.
155
+ */
156
+ .crewlet-timeline--hued .crewlet-timeline__item--default .crewlet-timeline__node {
157
+ border-color: var(--crewlet-timeline-hue-line);
158
+ background: var(--crewlet-timeline-hue-fill);
159
+ color: var(--crewlet-timeline-hue-ink);
160
+ }
161
+
162
+ .crewlet-timeline--hued .crewlet-timeline__item--default .crewlet-timeline__rail::after {
163
+ background: var(--crewlet-timeline-hue-line);
164
+ }
165
+
166
+ /* In a hued ledger a danger step's rail is drawn in its node's line too, so a
167
+ step that takes access away is marked along its whole height. */
168
+ .crewlet-timeline--hued .crewlet-timeline__item--danger .crewlet-timeline__rail::after {
169
+ background: var(--color-feedback-danger-line);
122
170
  }
123
171
 
124
172
  /*
@@ -1,10 +1,10 @@
1
- export { VersionTimeline } from '../chunk-L5VU3LZT.js';
1
+ export { VersionTimeline } from '../chunk-NTGAPLMJ.js';
2
2
  import '../chunk-HF5L56YQ.js';
3
3
  import '../chunk-EJNJMHQG.js';
4
4
  import '../chunk-RE3FBGQQ.js';
5
5
  import '../chunk-YTLWOHOY.js';
6
6
  import '../chunk-XZY6S3UC.js';
7
- import '../chunk-4MJN2KN6.js';
7
+ import '../chunk-ZDJQQ4LU.js';
8
8
  import '../chunk-DGXZ635L.js';
9
9
  import '../chunk-XSPCITPN.js';
10
10
  import '../chunk-UT6CW3C7.js';
@@ -0,0 +1,35 @@
1
+ import { cx } from './chunk-ODEQTPFM.js';
2
+ import './AsideLayout-SJO7VLPQ.css';
3
+ import { jsx, jsxs } from 'react/jsx-runtime';
4
+
5
+ var ASIDE_LAYOUT_SPLIT_REM = { page: 56, pane: 44 };
6
+ function AsideLayout({
7
+ children,
8
+ aside,
9
+ asideLabel,
10
+ fit = "page",
11
+ sticky = false,
12
+ className,
13
+ ...rest
14
+ }) {
15
+ const alone = aside === null || aside === void 0 || aside === false;
16
+ return /* @__PURE__ */ jsx(
17
+ "div",
18
+ {
19
+ ...rest,
20
+ className: cx(
21
+ "crewlet-aside-layout",
22
+ fit === "pane" && "crewlet-aside-layout--pane",
23
+ sticky && "crewlet-aside-layout--sticky",
24
+ alone && "crewlet-aside-layout--alone",
25
+ className
26
+ ),
27
+ children: /* @__PURE__ */ jsxs("div", { className: "crewlet-aside-layout__columns", children: [
28
+ /* @__PURE__ */ jsx("div", { className: "crewlet-aside-layout__main", children }),
29
+ alone ? null : /* @__PURE__ */ jsx("aside", { className: "crewlet-aside-layout__aside", "aria-label": asideLabel, children: sticky ? /* @__PURE__ */ jsx("div", { className: "crewlet-aside-layout__stick", children: aside }) : aside })
30
+ ] })
31
+ }
32
+ );
33
+ }
34
+
35
+ export { ASIDE_LAYOUT_SPLIT_REM, AsideLayout };
@@ -1,4 +1,4 @@
1
- import { Timeline } from './chunk-4MJN2KN6.js';
1
+ import { Timeline } from './chunk-ZDJQQ4LU.js';
2
2
  import { Section } from './chunk-WFCWPXJN.js';
3
3
  import { Composer } from './chunk-FXGQWLZ6.js';
4
4
  import { Disclosure } from './chunk-NAHA62WD.js';
@@ -1,6 +1,6 @@
1
1
  import { PrincipalAvatar } from './chunk-HF5L56YQ.js';
2
2
  import { RelativeTime } from './chunk-EJNJMHQG.js';
3
- import { Timeline } from './chunk-4MJN2KN6.js';
3
+ import { Timeline } from './chunk-ZDJQQ4LU.js';
4
4
  import { Button } from './chunk-DGXZ635L.js';
5
5
  import { cx } from './chunk-ODEQTPFM.js';
6
6
  import './VersionTimeline-DEAQ7CJG.css';
@@ -0,0 +1,49 @@
1
+ import { cx } from './chunk-ODEQTPFM.js';
2
+ import './InlineCode-M7FAL5J4.css';
3
+ import { Children } from 'react';
4
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
+
6
+ function referenceRuns(children) {
7
+ const parts = Children.toArray(children);
8
+ if (!parts.every((part) => typeof part === "string" || typeof part === "number")) return null;
9
+ const text = parts.join("");
10
+ if (!text.startsWith("${") || !text.endsWith("}")) return null;
11
+ const name = Array.from(text.slice(2, -1));
12
+ if (name.length === 0) return null;
13
+ if (name.length === 1) return [text, "", ""];
14
+ const first = name[0];
15
+ const last = name[name.length - 1];
16
+ return ["${" + first, name.slice(1, -1).join(""), last + "}"];
17
+ }
18
+ function InlineCode({
19
+ variant = "default",
20
+ tone = "default",
21
+ truncate = false,
22
+ whole = false,
23
+ className,
24
+ children,
25
+ ...rest
26
+ }) {
27
+ const runs = variant === "reference" ? referenceRuns(children) : null;
28
+ return /* @__PURE__ */ jsx(
29
+ "code",
30
+ {
31
+ ...rest,
32
+ className: cx(
33
+ "crewlet-inline-code",
34
+ `crewlet-inline-code--${variant}`,
35
+ tone === "inherit" && "crewlet-inline-code--inherit",
36
+ truncate && "crewlet-inline-code--truncate",
37
+ whole && "crewlet-inline-code--whole",
38
+ className
39
+ ),
40
+ children: runs === null ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
41
+ /* @__PURE__ */ jsx("span", { className: "crewlet-inline-code__end", children: runs[0] }),
42
+ runs[1],
43
+ runs[2] === "" ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-inline-code__end", children: runs[2] })
44
+ ] })
45
+ }
46
+ );
47
+ }
48
+
49
+ export { InlineCode };
@@ -1,5 +1,5 @@
1
1
  import { ConfirmModal } from './chunk-ZXXZESCD.js';
2
- import { InlineCode } from './chunk-PLL7ZJHY.js';
2
+ import { InlineCode } from './chunk-OBFEL5KH.js';
3
3
  import { Callout } from './chunk-BPCY7ZID.js';
4
4
  import './LinkInterstitial-ET4MSVSV.css';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { InlineCode } from './chunk-PLL7ZJHY.js';
1
+ import { InlineCode } from './chunk-OBFEL5KH.js';
2
2
  import { FormField, Input } from './chunk-KCLHYBIZ.js';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
 
@@ -1,6 +1,6 @@
1
1
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
- import './Timeline-PGIZIODK.css';
3
+ import './Timeline-LTBM3TSZ.css';
4
4
  import { createContext, Children, isValidElement, useContext } from 'react';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
6
6
 
@@ -9,6 +9,8 @@ var TimelinePositionContext = createContext(null);
9
9
  function Timeline({
10
10
  itemLabel = "Item",
11
11
  alternating = false,
12
+ hue,
13
+ density = "comfortable",
12
14
  className,
13
15
  children,
14
16
  ...rest
@@ -18,7 +20,14 @@ function Timeline({
18
20
  "ol",
19
21
  {
20
22
  ...rest,
21
- className: cx("crewlet-timeline", alternating && "crewlet-timeline--alternating", className),
23
+ className: cx(
24
+ "crewlet-timeline",
25
+ alternating && "crewlet-timeline--alternating",
26
+ hue !== void 0 && "crewlet-timeline--hued",
27
+ hue !== void 0 && `crewlet-timeline--hue-${hue}`,
28
+ density === "compact" && "crewlet-timeline--compact",
29
+ className
30
+ ),
22
31
  children: items.map((child, index) => /* @__PURE__ */ jsx(TimelinePositionContext.Provider, { value: index + 1, children: child }, child.key ?? index))
23
32
  }
24
33
  ) });
@@ -1,5 +1,5 @@
1
1
  import '../chunk-VNACAMDK.js';
2
- export { VersionTimeline } from '../chunk-L5VU3LZT.js';
2
+ export { VersionTimeline } from '../chunk-NTGAPLMJ.js';
3
3
  export { WidgetFrame } from '../chunk-5K5SZGBI.js';
4
4
  export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from '../chunk-YHDJ22UB.js';
5
5
  export { TreeCanvas } from '../chunk-FPU7AA3X.js';
@@ -63,21 +63,22 @@ export { Text } from '../chunk-O5CEG7TQ.js';
63
63
  export { AddReaction, REACTION_BAR_LABELS, ReactionBar, reactionWho } from '../chunk-B3BJ66GQ.js';
64
64
  export { READING_PANE_ENTER, ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from '../chunk-64JNKLLP.js';
65
65
  export { PresenceStack } from '../chunk-F7HZYTZT.js';
66
+ export { PricingCard } from '../chunk-O2XAJDK6.js';
66
67
  export { PresenterView, formatStopwatch } from '../chunk-LMEMH6DO.js';
67
68
  export { SLIDE_NAV_LABELS, SlideNav } from '../chunk-5AJR6X75.js';
68
69
  export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from '../chunk-O6EV6GKI.js';
69
- export { PricingCard } from '../chunk-O2XAJDK6.js';
70
70
  export { PrincipalPicker } from '../chunk-4RLUVHYP.js';
71
+ export { MessageBubble } from '../chunk-KAQ2L74F.js';
71
72
  export { PageNote } from '../chunk-CV4NES3P.js';
72
73
  export { PEEK_RAIL_LABELS, PEEK_RAIL_MAX_WIDTH, PEEK_RAIL_MIN_WIDTH, PEEK_RAIL_WIDTH, PeekHost, PeekNeighbours, PeekRail, isPlainPress, peekClickHandler, peekRowActivation, usePeekNeighbours, usePeekOrder, usePeekStep } from '../chunk-CDNZTCP2.js';
73
74
  export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from '../chunk-QGEDXYLB.js';
74
75
  import '../chunk-CENOOTAV.js';
75
- export { NewItemsNotice } from '../chunk-463DNZXI.js';
76
76
  export { PinTile } from '../chunk-LJ3KWQLP.js';
77
+ export { NewItemsNotice } from '../chunk-463DNZXI.js';
77
78
  export { FactLine, ObjectHeader, SetByLine } from '../chunk-AXEXOAZQ.js';
78
79
  export { OPEN_IN_APP_CARD_LABELS, OpenInAppCard } from '../chunk-HZBXC3YD.js';
79
80
  export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from '../chunk-NKBKHOMU.js';
80
- export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-DWQYV5AV.js';
81
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-I46ZTLDW.js';
81
82
  export { TreeGrid } from '../chunk-ZDWAIVWL.js';
82
83
  export { SIZE_EPSILON, TYPE_AHEAD_RESET_MS, createTreeModel, isTypeAheadKey, layoutConnectors, layoutForest, placeGroups, treeAllExpandable, treeAncestors, treeCollapseOrAscend, treeExpandOrDescend, treeExpandTo, treeExpandable, treeFirst, treeFirstChild, treeItemAction, treeLast, treeLevel, treeNext, treeParent, treePosInSet, treePrevious, treeSetSize, treeStep, treeTypeAhead, treeVisible, typeAheadBuffer, useLayoutAnchor, useMeasuredSizes, useTreeState } from '../chunk-MY374UUD.js';
83
84
  export { OrgLabel } from '../chunk-5YXMKZUA.js';
@@ -89,17 +90,16 @@ export { PersonRow } from '../chunk-6TD2PCZB.js';
89
90
  export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-H4WQWCHP.js';
90
91
  export { ActionDivider, MessageAction, MessageActions, QuickReaction } from '../chunk-3NO5GRZY.js';
91
92
  import '../chunk-TDFLCUBE.js';
92
- export { MessageBubble } from '../chunk-KAQ2L74F.js';
93
93
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from '../chunk-DPNVKWJX.js';
94
94
  export { LIVE_PREVIEW_DWELL_MS, LIVE_PREVIEW_MARGIN, LIVE_PREVIEW_MAX, LIVE_PREVIEW_MAX_FRAMES, LIVE_PREVIEW_RENDER_MS, LIVE_PREVIEW_STILLS_KEPT, LivePreview, LivePreviewBudgetProvider, PREVIEW_FILL_MAX_CUT, PreviewScale, createLivePreviewBudget, createLivePreviewStills, immediately, perFrame, useLivePreview } from '../chunk-CQFQGAZI.js';
95
95
  export { LogoSlot, LogoSlotGroup } from '../chunk-LAZ72JOP.js';
96
96
  export { MARKDOWN_FORMATS, MARKDOWN_TEXT_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-XSJSDNRR.js';
97
97
  export { LAYERS_LIST_LABELS, LayersList } from '../chunk-VUYNNILP.js';
98
98
  export { AutoGrid, Inline, Spacer, Stack } from '../chunk-ZAC7SKUN.js';
99
- export { Link } from '../chunk-QF5UNP4T.js';
100
99
  export { LinkCard } from '../chunk-O3MYBNRO.js';
101
100
  import '../chunk-KOJPDCGQ.js';
102
- export { LinkInterstitial, openExternal } from '../chunk-MYAARF4Z.js';
101
+ export { Link } from '../chunk-QF5UNP4T.js';
102
+ export { LinkInterstitial, openExternal } from '../chunk-OC6BMY3C.js';
103
103
  export { List, ListItem } from '../chunk-A7UOYLK3.js';
104
104
  export { ListDetail } from '../chunk-P33VNG7Q.js';
105
105
  export { ListInput, withDraft } from '../chunk-PICHV3PC.js';
@@ -107,8 +107,8 @@ export { INLINE_EDITOR_LABELS, InlineEditor } from '../chunk-CFJ7FQZI.js';
107
107
  export { InlineRef } from '../chunk-JGDCVLD4.js';
108
108
  export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from '../chunk-KBZO4B33.js';
109
109
  export { KeyValueRows, keyValueRowsLabels } from '../chunk-SRHLFQ4J.js';
110
- import '../chunk-MICRGE3J.js';
111
110
  export { Highlight, highlightRanges, highlightTerms } from '../chunk-H6VKCIWV.js';
111
+ import '../chunk-MICRGE3J.js';
112
112
  import '../chunk-FFMCMSJB.js';
113
113
  export { IconTile } from '../chunk-3LI4TRUR.js';
114
114
  export { ImageUpload } from '../chunk-K6Y6CDEZ.js';
@@ -128,31 +128,31 @@ export { ErrorBoundary } from '../chunk-IJ7KLXUZ.js';
128
128
  export { Eyebrow } from '../chunk-RK4XPHVG.js';
129
129
  export { FactList } from '../chunk-SNQ7PH3D.js';
130
130
  export { FileDrop, FilePickButton, droppedFiles, pickedFiles } from '../chunk-KQWJWTED.js';
131
- export { Divider } from '../chunk-6KWNXIDE.js';
132
131
  export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-2HBY3FOZ.js';
132
+ export { Divider } from '../chunk-6KWNXIDE.js';
133
133
  export { DockColumn } from '../chunk-5JPOFAVN.js';
134
134
  export { DownloadButton } from '../chunk-EHFQMY3B.js';
135
135
  export { downloadBlob, downloadText, safeFilename, useDownload } from '../chunk-YNRKVY7X.js';
136
136
  export { EditingStatus } from '../chunk-OU6ZSWEJ.js';
137
137
  export { EMOJI_GROUPS, EMOJI_PICKER_COLUMNS, EMOJI_PICKER_LABELS, EmojiPicker, emojiName, searchEmoji } from '../chunk-HZPUMGQV.js';
138
+ export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-C2HIMGFI.js';
139
+ export { DELIVERY_RECEIPT_LABELS, DeliveryReceipt } from '../chunk-NGJWRR7E.js';
138
140
  export { DEEP_WORK_CARD_LABELS, DEEP_WORK_STATES, DEEP_WORK_STATE_LABELS, DeepWorkCard } from '../chunk-5U6XAUYM.js';
139
141
  export { STEP_STATES, STEP_STATE_LABELS, StepList, StepStateMark, Stepper, stepDetailPieces } from '../chunk-KUMHQY2B.js';
140
142
  export { REFUSAL_STRIP_LABELS, ReceiptStrip, RefusalStrip } from '../chunk-ZWCK4N4L.js';
141
143
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from '../chunk-RQFRRPV6.js';
142
- export { DELIVERY_RECEIPT_LABELS, DeliveryReceipt } from '../chunk-NGJWRR7E.js';
143
144
  export { DescriptionList, DescriptionListItem } from '../chunk-LH4OF7FI.js';
144
- export { CursorFlag } from '../chunk-MMCYH5LB.js';
145
- export { PresenceRing, presenceHueClass } from '../chunk-EFX2YC5T.js';
146
145
  export { DIFF_SUMMARY_LABELS, DIFF_VIEW_LABELS, DiffSummary, DiffView, MAX_DIFF_LINES, collapseDiff, diffLines, diffStat, firstChangedLines, splitLines } from '../chunk-AOFVXE6V.js';
147
146
  export { DirectoryList } from '../chunk-5KTLQ436.js';
148
147
  export { ContrastHelp } from '../chunk-QDGHOGSW.js';
149
148
  export { ContrastBadge, ContrastLevelTag, contrastLevel, contrastRatio, formatContrastRatio } from '../chunk-EW4ULFHK.js';
149
+ export { CursorFlag } from '../chunk-MMCYH5LB.js';
150
+ export { PresenceRing, presenceHueClass } from '../chunk-EFX2YC5T.js';
150
151
  export { ChooserList, ColumnChooser, DATA_GRID_ICON_TRACK, DataGrid, columnChoicesOf, countDataGridRows, fitGridColumns, nextGridSort, parseGridSort, useAnyDataGridDriving, useDataGridDriving } from '../chunk-5MOBCUNA.js';
151
152
  export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-LGPTZGHJ.js';
152
153
  export { PageHeader } from '../chunk-FPDIHEM4.js';
153
154
  export { FILTER_PILL_LABELS, FILTER_PILL_WORDS_CLASS, FilterPill, filterPillSentence } from '../chunk-K4LZXSKZ.js';
154
155
  export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-7K6LVM5I.js';
155
- export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-C2HIMGFI.js';
156
156
  export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-2NNMBEJV.js';
157
157
  export { Combobox } from '../chunk-AQCWYVE3.js';
158
158
  export { CommandPalette } from '../chunk-AVWEXCJ4.js';
@@ -161,15 +161,15 @@ export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, use
161
161
  export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-OSH55AKI.js';
162
162
  export { CompactNav, CompactNavGroup, CompactNavItem, CompactNavSeparator, groupBadge, placeFlyout } from '../chunk-QWRAWKB2.js';
163
163
  export { LockedLabel } from '../chunk-TEV5REGB.js';
164
- export { ConfirmField, confirmMatches } from '../chunk-7OEEDQSJ.js';
165
- export { InlineCode } from '../chunk-PLL7ZJHY.js';
164
+ export { ConfirmField, confirmMatches } from '../chunk-OGOLTPFQ.js';
165
+ export { InlineCode } from '../chunk-OBFEL5KH.js';
166
166
  export { CONFLICT_NOTE_LABELS, ConflictNote } from '../chunk-B3PK2LND.js';
167
167
  export { Container } from '../chunk-HJO4WCH6.js';
168
168
  export { CHIP_FIELD_LABELS, ChipField } from '../chunk-LPQLJHLI.js';
169
+ export { ChoiceButtons } from '../chunk-RVSNBUIU.js';
170
+ export { ChoiceList } from '../chunk-XU7RQNT6.js';
169
171
  export { ChoiceCards } from '../chunk-CFCJ3P7B.js';
170
172
  export { CodeBlock } from '../chunk-4ME4J3YY.js';
171
- export { ChoiceList } from '../chunk-XU7RQNT6.js';
172
- export { ChoiceButtons } from '../chunk-RVSNBUIU.js';
173
173
  export { ColorChip } from '../chunk-C6T4VBEY.js';
174
174
  export { ColorField } from '../chunk-GNJXUNEU.js';
175
175
  export { ColorSwatch } from '../chunk-6EZX26BD.js';
@@ -177,13 +177,17 @@ export { CopyButton, Copyable } from '../chunk-ETNQYT5O.js';
177
177
  export { useClipboard, writeClipboard } from '../chunk-STJ7QBC3.js';
178
178
  export { useOutcome } from '../chunk-DTIW4CHZ.js';
179
179
  import '../chunk-3L5NHASN.js';
180
+ export { ActivityStrip, BarList, ChartEmpty, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Histogram, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, histogramTicks, niceScale, useChartHover } from '../chunk-YWVT7B6N.js';
180
181
  export { ChatDay, ChatDayPill } from '../chunk-ONHYFU7D.js';
181
182
  export { ChatDivider } from '../chunk-K774LUN3.js';
182
- export { ActivityStrip, BarList, ChartEmpty, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Histogram, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, histogramTicks, niceScale, useChartHover } from '../chunk-YWVT7B6N.js';
183
183
  export { CHAT_MESSAGE_CLASS, CHAT_MESSAGE_FAILURE_LABELS, ChatMessage, ChatMessageFailure } from '../chunk-IUBOLGHG.js';
184
184
  export { CHAT_THREAD_FOLLOW_WITHIN, CHAT_THREAD_LABELS, ChatThread } from '../chunk-VONEKR3J.js';
185
185
  export { CheckGrid } from '../chunk-WSHKY7SH.js';
186
+ export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from '../chunk-2SVQBQAD.js';
187
+ export { Note } from '../chunk-5SZGKSGL.js';
186
188
  export { CanvasSchematic } from '../chunk-NBWNLYWZ.js';
189
+ export { CanvasToolbar, toolForKey } from '../chunk-DRFOTWJE.js';
190
+ export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-NXFTCPF6.js';
187
191
  export { CatalogTile } from '../chunk-JKEGFDBG.js';
188
192
  export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged } from '../chunk-U4JZ2EXG.js';
189
193
  export { DIFF_LIST_LABELS, DiffList } from '../chunk-LR4IWUWQ.js';
@@ -202,13 +206,9 @@ import '../chunk-6C7GQOBV.js';
202
206
  export { StatusCard } from '../chunk-4BEMS6Q7.js';
203
207
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from '../chunk-EE3DJMSQ.js';
204
208
  export { Callout } from '../chunk-BPCY7ZID.js';
205
- export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from '../chunk-2SVQBQAD.js';
206
- export { Note } from '../chunk-5SZGKSGL.js';
207
- export { CanvasToolbar, toolForKey } from '../chunk-DRFOTWJE.js';
208
- export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-NXFTCPF6.js';
209
209
  export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-NCUSI4ZU.js';
210
210
  import '../chunk-LM3ISVJA.js';
211
- export { AsideLayout } from '../chunk-QOXLP5PE.js';
211
+ export { ASIDE_LAYOUT_SPLIT_REM, AsideLayout } from '../chunk-7UQQEUOT.js';
212
212
  export { ATTACHMENT_CHIP_LABELS, AttachmentChip } from '../chunk-MTDISM7I.js';
213
213
  export { Tag } from '../chunk-SJ3EUCFD.js';
214
214
  export { ATTENTION_LIST_LABELS, AttentionList } from '../chunk-AELKT34H.js';
@@ -239,8 +239,8 @@ export { afterMotion, releaseFocus, runningMotion, usePresence } from '../chunk-
239
239
  import '../chunk-JLOESTT2.js';
240
240
  export { ArrangeBoard } from '../chunk-QO7QEQKV.js';
241
241
  export { ArrangeFrame, useGridResize } from '../chunk-I4IO56EY.js';
242
- export { ArrangeGroup } from '../chunk-7U6PK242.js';
243
242
  export { ArrangeGrid } from '../chunk-QBA5B2Z5.js';
243
+ export { ArrangeGroup } from '../chunk-7U6PK242.js';
244
244
  export { ArrangeList, DEFAULT_ARRANGE_LABELS } from '../chunk-7ZJ662U4.js';
245
245
  export { Switch } from '../chunk-3N3XK2G5.js';
246
246
  export { DEFAULT_REORDER_LABELS, moveKey, useReorder, useReorderLists } from '../chunk-BVML4UVB.js';
@@ -263,9 +263,10 @@ export { ACCESS_DENIED_REASONS, AccessDeniedCard } from '../chunk-QTMUKRTN.js';
263
263
  export { EmptyState } from '../chunk-PPUR46MK.js';
264
264
  export { Accordion, AccordionItem } from '../chunk-E2QPZGLG.js';
265
265
  export { ACTION_CARD_GROUND, ActionCard, ActionCardRow } from '../chunk-OM2LABPS.js';
266
- export { ADD_PILL_MS, AddPill } from '../chunk-CVKANYHD.js';
267
- export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from '../chunk-HSBRFE4Y.js';
268
- export { Timeline, TimelineItem } from '../chunk-4MJN2KN6.js';
266
+ export { ActivityLine } from '../chunk-V7N5XWZ6.js';
267
+ export { ThinkingIndicator } from '../chunk-3OIVYHAA.js';
268
+ export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from '../chunk-BHVEHAAX.js';
269
+ export { Timeline, TimelineItem } from '../chunk-ZDJQQ4LU.js';
269
270
  export { Section } from '../chunk-WFCWPXJN.js';
270
271
  export { COMPOSER_COUNTER_AT, Composer } from '../chunk-FXGQWLZ6.js';
271
272
  export { Disclosure } from '../chunk-NAHA62WD.js';
@@ -286,8 +287,7 @@ export { IconButton, IconButtonLink } from '../chunk-UAUP6XGK.js';
286
287
  export { DisclosureAnatomy } from '../chunk-ULYHDP7U.js';
287
288
  export { Count } from '../chunk-D2GT3CR4.js';
288
289
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from '../chunk-PQADV6P6.js';
289
- export { ActivityLine } from '../chunk-V7N5XWZ6.js';
290
- export { ThinkingIndicator } from '../chunk-3OIVYHAA.js';
290
+ export { ADD_PILL_MS, AddPill } from '../chunk-CVKANYHD.js';
291
291
  export { Announcer, announce, useAnnouncer } from '../chunk-2G355KDJ.js';
292
292
  export { VisuallyHidden } from '../chunk-UT6CW3C7.js';
293
293
  export { cx } from '../chunk-ODEQTPFM.js';
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import './chunk-VNACAMDK.js';
2
- export { VersionTimeline } from './chunk-L5VU3LZT.js';
2
+ export { VersionTimeline } from './chunk-NTGAPLMJ.js';
3
3
  export { WidgetFrame } from './chunk-5K5SZGBI.js';
4
4
  export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from './chunk-YHDJ22UB.js';
5
5
  export { TreeCanvas } from './chunk-FPU7AA3X.js';
@@ -63,21 +63,22 @@ export { Text } from './chunk-O5CEG7TQ.js';
63
63
  export { AddReaction, REACTION_BAR_LABELS, ReactionBar, reactionWho } from './chunk-B3BJ66GQ.js';
64
64
  export { READING_PANE_ENTER, ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from './chunk-64JNKLLP.js';
65
65
  export { PresenceStack } from './chunk-F7HZYTZT.js';
66
+ export { PricingCard } from './chunk-O2XAJDK6.js';
66
67
  export { PresenterView, formatStopwatch } from './chunk-LMEMH6DO.js';
67
68
  export { SLIDE_NAV_LABELS, SlideNav } from './chunk-5AJR6X75.js';
68
69
  export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from './chunk-O6EV6GKI.js';
69
- export { PricingCard } from './chunk-O2XAJDK6.js';
70
70
  export { PrincipalPicker } from './chunk-4RLUVHYP.js';
71
+ export { MessageBubble } from './chunk-KAQ2L74F.js';
71
72
  export { PageNote } from './chunk-CV4NES3P.js';
72
73
  export { PEEK_RAIL_LABELS, PEEK_RAIL_MAX_WIDTH, PEEK_RAIL_MIN_WIDTH, PEEK_RAIL_WIDTH, PeekHost, PeekNeighbours, PeekRail, isPlainPress, peekClickHandler, peekRowActivation, usePeekNeighbours, usePeekOrder, usePeekStep } from './chunk-CDNZTCP2.js';
73
74
  export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from './chunk-QGEDXYLB.js';
74
75
  import './chunk-CENOOTAV.js';
75
- export { NewItemsNotice } from './chunk-463DNZXI.js';
76
76
  export { PinTile } from './chunk-LJ3KWQLP.js';
77
+ export { NewItemsNotice } from './chunk-463DNZXI.js';
77
78
  export { FactLine, ObjectHeader, SetByLine } from './chunk-AXEXOAZQ.js';
78
79
  export { OPEN_IN_APP_CARD_LABELS, OpenInAppCard } from './chunk-HZBXC3YD.js';
79
80
  export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from './chunk-NKBKHOMU.js';
80
- export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from './chunk-DWQYV5AV.js';
81
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from './chunk-I46ZTLDW.js';
81
82
  export { TreeGrid } from './chunk-ZDWAIVWL.js';
82
83
  export { SIZE_EPSILON, TYPE_AHEAD_RESET_MS, createTreeModel, isTypeAheadKey, layoutConnectors, layoutForest, placeGroups, treeAllExpandable, treeAncestors, treeCollapseOrAscend, treeExpandOrDescend, treeExpandTo, treeExpandable, treeFirst, treeFirstChild, treeItemAction, treeLast, treeLevel, treeNext, treeParent, treePosInSet, treePrevious, treeSetSize, treeStep, treeTypeAhead, treeVisible, typeAheadBuffer, useLayoutAnchor, useMeasuredSizes, useTreeState } from './chunk-MY374UUD.js';
83
84
  export { OrgLabel } from './chunk-5YXMKZUA.js';
@@ -89,17 +90,16 @@ export { PersonRow } from './chunk-6TD2PCZB.js';
89
90
  export { MERGE_CONFLICTS_LABELS, MergeConflicts } from './chunk-H4WQWCHP.js';
90
91
  export { ActionDivider, MessageAction, MessageActions, QuickReaction } from './chunk-3NO5GRZY.js';
91
92
  import './chunk-TDFLCUBE.js';
92
- export { MessageBubble } from './chunk-KAQ2L74F.js';
93
93
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from './chunk-DPNVKWJX.js';
94
94
  export { LIVE_PREVIEW_DWELL_MS, LIVE_PREVIEW_MARGIN, LIVE_PREVIEW_MAX, LIVE_PREVIEW_MAX_FRAMES, LIVE_PREVIEW_RENDER_MS, LIVE_PREVIEW_STILLS_KEPT, LivePreview, LivePreviewBudgetProvider, PREVIEW_FILL_MAX_CUT, PreviewScale, createLivePreviewBudget, createLivePreviewStills, immediately, perFrame, useLivePreview } from './chunk-CQFQGAZI.js';
95
95
  export { LogoSlot, LogoSlotGroup } from './chunk-LAZ72JOP.js';
96
96
  export { MARKDOWN_FORMATS, MARKDOWN_TEXT_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from './chunk-XSJSDNRR.js';
97
97
  export { LAYERS_LIST_LABELS, LayersList } from './chunk-VUYNNILP.js';
98
98
  export { AutoGrid, Inline, Spacer, Stack } from './chunk-ZAC7SKUN.js';
99
- export { Link } from './chunk-QF5UNP4T.js';
100
99
  export { LinkCard } from './chunk-O3MYBNRO.js';
101
100
  import './chunk-KOJPDCGQ.js';
102
- export { LinkInterstitial, openExternal } from './chunk-MYAARF4Z.js';
101
+ export { Link } from './chunk-QF5UNP4T.js';
102
+ export { LinkInterstitial, openExternal } from './chunk-OC6BMY3C.js';
103
103
  export { List, ListItem } from './chunk-A7UOYLK3.js';
104
104
  export { ListDetail } from './chunk-P33VNG7Q.js';
105
105
  export { ListInput, withDraft } from './chunk-PICHV3PC.js';
@@ -107,8 +107,8 @@ export { INLINE_EDITOR_LABELS, InlineEditor } from './chunk-CFJ7FQZI.js';
107
107
  export { InlineRef } from './chunk-JGDCVLD4.js';
108
108
  export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from './chunk-KBZO4B33.js';
109
109
  export { KeyValueRows, keyValueRowsLabels } from './chunk-SRHLFQ4J.js';
110
- import './chunk-MICRGE3J.js';
111
110
  export { Highlight, highlightRanges, highlightTerms } from './chunk-H6VKCIWV.js';
111
+ import './chunk-MICRGE3J.js';
112
112
  import './chunk-FFMCMSJB.js';
113
113
  export { IconTile } from './chunk-3LI4TRUR.js';
114
114
  export { ImageUpload } from './chunk-K6Y6CDEZ.js';
@@ -128,31 +128,31 @@ export { ErrorBoundary } from './chunk-IJ7KLXUZ.js';
128
128
  export { Eyebrow } from './chunk-RK4XPHVG.js';
129
129
  export { FactList } from './chunk-SNQ7PH3D.js';
130
130
  export { FileDrop, FilePickButton, droppedFiles, pickedFiles } from './chunk-KQWJWTED.js';
131
- export { Divider } from './chunk-6KWNXIDE.js';
132
131
  export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from './chunk-2HBY3FOZ.js';
132
+ export { Divider } from './chunk-6KWNXIDE.js';
133
133
  export { DockColumn } from './chunk-5JPOFAVN.js';
134
134
  export { DownloadButton } from './chunk-EHFQMY3B.js';
135
135
  export { downloadBlob, downloadText, safeFilename, useDownload } from './chunk-YNRKVY7X.js';
136
136
  export { EditingStatus } from './chunk-OU6ZSWEJ.js';
137
137
  export { EMOJI_GROUPS, EMOJI_PICKER_COLUMNS, EMOJI_PICKER_LABELS, EmojiPicker, emojiName, searchEmoji } from './chunk-HZPUMGQV.js';
138
+ export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from './chunk-C2HIMGFI.js';
139
+ export { DELIVERY_RECEIPT_LABELS, DeliveryReceipt } from './chunk-NGJWRR7E.js';
138
140
  export { DEEP_WORK_CARD_LABELS, DEEP_WORK_STATES, DEEP_WORK_STATE_LABELS, DeepWorkCard } from './chunk-5U6XAUYM.js';
139
141
  export { STEP_STATES, STEP_STATE_LABELS, StepList, StepStateMark, Stepper, stepDetailPieces } from './chunk-KUMHQY2B.js';
140
142
  export { REFUSAL_STRIP_LABELS, ReceiptStrip, RefusalStrip } from './chunk-ZWCK4N4L.js';
141
143
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from './chunk-RQFRRPV6.js';
142
- export { DELIVERY_RECEIPT_LABELS, DeliveryReceipt } from './chunk-NGJWRR7E.js';
143
144
  export { DescriptionList, DescriptionListItem } from './chunk-LH4OF7FI.js';
144
- export { CursorFlag } from './chunk-MMCYH5LB.js';
145
- export { PresenceRing, presenceHueClass } from './chunk-EFX2YC5T.js';
146
145
  export { DIFF_SUMMARY_LABELS, DIFF_VIEW_LABELS, DiffSummary, DiffView, MAX_DIFF_LINES, collapseDiff, diffLines, diffStat, firstChangedLines, splitLines } from './chunk-AOFVXE6V.js';
147
146
  export { DirectoryList } from './chunk-5KTLQ436.js';
148
147
  export { ContrastHelp } from './chunk-QDGHOGSW.js';
149
148
  export { ContrastBadge, ContrastLevelTag, contrastLevel, contrastRatio, formatContrastRatio } from './chunk-EW4ULFHK.js';
149
+ export { CursorFlag } from './chunk-MMCYH5LB.js';
150
+ export { PresenceRing, presenceHueClass } from './chunk-EFX2YC5T.js';
150
151
  export { ChooserList, ColumnChooser, DATA_GRID_ICON_TRACK, DataGrid, columnChoicesOf, countDataGridRows, fitGridColumns, nextGridSort, parseGridSort, useAnyDataGridDriving, useDataGridDriving } from './chunk-5MOBCUNA.js';
151
152
  export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-LGPTZGHJ.js';
152
153
  export { PageHeader } from './chunk-FPDIHEM4.js';
153
154
  export { FILTER_PILL_LABELS, FILTER_PILL_WORDS_CLASS, FilterPill, filterPillSentence } from './chunk-K4LZXSKZ.js';
154
155
  export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-7K6LVM5I.js';
155
- export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from './chunk-C2HIMGFI.js';
156
156
  export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-2NNMBEJV.js';
157
157
  export { Combobox } from './chunk-AQCWYVE3.js';
158
158
  export { CommandPalette } from './chunk-AVWEXCJ4.js';
@@ -161,15 +161,15 @@ export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, use
161
161
  export { COMMENT_THREAD_LABELS, CommentThread } from './chunk-OSH55AKI.js';
162
162
  export { CompactNav, CompactNavGroup, CompactNavItem, CompactNavSeparator, groupBadge, placeFlyout } from './chunk-QWRAWKB2.js';
163
163
  export { LockedLabel } from './chunk-TEV5REGB.js';
164
- export { ConfirmField, confirmMatches } from './chunk-7OEEDQSJ.js';
165
- export { InlineCode } from './chunk-PLL7ZJHY.js';
164
+ export { ConfirmField, confirmMatches } from './chunk-OGOLTPFQ.js';
165
+ export { InlineCode } from './chunk-OBFEL5KH.js';
166
166
  export { CONFLICT_NOTE_LABELS, ConflictNote } from './chunk-B3PK2LND.js';
167
167
  export { Container } from './chunk-HJO4WCH6.js';
168
168
  export { CHIP_FIELD_LABELS, ChipField } from './chunk-LPQLJHLI.js';
169
+ export { ChoiceButtons } from './chunk-RVSNBUIU.js';
170
+ export { ChoiceList } from './chunk-XU7RQNT6.js';
169
171
  export { ChoiceCards } from './chunk-CFCJ3P7B.js';
170
172
  export { CodeBlock } from './chunk-4ME4J3YY.js';
171
- export { ChoiceList } from './chunk-XU7RQNT6.js';
172
- export { ChoiceButtons } from './chunk-RVSNBUIU.js';
173
173
  export { ColorChip } from './chunk-C6T4VBEY.js';
174
174
  export { ColorField } from './chunk-GNJXUNEU.js';
175
175
  export { ColorSwatch } from './chunk-6EZX26BD.js';
@@ -177,13 +177,17 @@ export { CopyButton, Copyable } from './chunk-ETNQYT5O.js';
177
177
  export { useClipboard, writeClipboard } from './chunk-STJ7QBC3.js';
178
178
  export { useOutcome } from './chunk-DTIW4CHZ.js';
179
179
  import './chunk-3L5NHASN.js';
180
+ export { ActivityStrip, BarList, ChartEmpty, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Histogram, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, histogramTicks, niceScale, useChartHover } from './chunk-YWVT7B6N.js';
180
181
  export { ChatDay, ChatDayPill } from './chunk-ONHYFU7D.js';
181
182
  export { ChatDivider } from './chunk-K774LUN3.js';
182
- export { ActivityStrip, BarList, ChartEmpty, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Histogram, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, histogramTicks, niceScale, useChartHover } from './chunk-YWVT7B6N.js';
183
183
  export { CHAT_MESSAGE_CLASS, CHAT_MESSAGE_FAILURE_LABELS, ChatMessage, ChatMessageFailure } from './chunk-IUBOLGHG.js';
184
184
  export { CHAT_THREAD_FOLLOW_WITHIN, CHAT_THREAD_LABELS, ChatThread } from './chunk-VONEKR3J.js';
185
185
  export { CheckGrid } from './chunk-WSHKY7SH.js';
186
+ export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from './chunk-2SVQBQAD.js';
187
+ export { Note } from './chunk-5SZGKSGL.js';
186
188
  export { CanvasSchematic } from './chunk-NBWNLYWZ.js';
189
+ export { CanvasToolbar, toolForKey } from './chunk-DRFOTWJE.js';
190
+ export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-NXFTCPF6.js';
187
191
  export { CatalogTile } from './chunk-JKEGFDBG.js';
188
192
  export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged } from './chunk-U4JZ2EXG.js';
189
193
  export { DIFF_LIST_LABELS, DiffList } from './chunk-LR4IWUWQ.js';
@@ -202,13 +206,9 @@ import './chunk-6C7GQOBV.js';
202
206
  export { StatusCard } from './chunk-4BEMS6Q7.js';
203
207
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from './chunk-EE3DJMSQ.js';
204
208
  export { Callout } from './chunk-BPCY7ZID.js';
205
- export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from './chunk-2SVQBQAD.js';
206
- export { Note } from './chunk-5SZGKSGL.js';
207
- export { CanvasToolbar, toolForKey } from './chunk-DRFOTWJE.js';
208
- export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-NXFTCPF6.js';
209
209
  export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from './chunk-NCUSI4ZU.js';
210
210
  import './chunk-LM3ISVJA.js';
211
- export { AsideLayout } from './chunk-QOXLP5PE.js';
211
+ export { ASIDE_LAYOUT_SPLIT_REM, AsideLayout } from './chunk-7UQQEUOT.js';
212
212
  export { ATTACHMENT_CHIP_LABELS, AttachmentChip } from './chunk-MTDISM7I.js';
213
213
  export { Tag } from './chunk-SJ3EUCFD.js';
214
214
  export { ATTENTION_LIST_LABELS, AttentionList } from './chunk-AELKT34H.js';
@@ -239,8 +239,8 @@ export { afterMotion, releaseFocus, runningMotion, usePresence } from './chunk-P
239
239
  import './chunk-JLOESTT2.js';
240
240
  export { ArrangeBoard } from './chunk-QO7QEQKV.js';
241
241
  export { ArrangeFrame, useGridResize } from './chunk-I4IO56EY.js';
242
- export { ArrangeGroup } from './chunk-7U6PK242.js';
243
242
  export { ArrangeGrid } from './chunk-QBA5B2Z5.js';
243
+ export { ArrangeGroup } from './chunk-7U6PK242.js';
244
244
  export { ArrangeList, DEFAULT_ARRANGE_LABELS } from './chunk-7ZJ662U4.js';
245
245
  export { Switch } from './chunk-3N3XK2G5.js';
246
246
  export { DEFAULT_REORDER_LABELS, moveKey, useReorder, useReorderLists } from './chunk-BVML4UVB.js';
@@ -263,9 +263,10 @@ export { ACCESS_DENIED_REASONS, AccessDeniedCard } from './chunk-QTMUKRTN.js';
263
263
  export { EmptyState } from './chunk-PPUR46MK.js';
264
264
  export { Accordion, AccordionItem } from './chunk-E2QPZGLG.js';
265
265
  export { ACTION_CARD_GROUND, ActionCard, ActionCardRow } from './chunk-OM2LABPS.js';
266
- export { ADD_PILL_MS, AddPill } from './chunk-CVKANYHD.js';
267
- export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from './chunk-HSBRFE4Y.js';
268
- export { Timeline, TimelineItem } from './chunk-4MJN2KN6.js';
266
+ export { ActivityLine } from './chunk-V7N5XWZ6.js';
267
+ export { ThinkingIndicator } from './chunk-3OIVYHAA.js';
268
+ export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from './chunk-BHVEHAAX.js';
269
+ export { Timeline, TimelineItem } from './chunk-ZDJQQ4LU.js';
269
270
  export { Section } from './chunk-WFCWPXJN.js';
270
271
  export { COMPOSER_COUNTER_AT, Composer } from './chunk-FXGQWLZ6.js';
271
272
  export { Disclosure } from './chunk-NAHA62WD.js';
@@ -286,8 +287,7 @@ export { IconButton, IconButtonLink } from './chunk-UAUP6XGK.js';
286
287
  export { DisclosureAnatomy } from './chunk-ULYHDP7U.js';
287
288
  export { Count } from './chunk-D2GT3CR4.js';
288
289
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from './chunk-PQADV6P6.js';
289
- export { ActivityLine } from './chunk-V7N5XWZ6.js';
290
- export { ThinkingIndicator } from './chunk-3OIVYHAA.js';
290
+ export { ADD_PILL_MS, AddPill } from './chunk-CVKANYHD.js';
291
291
  export { Announcer, announce, useAnnouncer } from './chunk-2G355KDJ.js';
292
292
  export { VisuallyHidden } from './chunk-UT6CW3C7.js';
293
293
  export { cx } from './chunk-ODEQTPFM.js';
package/dist/styles.css CHANGED
@@ -4938,10 +4938,10 @@ a.crewlet-make-row__item:active {
4938
4938
  }
4939
4939
 
4940
4940
 
4941
- /* AsideLayout-AA3DEJKN.css */
4941
+ /* AsideLayout-SJO7VLPQ.css */
4942
4942
  /*
4943
4943
  * AsideLayout: a main column with an aside beside it from 56rem of its own
4944
- * width, and after it below that (AsideLayout.tsx).
4944
+ * width (44rem in a pane), and after it below that (AsideLayout.tsx).
4945
4945
  */
4946
4946
 
4947
4947
  .crewlet-aside-layout {
@@ -4973,6 +4973,8 @@ a.crewlet-make-row__item:active {
4973
4973
  midway: the aside takes the gap's own step under it, where the stack's
4974
4974
  smaller step left it 32px under the main column and 24px over the aside. */
4975
4975
  .crewlet-aside-layout__aside {
4976
+ --crewlet-aside-layout-stick: static;
4977
+
4976
4978
  padding-top: var(--crewlet-aside-layout-gap);
4977
4979
  border-top: 1px solid var(--color-border-default);
4978
4980
  }
@@ -4984,11 +4986,53 @@ a.crewlet-make-row__item:active {
4984
4986
  }
4985
4987
 
4986
4988
  .crewlet-aside-layout__aside {
4989
+ --crewlet-aside-layout-stick: sticky;
4990
+
4991
+ padding-top: 0;
4992
+ border-top: 0;
4993
+ }
4994
+ }
4995
+
4996
+ /* A PANE (`fit="pane"`) is narrower than a page by the list beside it: it
4997
+ splits sooner, at a narrower aside, one step apart. */
4998
+ .crewlet-aside-layout--pane .crewlet-aside-layout__columns {
4999
+ --crewlet-aside-layout-gap: var(--spacing-6);
5000
+ }
5001
+
5002
+ @container (min-width: 44rem) {
5003
+ .crewlet-aside-layout--pane .crewlet-aside-layout__columns {
5004
+ grid-template-columns: minmax(0, 1fr) var(--crewlet-aside-layout-aside, 16rem);
5005
+ gap: var(--spacing-4);
5006
+ }
5007
+
5008
+ .crewlet-aside-layout--pane .crewlet-aside-layout__aside {
5009
+ --crewlet-aside-layout-stick: sticky;
5010
+
4987
5011
  padding-top: 0;
4988
5012
  border-top: 0;
4989
5013
  }
4990
5014
  }
4991
5015
 
5016
+ /* STICKY (`sticky`): the aside's content as one stack, as tall as itself, so
5017
+ it has the aside's length to stick along. Only a split sets the aside's
5018
+ `--crewlet-aside-layout-stick`, so it sticks beside the main column alone. */
5019
+ .crewlet-aside-layout--sticky > .crewlet-aside-layout__columns {
5020
+ align-items: stretch;
5021
+ }
5022
+
5023
+ .crewlet-aside-layout__stick {
5024
+ position: var(--crewlet-aside-layout-stick);
5025
+ top: 0;
5026
+ display: flex;
5027
+ flex-direction: column;
5028
+ gap: var(--spacing-6);
5029
+ }
5030
+
5031
+ /* ALONE (no aside), the main column is the whole width at every size. */
5032
+ .crewlet-aside-layout--alone > .crewlet-aside-layout__columns {
5033
+ grid-template-columns: minmax(0, 1fr);
5034
+ }
5035
+
4992
5036
 
4993
5037
  /* AttachmentChip-RZ6ZCB43.css */
4994
5038
  /*
@@ -23317,7 +23361,7 @@ a.crewlet-icon-btn {
23317
23361
  }
23318
23362
 
23319
23363
 
23320
- /* InlineCode-2ZXFKTKA.css */
23364
+ /* InlineCode-M7FAL5J4.css */
23321
23365
  /*
23322
23366
  * One identifier inside a sentence: a mono chip on the inset surface.
23323
23367
  *
@@ -23355,13 +23399,16 @@ a.crewlet-icon-btn {
23355
23399
  }
23356
23400
 
23357
23401
  /*
23358
- * A `${NAME}` pointer. It is one token a reader copies, so it keeps its braces
23359
- * together. THE SAME INK AS ANY OTHER CHIP: a pointer is the name of a sealed
23360
- * entry, and drawn a step quieter than the identifiers around it, it read as
23361
- * decoration rather than as the thing an operator has to type back.
23402
+ * A `${NAME}` pointer. It is one token a reader copies, so `${` and `}` are
23403
+ * held to the name's first and last characters. THE SAME INK AS ANY OTHER
23404
+ * CHIP: drawn a step quieter, it read as decoration rather than as the thing
23405
+ * an operator has to type back.
23406
+ *
23407
+ * THE NAME ITSELF MAY BREAK. Held whole, a long name ran past a dialog at a
23408
+ * phone's width. It offers no break of its own, so the chip still moves to
23409
+ * the next line whole where it fits there, and breaks only where it does not.
23362
23410
  */
23363
- .crewlet-inline-code--reference {
23364
- overflow-wrap: normal;
23411
+ .crewlet-inline-code__end {
23365
23412
  white-space: nowrap;
23366
23413
  }
23367
23414
 
@@ -44683,7 +44730,7 @@ svg.crewlet-time-window__tick {
44683
44730
  }
44684
44731
 
44685
44732
 
44686
- /* Timeline-PGIZIODK.css */
44733
+ /* Timeline-LTBM3TSZ.css */
44687
44734
  /*
44688
44735
  * A numbered ledger: a node per step, a rail bracketing that step's content.
44689
44736
  *
@@ -44805,6 +44852,54 @@ svg.crewlet-time-window__tick {
44805
44852
  flex-direction: column;
44806
44853
  gap: var(--spacing-2);
44807
44854
  min-width: 0;
44855
+ /* A long handle or path breaks inside the column rather than running past
44856
+ the ledger, which at a phone's width is past the dialog holding it. */
44857
+ overflow-wrap: anywhere;
44858
+ }
44859
+
44860
+ /*
44861
+ * COMPACT: a dialog's handful of short sentences rather than a run's blocks.
44862
+ * The pad between steps still beats the gap inside one, so a step's note
44863
+ * stays with its own step.
44864
+ */
44865
+ .crewlet-timeline--compact .crewlet-timeline__item {
44866
+ padding-block: var(--spacing-1);
44867
+ }
44868
+
44869
+ .crewlet-timeline--compact .crewlet-timeline__body {
44870
+ gap: var(--spacing-1);
44871
+ }
44872
+
44873
+ /*
44874
+ * A HUE: whose steps these are, in the colour their avatar wears. Each hue
44875
+ * pairs its fill with its own ink, which the palette gate measures as a pair.
44876
+ */
44877
+ .crewlet-timeline--hue-purple { --crewlet-timeline-hue-fill: var(--color-node-purple-fill); --crewlet-timeline-hue-line: var(--color-node-purple-line); --crewlet-timeline-hue-ink: var(--color-node-purple-ink); }
44878
+ .crewlet-timeline--hue-cyan { --crewlet-timeline-hue-fill: var(--color-node-cyan-fill); --crewlet-timeline-hue-line: var(--color-node-cyan-line); --crewlet-timeline-hue-ink: var(--color-node-cyan-ink); }
44879
+ .crewlet-timeline--hue-green { --crewlet-timeline-hue-fill: var(--color-node-green-fill); --crewlet-timeline-hue-line: var(--color-node-green-line); --crewlet-timeline-hue-ink: var(--color-node-green-ink); }
44880
+ .crewlet-timeline--hue-amber { --crewlet-timeline-hue-fill: var(--color-node-amber-fill); --crewlet-timeline-hue-line: var(--color-node-amber-line); --crewlet-timeline-hue-ink: var(--color-node-amber-ink); }
44881
+ .crewlet-timeline--hue-rose { --crewlet-timeline-hue-fill: var(--color-node-rose-fill); --crewlet-timeline-hue-line: var(--color-node-rose-line); --crewlet-timeline-hue-ink: var(--color-node-rose-ink); }
44882
+ .crewlet-timeline--hue-blue { --crewlet-timeline-hue-fill: var(--color-node-blue-fill); --crewlet-timeline-hue-line: var(--color-node-blue-line); --crewlet-timeline-hue-ink: var(--color-node-blue-ink); }
44883
+
44884
+ /*
44885
+ * ONLY A DEFAULT STEP TAKES THE HUE. A failed or destructive step and the
44886
+ * step in flight keep their own node, so the one step a reader scans for
44887
+ * still stands out among an agent's others.
44888
+ */
44889
+ .crewlet-timeline--hued .crewlet-timeline__item--default .crewlet-timeline__node {
44890
+ border-color: var(--crewlet-timeline-hue-line);
44891
+ background: var(--crewlet-timeline-hue-fill);
44892
+ color: var(--crewlet-timeline-hue-ink);
44893
+ }
44894
+
44895
+ .crewlet-timeline--hued .crewlet-timeline__item--default .crewlet-timeline__rail::after {
44896
+ background: var(--crewlet-timeline-hue-line);
44897
+ }
44898
+
44899
+ /* In a hued ledger a danger step's rail is drawn in its node's line too, so a
44900
+ step that takes access away is marked along its whole height. */
44901
+ .crewlet-timeline--hued .crewlet-timeline__item--danger .crewlet-timeline__rail::after {
44902
+ background: var(--color-feedback-danger-line);
44808
44903
  }
44809
44904
 
44810
44905
  /*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.94.0",
3
+ "version": "0.96.0",
4
4
  "description": "Crewlet shared React components built on @crewlethq/tokens and @crewlethq/icons.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -42,8 +42,8 @@
42
42
  "clean": "rm -rf dist src/generated"
43
43
  },
44
44
  "dependencies": {
45
- "@crewlethq/icons": "0.94.0",
46
- "@crewlethq/tokens": "0.94.0",
45
+ "@crewlethq/icons": "0.96.0",
46
+ "@crewlethq/tokens": "0.96.0",
47
47
  "prosemirror-commands": "1.7.2",
48
48
  "prosemirror-gapcursor": "1.4.1",
49
49
  "prosemirror-history": "1.5.1",
@@ -1,49 +0,0 @@
1
- /*
2
- * AsideLayout: a main column with an aside beside it from 56rem of its own
3
- * width, and after it below that (AsideLayout.tsx).
4
- */
5
-
6
- .crewlet-aside-layout {
7
- container-type: inline-size;
8
- min-width: 0;
9
- }
10
-
11
- .crewlet-aside-layout__columns {
12
- --crewlet-aside-layout-gap: var(--spacing-7);
13
-
14
- display: grid;
15
- grid-template-columns: minmax(0, 1fr);
16
- align-items: start;
17
- gap: var(--crewlet-aside-layout-gap);
18
- }
19
-
20
- /* EACH COLUMN IS A STACK one step apart, so the blocks in it stand apart
21
- evenly without each carrying a margin of its own. */
22
- .crewlet-aside-layout__main,
23
- .crewlet-aside-layout__aside {
24
- display: flex;
25
- flex-direction: column;
26
- gap: var(--spacing-6);
27
- min-width: 0;
28
- }
29
-
30
- /* FOLLOWING THE MAIN COLUMN, the aside is set off by one hairline, so its
31
- facts read as about the page rather than as more of it. The hairline sits
32
- midway: the aside takes the gap's own step under it, where the stack's
33
- smaller step left it 32px under the main column and 24px over the aside. */
34
- .crewlet-aside-layout__aside {
35
- padding-top: var(--crewlet-aside-layout-gap);
36
- border-top: 1px solid var(--color-border-default);
37
- }
38
-
39
- @container (min-width: 56rem) {
40
- .crewlet-aside-layout__columns {
41
- grid-template-columns: minmax(0, 1fr) var(--crewlet-aside-layout-aside, 18rem);
42
- gap: var(--spacing-8);
43
- }
44
-
45
- .crewlet-aside-layout__aside {
46
- padding-top: 0;
47
- border-top: 0;
48
- }
49
- }
@@ -1,31 +0,0 @@
1
- import { cx } from './chunk-ODEQTPFM.js';
2
- import './InlineCode-2ZXFKTKA.css';
3
- import { jsx } from 'react/jsx-runtime';
4
-
5
- function InlineCode({
6
- variant = "default",
7
- tone = "default",
8
- truncate = false,
9
- whole = false,
10
- className,
11
- children,
12
- ...rest
13
- }) {
14
- return /* @__PURE__ */ jsx(
15
- "code",
16
- {
17
- ...rest,
18
- className: cx(
19
- "crewlet-inline-code",
20
- `crewlet-inline-code--${variant}`,
21
- tone === "inherit" && "crewlet-inline-code--inherit",
22
- truncate && "crewlet-inline-code--truncate",
23
- whole && "crewlet-inline-code--whole",
24
- className
25
- ),
26
- children
27
- }
28
- );
29
- }
30
-
31
- export { InlineCode };
@@ -1,12 +0,0 @@
1
- import { cx } from './chunk-ODEQTPFM.js';
2
- import './AsideLayout-AA3DEJKN.css';
3
- import { jsx, jsxs } from 'react/jsx-runtime';
4
-
5
- function AsideLayout({ children, aside, asideLabel, className, ...rest }) {
6
- return /* @__PURE__ */ jsx("div", { ...rest, className: cx("crewlet-aside-layout", className), children: /* @__PURE__ */ jsxs("div", { className: "crewlet-aside-layout__columns", children: [
7
- /* @__PURE__ */ jsx("div", { className: "crewlet-aside-layout__main", children }),
8
- /* @__PURE__ */ jsx("aside", { className: "crewlet-aside-layout__aside", "aria-label": asideLabel, children: aside })
9
- ] }) });
10
- }
11
-
12
- export { AsideLayout };
@@ -1,8 +1,8 @@
1
1
  import { TreeGrid } from './chunk-ZDWAIVWL.js';
2
2
  import { createTreeModel, treeParent } from './chunk-MY374UUD.js';
3
3
  import { OrgLabel } from './chunk-5YXMKZUA.js';
4
- import { AddPill } from './chunk-CVKANYHD.js';
5
4
  import { IconButton } from './chunk-UAUP6XGK.js';
5
+ import { AddPill } from './chunk-CVKANYHD.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
7
  import './OrgTable-JZSYTUIK.css';
8
8
  import { useMemo, useRef, useImperativeHandle, useCallback } from 'react';