@crewlethq/ui 0.30.0 → 0.31.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/README.md CHANGED
@@ -204,6 +204,10 @@ places:
204
204
  - A surface that pans or zooms dispatches `LAYER_REPOSITION_EVENT` on its host
205
205
  when the content beneath it moves, and every panel anchored inside follows.
206
206
 
207
+ ## Changes in 0.31.0
208
+
209
+ **`ArtifactBar` carries an editing state**: a `status` slot said before the kind's tools (an `EditingStatus` while a doc is edited), never folded away, and a tool's `emphasis: 'primary'`, drawn as the primary button with its word kept at every width, for the one action the state turns on, such as Save.
210
+
207
211
  ## Changes in 0.30.0
208
212
 
209
213
  **`RichEditor` edits Markdown in place, as the document it reads as.** The editable element is set by `Document`, so a page looks the same while it is edited as when it is read, and there is no separate preview. It is built on ProseMirror and loaded lazily: the component is a shell that fetches the editor's code with `import()` the first time one is drawn, so a screen that only reads pays for none of it, and `preloadRichEditor()` starts that fetch from a press that is about to open an editor.
@@ -33,6 +33,12 @@ export interface ArtifactBarTool {
33
33
  * or a kind's primary action such as a doc's Edit.
34
34
  */
35
35
  labelled?: boolean | undefined;
36
+ /**
37
+ * `primary`: the one action a kind's state turns on, such as Save while a
38
+ * doc is edited. Drawn as the primary button, labelled, and its word kept at
39
+ * every width, because a glyph alone does not say what a press commits.
40
+ */
41
+ emphasis?: 'primary' | undefined;
36
42
  }
37
43
  /** The ways a kind draws itself, as one choice: a deck's Edit, Grid and Present. */
38
44
  export interface ArtifactBarModes {
@@ -86,6 +92,12 @@ export interface ArtifactBarProps {
86
92
  modes?: ArtifactBarModes | undefined;
87
93
  /** Who else is here, such as a presence stack. Folded away first on a narrower bar. */
88
94
  presence?: ReactNode;
95
+ /**
96
+ * What the kind is doing now, said before its tools: an `EditingStatus`
97
+ * while a doc is edited. Never folded away; a status that has words to
98
+ * spare folds them itself.
99
+ */
100
+ status?: ReactNode;
89
101
  /** The kind's own controls, before the panels: a doc's Edit. */
90
102
  kindTools?: readonly ArtifactBarTool[] | undefined;
91
103
  /** The panels and actions every artifact has: details, history, people, share. */
@@ -121,7 +133,7 @@ export interface ArtifactBarProps {
121
133
  * the stylesheet shows one, so no control is ever in two places a reader can
122
134
  * see at once and nothing is measured in script.
123
135
  */
124
- export declare function ArtifactBar({ title, kind, icon, kindLabel, back, start, onRename, renaming, onRenamingChange, version, modes, presence, kindTools, tools, menu, as, headingLevel, pending, labels, className, }: ArtifactBarProps): import("react").JSX.Element;
136
+ export declare function ArtifactBar({ title, kind, icon, kindLabel, back, start, onRename, renaming, onRenamingChange, version, modes, presence, status, kindTools, tools, menu, as, headingLevel, pending, labels, className, }: ArtifactBarProps): import("react").JSX.Element;
125
137
  export interface ArtifactVersionChipProps {
126
138
  /** The version on show. */
127
139
  version: number;
@@ -1,4 +1,4 @@
1
- export { ARTIFACT_BAR_LABELS, ArtifactBar, ArtifactVersionChip } from '../chunk-QMBP23BL.js';
1
+ export { ARTIFACT_BAR_LABELS, ArtifactBar, ArtifactVersionChip } from '../chunk-P4BOXB6E.js';
2
2
  import '../chunk-FQCLKD7U.js';
3
3
  import '../chunk-SMBKXWML.js';
4
4
  import '../chunk-QWOPX2MN.js';
@@ -192,6 +192,13 @@
192
192
  margin-inline-start: var(--spacing-1);
193
193
  }
194
194
 
195
+ .crewlet-artifact-bar__status {
196
+ display: inline-flex;
197
+ align-items: center;
198
+ min-width: 0;
199
+ margin-inline-end: var(--spacing-2);
200
+ }
201
+
195
202
  .crewlet-artifact-bar__presence {
196
203
  display: inline-flex;
197
204
  align-items: center;
@@ -1,8 +1,8 @@
1
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-RODMM35O.js';
1
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-UVJ5FF5V.js';
2
2
  import '../chunk-HOXGBLEY.js';
3
3
  import '../chunk-PGRPNDWM.js';
4
- import '../chunk-Y5NQ2LMS.js';
5
4
  import '../chunk-EBJREOKS.js';
5
+ import '../chunk-Y5NQ2LMS.js';
6
6
  import '../chunk-STJ7QBC3.js';
7
7
  import '../chunk-DTIW4CHZ.js';
8
8
  import '../chunk-I3KKZ2O3.js';
@@ -7,7 +7,7 @@ import { Button } from './chunk-OG6CL3EB.js';
7
7
  import { IconButton } from './chunk-4FQT6ZAY.js';
8
8
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
9
9
  import { cx } from './chunk-ODEQTPFM.js';
10
- import './ArtifactBar-IBWB5POL.css';
10
+ import './ArtifactBar-MLMJHWY6.css';
11
11
  import { useId, useState, useRef, useEffect } from 'react';
12
12
  import { ChevronLeftGlyph, EllipsisGlyph, ChevronDownGlyph } from '@crewlethq/icons/glyphs';
13
13
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -31,6 +31,7 @@ function ArtifactBar({
31
31
  version,
32
32
  modes,
33
33
  presence,
34
+ status,
34
35
  kindTools = [],
35
36
  tools = [],
36
37
  menu = [],
@@ -109,6 +110,7 @@ function ArtifactBar({
109
110
  }
110
111
  ) }) : null,
111
112
  /* @__PURE__ */ jsxs("div", { className: "crewlet-artifact-bar__end", children: [
113
+ status ? /* @__PURE__ */ jsx("span", { className: "crewlet-artifact-bar__status", children: status }) : null,
112
114
  presence ? /* @__PURE__ */ jsx("span", { className: "crewlet-artifact-bar__presence", children: presence }) : null,
113
115
  kindTools.some((t) => !t.labelled) ? /* @__PURE__ */ jsx("span", { className: "crewlet-artifact-bar__tools crewlet-artifact-bar__wide", children: kindTools.filter((t) => !t.labelled).map((tool) => /* @__PURE__ */ jsx(ToolButton, { tool, apple }, tool.key)) }) : null,
114
116
  tools.some((t) => !t.labelled) ? /* @__PURE__ */ jsxs("span", { className: "crewlet-artifact-bar__tools crewlet-artifact-bar__wide", children: [
@@ -165,6 +167,20 @@ function ToolButton({ tool, apple }) {
165
167
  }
166
168
  function LabelledTool({ tool, apple }) {
167
169
  const shortcut = tool.keys ? ariaKeys(tool.keys, apple) : void 0;
170
+ if (tool.emphasis === "primary") {
171
+ return /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(Tip, { tool, apple }), placement: "bottom", disabled: !tool.keys, children: /* @__PURE__ */ jsx(
172
+ Button,
173
+ {
174
+ size: "small",
175
+ variant: "primary",
176
+ leadingIcon: tool.icon,
177
+ disabledReason: tool.disabledReason,
178
+ "aria-keyshortcuts": shortcut,
179
+ onClick: tool.onSelect,
180
+ children: tool.label
181
+ }
182
+ ) });
183
+ }
168
184
  return /* @__PURE__ */ jsxs(Fragment, { children: [
169
185
  /* @__PURE__ */ jsx("span", { className: "crewlet-artifact-bar__roomy", children: /* @__PURE__ */ jsx(Tooltip, { content: /* @__PURE__ */ jsx(Tip, { tool, apple }), placement: "bottom", disabled: !tool.keys, children: /* @__PURE__ */ jsx(
170
186
  Button,
@@ -1,7 +1,7 @@
1
1
  import '../chunk-OC46246T.js';
2
2
  export { WidgetFrame } from '../chunk-AAOH2P6Y.js';
3
3
  export { ElementToPngError, elementToPng, serializeElement, toCsv } from '../chunk-UOR7TOAU.js';
4
- export { ThemeToggle } from '../chunk-NP2C4Y4E.js';
4
+ export { ToastProvider, Toaster, useToast } from '../chunk-QH3AKP2N.js';
5
5
  export { TreeCanvas } from '../chunk-S6VG5ZFZ.js';
6
6
  export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-EHQTPVV4.js';
7
7
  export { VersionTimeline } from '../chunk-W4XYY73O.js';
@@ -10,26 +10,26 @@ export { Text } from '../chunk-IKBK4A5O.js';
10
10
  export { ThemeGallery } from '../chunk-C2FRTWKO.js';
11
11
  export { ThemeSwatch } from '../chunk-MNFU2RNT.js';
12
12
  export { DensitySwitcher, ThemeSwitcher } from '../chunk-WJDQ7XQA.js';
13
+ export { ThemeToggle } from '../chunk-NP2C4Y4E.js';
13
14
  export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-Z24ZUSTX.js';
14
- export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-UZ6MA2V6.js';
15
15
  export { Timeline, TimelineItem } from '../chunk-AUQPBL4O.js';
16
- export { ToastProvider, Toaster, useToast } from '../chunk-QH3AKP2N.js';
17
- export { SlideGrid } from '../chunk-3C3BRIMY.js';
16
+ export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-UZ6MA2V6.js';
17
+ export { Stepper } from '../chunk-5QWIJSQM.js';
18
18
  export { Switcher } from '../chunk-HVNTQ36V.js';
19
19
  export { Table } from '../chunk-V2N3BMOT.js';
20
20
  export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from '../chunk-LFNUH4GY.js';
21
21
  export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-ALMSY7RL.js';
22
22
  export { SlideFilmstrip } from '../chunk-LR5QTFOE.js';
23
+ export { SlideGrid } from '../chunk-3C3BRIMY.js';
23
24
  export { StatCard } from '../chunk-IKB6HFGK.js';
24
25
  export { StatGroup } from '../chunk-JXRI5YD2.js';
25
- export { Stepper } from '../chunk-5QWIJSQM.js';
26
+ export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
26
27
  export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from '../chunk-JQLTG4KH.js';
27
28
  export { Select } from '../chunk-FC4YTTFJ.js';
28
29
  export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-CT4EZF62.js';
29
30
  export { TagGroup } from '../chunk-O2EGEONV.js';
30
- export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
31
- export { matchesShortcut, useShortcut } from '../chunk-2FPENTCF.js';
32
31
  export { NavGroup, NavItem, SidebarNav } from '../chunk-UCCC7YVZ.js';
32
+ export { matchesShortcut, useShortcut } from '../chunk-2FPENTCF.js';
33
33
  export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from '../chunk-ZAJHGDAW.js';
34
34
  export { RichEditor, preloadRichEditor } from '../chunk-VOX3YRFO.js';
35
35
  export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-A4E5YLXO.js';
@@ -57,8 +57,8 @@ import '../chunk-CENOOTAV.js';
57
57
  export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-RWA4H2TV.js';
58
58
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from '../chunk-UGNUUVRI.js';
59
59
  export { NewItemsNotice } from '../chunk-PXU6HOZB.js';
60
- export { OrgLabel } from '../chunk-AKEZ3G5V.js';
61
60
  export { FactLine, ObjectHeader, SetByLine } from '../chunk-VGE3G3T4.js';
61
+ export { OrgLabel } from '../chunk-AKEZ3G5V.js';
62
62
  export { Link } from '../chunk-FBSEJO2C.js';
63
63
  export { LinkInterstitial, openExternal } from '../chunk-ZR5VN5IV.js';
64
64
  export { List, ListItem } from '../chunk-DS2C73RJ.js';
@@ -66,20 +66,19 @@ export { ListInput } from '../chunk-Z6VW6CXX.js';
66
66
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from '../chunk-5XACKNYR.js';
67
67
  export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from '../chunk-SKOYC2CF.js';
68
68
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-LZHLSQYK.js';
69
- export { ImageUpload } from '../chunk-YDBC4DNW.js';
70
- export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from '../chunk-XYCADWZN.js';
71
- export { AutoGrid, Inline, Spacer, Stack } from '../chunk-ZAC7SKUN.js';
72
- export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from '../chunk-5YLON2PW.js';
73
- export { FollowBanner } from '../chunk-LDJ3J4TQ.js';
74
69
  export { DEFAULT_FRAME_THEME, EXTERNAL_URL_MAX, FRAME_BRIDGE, FRAME_MESSAGE, FRAME_ORIGIN_MODES, FRAME_SANDBOX_TOKENS, applyFrameTheme, checkFrameSandbox, externalUrl, frameFragment, frameOriginMatches, frameThemeMessage, httpOrigin, isFocusExit, isFrameNonce, negotiateBridge, parseFrameFragment, portTargetOrigin, readFrameHello, readFramePortMessage, readFrameTheme, readOpenLink } from '../chunk-F6V2PTN6.js';
75
70
  export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from '../chunk-ZXXDZJQN.js';
76
71
  export { useFullscreen } from '../chunk-XDTYBF2F.js';
77
- import '../chunk-FFMCMSJB.js';
72
+ export { AutoGrid, Inline, Spacer, Stack } from '../chunk-ZAC7SKUN.js';
73
+ export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from '../chunk-5YLON2PW.js';
74
+ export { FollowBanner } from '../chunk-LDJ3J4TQ.js';
78
75
  export { Highlight, highlightRanges, highlightTerms } from '../chunk-H6VKCIWV.js';
76
+ import '../chunk-FFMCMSJB.js';
79
77
  export { IconTile } from '../chunk-IXJHTFXG.js';
80
- export { DownloadButton } from '../chunk-BEHFTRMZ.js';
81
- export { downloadBlob, downloadText, safeFilename, useDownload } from '../chunk-IW55G7XG.js';
78
+ export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from '../chunk-XYCADWZN.js';
79
+ export { ImageUpload } from '../chunk-YDBC4DNW.js';
82
80
  export { EditingStatus } from '../chunk-3DPIU2Q7.js';
81
+ export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-UZ7ZUSLH.js';
83
82
  export { EntityChip } from '../chunk-4KWOKX2B.js';
84
83
  export { ErrorBoundary } from '../chunk-XX2VQE55.js';
85
84
  export { Eyebrow } from '../chunk-RK4XPHVG.js';
@@ -89,19 +88,21 @@ export { DIFF_LIST_LABELS, DiffList } from '../chunk-LFHCXZO5.js';
89
88
  export { DIFF_SUMMARY_LABELS, DIFF_VIEW_LABELS, DiffSummary, DiffView, MAX_DIFF_LINES, collapseDiff, diffLines, diffStat, firstChangedLines, splitLines } from '../chunk-BVWSLXTY.js';
90
89
  export { Disclosure } from '../chunk-MICH6QSJ.js';
91
90
  export { Divider } from '../chunk-6KWNXIDE.js';
92
- export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-UZ7ZUSLH.js';
91
+ export { DownloadButton } from '../chunk-BEHFTRMZ.js';
92
+ export { downloadBlob, downloadText, safeFilename, useDownload } from '../chunk-IW55G7XG.js';
93
93
  export { CONFLICT_NOTE_LABELS, ConflictNote } from '../chunk-UO7JZVCO.js';
94
94
  export { Container } from '../chunk-QVE4GJAT.js';
95
95
  export { CursorFlag } from '../chunk-3BYIWOTV.js';
96
96
  export { PresenceRing, presenceHueClass } from '../chunk-I6POAB4V.js';
97
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-RODMM35O.js';
97
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-UVJ5FF5V.js';
98
98
  export { PageHeader } from '../chunk-HOXGBLEY.js';
99
99
  export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-PGRPNDWM.js';
100
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-Y5NQ2LMS.js';
101
100
  export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-EBJREOKS.js';
102
101
  export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-ZB5O3ELS.js';
103
102
  export { Tag } from '../chunk-GFV4LJHH.js';
104
103
  export { StatusDot } from '../chunk-WIATRXEJ.js';
104
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-Y5NQ2LMS.js';
105
+ export { ChoiceButtons } from '../chunk-YSJC7AZC.js';
105
106
  export { ChoiceList } from '../chunk-QBXZLGK2.js';
106
107
  export { CodeBlock } from '../chunk-GDDE4UM7.js';
107
108
  export { CopyButton, Copyable } from '../chunk-W46LPU4R.js';
@@ -125,7 +126,6 @@ export { LONGTEXT_MAX_DEFAULT, RATING_MAX_CEILING, RATING_MAX_DEFAULT, SHEET_COL
125
126
  export { PRESENCE_ACTIVITIES, PRESENCE_HUES, PRESENCE_LABELS, assignPresenceHues, collapseSessions, joinNames, presenceLabels, presenceOrder } from '../chunk-Z7JYG5TF.js';
126
127
  import '../chunk-3L5NHASN.js';
127
128
  export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-77DRMDXR.js';
128
- export { ChoiceButtons } from '../chunk-YSJC7AZC.js';
129
129
  export { AuthLayout } from '../chunk-VDPJGP4Q.js';
130
130
  export { AvatarPicker } from '../chunk-TGYDROIB.js';
131
131
  export { HuePicker } from '../chunk-LIXSV5YI.js';
@@ -144,16 +144,16 @@ export { Switch } from '../chunk-A722MUNR.js';
144
144
  export { DEFAULT_REORDER_LABELS, moveKey, useReorder, useReorderLists } from '../chunk-XJ2QEBMM.js';
145
145
  export { Checkbox, CheckboxGroup } from '../chunk-7T42VQQT.js';
146
146
  export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-6QFAK2WV.js';
147
- export { ARTIFACT_BAR_LABELS, ArtifactBar, ArtifactVersionChip } from '../chunk-QMBP23BL.js';
147
+ export { ARTIFACT_BAR_LABELS, ArtifactBar, ArtifactVersionChip } from '../chunk-P4BOXB6E.js';
148
148
  import '../chunk-FQCLKD7U.js';
149
149
  export { Kbd, isApplePlatform, keyGlyph } from '../chunk-SMBKXWML.js';
150
150
  export { Tooltip } from '../chunk-QWOPX2MN.js';
151
151
  export { SegmentedControl } from '../chunk-RCQXUT5K.js';
152
152
  export { TabPanel, Tabs, tabId } from '../chunk-HJEVSQN6.js';
153
153
  import '../chunk-RKKO7QHH.js';
154
+ export { ARTIFACT_ICON_WORDS, ArtifactIcon, artifactIconGlyph } from '../chunk-4JUKWWUD.js';
154
155
  export { DashboardCover, DocCover, SHEET_COVER_COLUMNS, SHEET_COVER_ROWS, SheetCover } from '../chunk-6AH2XJ3Q.js';
155
156
  export { Document, DocumentTitle } from '../chunk-M3LUNN7F.js';
156
- export { ARTIFACT_ICON_WORDS, ArtifactIcon, artifactIconGlyph } from '../chunk-4JUKWWUD.js';
157
157
  export { ARTIFACT_KINDS, ArtifactCard, ArtifactKindGlyph } from '../chunk-GOSQXEZU.js';
158
158
  export { PRINCIPAL_KINDS, PrincipalAvatar } from '../chunk-4KP4RC3O.js';
159
159
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from '../chunk-3CZ7XAVY.js';
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import './chunk-OC46246T.js';
2
2
  export { WidgetFrame } from './chunk-AAOH2P6Y.js';
3
3
  export { ElementToPngError, elementToPng, serializeElement, toCsv } from './chunk-UOR7TOAU.js';
4
- export { ThemeToggle } from './chunk-NP2C4Y4E.js';
4
+ export { ToastProvider, Toaster, useToast } from './chunk-QH3AKP2N.js';
5
5
  export { TreeCanvas } from './chunk-S6VG5ZFZ.js';
6
6
  export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from './chunk-EHQTPVV4.js';
7
7
  export { VersionTimeline } from './chunk-W4XYY73O.js';
@@ -10,26 +10,26 @@ export { Text } from './chunk-IKBK4A5O.js';
10
10
  export { ThemeGallery } from './chunk-C2FRTWKO.js';
11
11
  export { ThemeSwatch } from './chunk-MNFU2RNT.js';
12
12
  export { DensitySwitcher, ThemeSwitcher } from './chunk-WJDQ7XQA.js';
13
+ export { ThemeToggle } from './chunk-NP2C4Y4E.js';
13
14
  export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from './chunk-Z24ZUSTX.js';
14
- export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-UZ6MA2V6.js';
15
15
  export { Timeline, TimelineItem } from './chunk-AUQPBL4O.js';
16
- export { ToastProvider, Toaster, useToast } from './chunk-QH3AKP2N.js';
17
- export { SlideGrid } from './chunk-3C3BRIMY.js';
16
+ export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-UZ6MA2V6.js';
17
+ export { Stepper } from './chunk-5QWIJSQM.js';
18
18
  export { Switcher } from './chunk-HVNTQ36V.js';
19
19
  export { Table } from './chunk-V2N3BMOT.js';
20
20
  export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from './chunk-LFNUH4GY.js';
21
21
  export { SLIDE_COMPARE_LABELS, SlideCompare } from './chunk-ALMSY7RL.js';
22
22
  export { SlideFilmstrip } from './chunk-LR5QTFOE.js';
23
+ export { SlideGrid } from './chunk-3C3BRIMY.js';
23
24
  export { StatCard } from './chunk-IKB6HFGK.js';
24
25
  export { StatGroup } from './chunk-JXRI5YD2.js';
25
- export { Stepper } from './chunk-5QWIJSQM.js';
26
+ export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
26
27
  export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from './chunk-JQLTG4KH.js';
27
28
  export { Select } from './chunk-FC4YTTFJ.js';
28
29
  export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from './chunk-CT4EZF62.js';
29
30
  export { TagGroup } from './chunk-O2EGEONV.js';
30
- export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
31
- export { matchesShortcut, useShortcut } from './chunk-2FPENTCF.js';
32
31
  export { NavGroup, NavItem, SidebarNav } from './chunk-UCCC7YVZ.js';
32
+ export { matchesShortcut, useShortcut } from './chunk-2FPENTCF.js';
33
33
  export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from './chunk-ZAJHGDAW.js';
34
34
  export { RichEditor, preloadRichEditor } from './chunk-VOX3YRFO.js';
35
35
  export { RICH_EDITOR_LABELS, richEditorLabels } from './chunk-A4E5YLXO.js';
@@ -57,8 +57,8 @@ import './chunk-CENOOTAV.js';
57
57
  export { MERGE_CONFLICTS_LABELS, MergeConflicts } from './chunk-RWA4H2TV.js';
58
58
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from './chunk-UGNUUVRI.js';
59
59
  export { NewItemsNotice } from './chunk-PXU6HOZB.js';
60
- export { OrgLabel } from './chunk-AKEZ3G5V.js';
61
60
  export { FactLine, ObjectHeader, SetByLine } from './chunk-VGE3G3T4.js';
61
+ export { OrgLabel } from './chunk-AKEZ3G5V.js';
62
62
  export { Link } from './chunk-FBSEJO2C.js';
63
63
  export { LinkInterstitial, openExternal } from './chunk-ZR5VN5IV.js';
64
64
  export { List, ListItem } from './chunk-DS2C73RJ.js';
@@ -66,20 +66,19 @@ export { ListInput } from './chunk-Z6VW6CXX.js';
66
66
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from './chunk-5XACKNYR.js';
67
67
  export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from './chunk-SKOYC2CF.js';
68
68
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from './chunk-LZHLSQYK.js';
69
- export { ImageUpload } from './chunk-YDBC4DNW.js';
70
- export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from './chunk-XYCADWZN.js';
71
- export { AutoGrid, Inline, Spacer, Stack } from './chunk-ZAC7SKUN.js';
72
- export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from './chunk-5YLON2PW.js';
73
- export { FollowBanner } from './chunk-LDJ3J4TQ.js';
74
69
  export { DEFAULT_FRAME_THEME, EXTERNAL_URL_MAX, FRAME_BRIDGE, FRAME_MESSAGE, FRAME_ORIGIN_MODES, FRAME_SANDBOX_TOKENS, applyFrameTheme, checkFrameSandbox, externalUrl, frameFragment, frameOriginMatches, frameThemeMessage, httpOrigin, isFocusExit, isFrameNonce, negotiateBridge, parseFrameFragment, portTargetOrigin, readFrameHello, readFramePortMessage, readFrameTheme, readOpenLink } from './chunk-F6V2PTN6.js';
75
70
  export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from './chunk-ZXXDZJQN.js';
76
71
  export { useFullscreen } from './chunk-XDTYBF2F.js';
77
- import './chunk-FFMCMSJB.js';
72
+ export { AutoGrid, Inline, Spacer, Stack } from './chunk-ZAC7SKUN.js';
73
+ export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from './chunk-5YLON2PW.js';
74
+ export { FollowBanner } from './chunk-LDJ3J4TQ.js';
78
75
  export { Highlight, highlightRanges, highlightTerms } from './chunk-H6VKCIWV.js';
76
+ import './chunk-FFMCMSJB.js';
79
77
  export { IconTile } from './chunk-IXJHTFXG.js';
80
- export { DownloadButton } from './chunk-BEHFTRMZ.js';
81
- export { downloadBlob, downloadText, safeFilename, useDownload } from './chunk-IW55G7XG.js';
78
+ export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from './chunk-XYCADWZN.js';
79
+ export { ImageUpload } from './chunk-YDBC4DNW.js';
82
80
  export { EditingStatus } from './chunk-3DPIU2Q7.js';
81
+ export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from './chunk-UZ7ZUSLH.js';
83
82
  export { EntityChip } from './chunk-4KWOKX2B.js';
84
83
  export { ErrorBoundary } from './chunk-XX2VQE55.js';
85
84
  export { Eyebrow } from './chunk-RK4XPHVG.js';
@@ -89,19 +88,21 @@ export { DIFF_LIST_LABELS, DiffList } from './chunk-LFHCXZO5.js';
89
88
  export { DIFF_SUMMARY_LABELS, DIFF_VIEW_LABELS, DiffSummary, DiffView, MAX_DIFF_LINES, collapseDiff, diffLines, diffStat, firstChangedLines, splitLines } from './chunk-BVWSLXTY.js';
90
89
  export { Disclosure } from './chunk-MICH6QSJ.js';
91
90
  export { Divider } from './chunk-6KWNXIDE.js';
92
- export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from './chunk-UZ7ZUSLH.js';
91
+ export { DownloadButton } from './chunk-BEHFTRMZ.js';
92
+ export { downloadBlob, downloadText, safeFilename, useDownload } from './chunk-IW55G7XG.js';
93
93
  export { CONFLICT_NOTE_LABELS, ConflictNote } from './chunk-UO7JZVCO.js';
94
94
  export { Container } from './chunk-QVE4GJAT.js';
95
95
  export { CursorFlag } from './chunk-3BYIWOTV.js';
96
96
  export { PresenceRing, presenceHueClass } from './chunk-I6POAB4V.js';
97
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-RODMM35O.js';
97
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-UVJ5FF5V.js';
98
98
  export { PageHeader } from './chunk-HOXGBLEY.js';
99
99
  export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-PGRPNDWM.js';
100
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-Y5NQ2LMS.js';
101
100
  export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-EBJREOKS.js';
102
101
  export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from './chunk-ZB5O3ELS.js';
103
102
  export { Tag } from './chunk-GFV4LJHH.js';
104
103
  export { StatusDot } from './chunk-WIATRXEJ.js';
104
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-Y5NQ2LMS.js';
105
+ export { ChoiceButtons } from './chunk-YSJC7AZC.js';
105
106
  export { ChoiceList } from './chunk-QBXZLGK2.js';
106
107
  export { CodeBlock } from './chunk-GDDE4UM7.js';
107
108
  export { CopyButton, Copyable } from './chunk-W46LPU4R.js';
@@ -125,7 +126,6 @@ export { LONGTEXT_MAX_DEFAULT, RATING_MAX_CEILING, RATING_MAX_DEFAULT, SHEET_COL
125
126
  export { PRESENCE_ACTIVITIES, PRESENCE_HUES, PRESENCE_LABELS, assignPresenceHues, collapseSessions, joinNames, presenceLabels, presenceOrder } from './chunk-Z7JYG5TF.js';
126
127
  import './chunk-3L5NHASN.js';
127
128
  export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from './chunk-77DRMDXR.js';
128
- export { ChoiceButtons } from './chunk-YSJC7AZC.js';
129
129
  export { AuthLayout } from './chunk-VDPJGP4Q.js';
130
130
  export { AvatarPicker } from './chunk-TGYDROIB.js';
131
131
  export { HuePicker } from './chunk-LIXSV5YI.js';
@@ -144,16 +144,16 @@ export { Switch } from './chunk-A722MUNR.js';
144
144
  export { DEFAULT_REORDER_LABELS, moveKey, useReorder, useReorderLists } from './chunk-XJ2QEBMM.js';
145
145
  export { Checkbox, CheckboxGroup } from './chunk-7T42VQQT.js';
146
146
  export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from './chunk-6QFAK2WV.js';
147
- export { ARTIFACT_BAR_LABELS, ArtifactBar, ArtifactVersionChip } from './chunk-QMBP23BL.js';
147
+ export { ARTIFACT_BAR_LABELS, ArtifactBar, ArtifactVersionChip } from './chunk-P4BOXB6E.js';
148
148
  import './chunk-FQCLKD7U.js';
149
149
  export { Kbd, isApplePlatform, keyGlyph } from './chunk-SMBKXWML.js';
150
150
  export { Tooltip } from './chunk-QWOPX2MN.js';
151
151
  export { SegmentedControl } from './chunk-RCQXUT5K.js';
152
152
  export { TabPanel, Tabs, tabId } from './chunk-HJEVSQN6.js';
153
153
  import './chunk-RKKO7QHH.js';
154
+ export { ARTIFACT_ICON_WORDS, ArtifactIcon, artifactIconGlyph } from './chunk-4JUKWWUD.js';
154
155
  export { DashboardCover, DocCover, SHEET_COVER_COLUMNS, SHEET_COVER_ROWS, SheetCover } from './chunk-6AH2XJ3Q.js';
155
156
  export { Document, DocumentTitle } from './chunk-M3LUNN7F.js';
156
- export { ARTIFACT_ICON_WORDS, ArtifactIcon, artifactIconGlyph } from './chunk-4JUKWWUD.js';
157
157
  export { ARTIFACT_KINDS, ArtifactCard, ArtifactKindGlyph } from './chunk-GOSQXEZU.js';
158
158
  export { PRINCIPAL_KINDS, PrincipalAvatar } from './chunk-4KP4RC3O.js';
159
159
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from './chunk-3CZ7XAVY.js';
package/dist/styles.css CHANGED
@@ -1996,7 +1996,7 @@ button.crewlet-account-row__who:focus-visible {
1996
1996
  }
1997
1997
 
1998
1998
 
1999
- /* ArtifactBar-IBWB5POL.css */
1999
+ /* ArtifactBar-MLMJHWY6.css */
2000
2000
  /*
2001
2001
  * One row, one hairline under it, the height of a large row. The lead (the
2002
2002
  * way back, the glyph, the title, the version) takes what the end leaves it
@@ -2191,6 +2191,13 @@ button.crewlet-account-row__who:focus-visible {
2191
2191
  margin-inline-start: var(--spacing-1);
2192
2192
  }
2193
2193
 
2194
+ .crewlet-artifact-bar__status {
2195
+ display: inline-flex;
2196
+ align-items: center;
2197
+ min-width: 0;
2198
+ margin-inline-end: var(--spacing-2);
2199
+ }
2200
+
2194
2201
  .crewlet-artifact-bar__presence {
2195
2202
  display: inline-flex;
2196
2203
  align-items: center;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.30.0",
3
+ "version": "0.31.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.30.0",
46
- "@crewlethq/tokens": "0.30.0",
45
+ "@crewlethq/icons": "0.31.0",
46
+ "@crewlethq/tokens": "0.31.0",
47
47
  "prosemirror-commands": "1.7.2",
48
48
  "prosemirror-gapcursor": "1.4.1",
49
49
  "prosemirror-history": "1.5.1",
@@ -1,7 +1,7 @@
1
1
  import { PageHeader } from './chunk-HOXGBLEY.js';
2
2
  import { Toolbar } from './chunk-PGRPNDWM.js';
3
- import { DateTimePicker } from './chunk-Y5NQ2LMS.js';
4
3
  import { DataTable } from './chunk-EBJREOKS.js';
4
+ import { DateTimePicker } from './chunk-Y5NQ2LMS.js';
5
5
  import { useListbox, useOptionKeys } from './chunk-F73MC7EZ.js';
6
6
  import { Popover } from './chunk-BWRGFKJP.js';
7
7
  import { Input } from './chunk-6QFAK2WV.js';