@crewlethq/ui 0.30.0 → 0.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/ArtifactBar/ArtifactBar.d.ts +13 -1
- package/dist/ArtifactBar/index.js +1 -1
- package/dist/{ArtifactBar-IBWB5POL.css → ArtifactBar-MLMJHWY6.css} +7 -0
- package/dist/EditingStatus/index.js +1 -1
- package/dist/{EditingStatus-NFADEPSX.css → EditingStatus-L6THUAN7.css} +21 -0
- package/dist/{chunk-3DPIU2Q7.js → chunk-FPS3JIPQ.js} +1 -1
- package/dist/{chunk-QMBP23BL.js → chunk-P4BOXB6E.js} +17 -1
- package/dist/generated/index.js +10 -10
- package/dist/index.js +10 -10
- package/dist/styles.css +30 -2
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -204,6 +204,14 @@ 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.1
|
|
208
|
+
|
|
209
|
+
**`EditingStatus` folds "Editing" on an artifact bar's narrow arrangement**, below 640px, and keeps its dot, so a phone's bar keeps the room for the title while Cancel and Save are there. The words stay in the status for a screen reader.
|
|
210
|
+
|
|
211
|
+
## Changes in 0.31.0
|
|
212
|
+
|
|
213
|
+
**`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.
|
|
214
|
+
|
|
207
215
|
## Changes in 0.30.0
|
|
208
216
|
|
|
209
217
|
**`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-
|
|
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,2 +1,2 @@
|
|
|
1
|
-
export { EditingStatus } from '../chunk-
|
|
1
|
+
export { EditingStatus } from '../chunk-FPS3JIPQ.js';
|
|
2
2
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -42,11 +42,32 @@
|
|
|
42
42
|
margin-right: var(--spacing-2);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
+
/*
|
|
46
|
+
* THE WORDS FOLD AND THE DOT STAYS where room is short, hidden from the eye
|
|
47
|
+
* and still read by a screen reader, so the status says the same thing to
|
|
48
|
+
* everyone. On a phone the state folds. On an artifact bar's narrow
|
|
49
|
+
* arrangement (below 640px, as ArtifactBar.css draws it) "Editing" folds too:
|
|
50
|
+
* the title has the row's room first, and Cancel and Save beside the dot
|
|
51
|
+
* already say an edit is open.
|
|
52
|
+
*/
|
|
45
53
|
@media (width < 480px) {
|
|
46
54
|
.crewlet-editing-status__state {
|
|
47
55
|
position: absolute;
|
|
48
56
|
width: 1px;
|
|
49
57
|
height: 1px;
|
|
58
|
+
margin: -1px;
|
|
59
|
+
overflow: hidden;
|
|
60
|
+
clip-path: inset(50%);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@container crewlet-artifact-bar (width < 640px) {
|
|
65
|
+
.crewlet-editing-status__label,
|
|
66
|
+
.crewlet-editing-status__state {
|
|
67
|
+
position: absolute;
|
|
68
|
+
width: 1px;
|
|
69
|
+
height: 1px;
|
|
70
|
+
margin: -1px;
|
|
50
71
|
overflow: hidden;
|
|
51
72
|
clip-path: inset(50%);
|
|
52
73
|
}
|
|
@@ -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-
|
|
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,
|
package/dist/generated/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 {
|
|
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,24 +10,24 @@ 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
15
|
export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-UZ6MA2V6.js';
|
|
15
16
|
export { Timeline, TimelineItem } from '../chunk-AUQPBL4O.js';
|
|
16
|
-
export {
|
|
17
|
-
export { SlideGrid } from '../chunk-3C3BRIMY.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 {
|
|
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
31
|
export { matchesShortcut, useShortcut } from '../chunk-2FPENTCF.js';
|
|
32
32
|
export { NavGroup, NavItem, SidebarNav } from '../chunk-UCCC7YVZ.js';
|
|
33
33
|
export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from '../chunk-ZAJHGDAW.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';
|
|
@@ -74,12 +74,12 @@ export { FollowBanner } from '../chunk-LDJ3J4TQ.js';
|
|
|
74
74
|
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
75
|
export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from '../chunk-ZXXDZJQN.js';
|
|
76
76
|
export { useFullscreen } from '../chunk-XDTYBF2F.js';
|
|
77
|
-
import '../chunk-FFMCMSJB.js';
|
|
78
77
|
export { Highlight, highlightRanges, highlightTerms } from '../chunk-H6VKCIWV.js';
|
|
78
|
+
import '../chunk-FFMCMSJB.js';
|
|
79
79
|
export { IconTile } from '../chunk-IXJHTFXG.js';
|
|
80
80
|
export { DownloadButton } from '../chunk-BEHFTRMZ.js';
|
|
81
81
|
export { downloadBlob, downloadText, safeFilename, useDownload } from '../chunk-IW55G7XG.js';
|
|
82
|
-
export { EditingStatus } from '../chunk-
|
|
82
|
+
export { EditingStatus } from '../chunk-FPS3JIPQ.js';
|
|
83
83
|
export { EntityChip } from '../chunk-4KWOKX2B.js';
|
|
84
84
|
export { ErrorBoundary } from '../chunk-XX2VQE55.js';
|
|
85
85
|
export { Eyebrow } from '../chunk-RK4XPHVG.js';
|
|
@@ -102,6 +102,7 @@ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu }
|
|
|
102
102
|
export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-ZB5O3ELS.js';
|
|
103
103
|
export { Tag } from '../chunk-GFV4LJHH.js';
|
|
104
104
|
export { StatusDot } from '../chunk-WIATRXEJ.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,7 +144,7 @@ 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-
|
|
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';
|
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 {
|
|
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,24 +10,24 @@ 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
15
|
export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-UZ6MA2V6.js';
|
|
15
16
|
export { Timeline, TimelineItem } from './chunk-AUQPBL4O.js';
|
|
16
|
-
export {
|
|
17
|
-
export { SlideGrid } from './chunk-3C3BRIMY.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 {
|
|
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
31
|
export { matchesShortcut, useShortcut } from './chunk-2FPENTCF.js';
|
|
32
32
|
export { NavGroup, NavItem, SidebarNav } from './chunk-UCCC7YVZ.js';
|
|
33
33
|
export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from './chunk-ZAJHGDAW.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';
|
|
@@ -74,12 +74,12 @@ export { FollowBanner } from './chunk-LDJ3J4TQ.js';
|
|
|
74
74
|
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
75
|
export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from './chunk-ZXXDZJQN.js';
|
|
76
76
|
export { useFullscreen } from './chunk-XDTYBF2F.js';
|
|
77
|
-
import './chunk-FFMCMSJB.js';
|
|
78
77
|
export { Highlight, highlightRanges, highlightTerms } from './chunk-H6VKCIWV.js';
|
|
78
|
+
import './chunk-FFMCMSJB.js';
|
|
79
79
|
export { IconTile } from './chunk-IXJHTFXG.js';
|
|
80
80
|
export { DownloadButton } from './chunk-BEHFTRMZ.js';
|
|
81
81
|
export { downloadBlob, downloadText, safeFilename, useDownload } from './chunk-IW55G7XG.js';
|
|
82
|
-
export { EditingStatus } from './chunk-
|
|
82
|
+
export { EditingStatus } from './chunk-FPS3JIPQ.js';
|
|
83
83
|
export { EntityChip } from './chunk-4KWOKX2B.js';
|
|
84
84
|
export { ErrorBoundary } from './chunk-XX2VQE55.js';
|
|
85
85
|
export { Eyebrow } from './chunk-RK4XPHVG.js';
|
|
@@ -102,6 +102,7 @@ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu }
|
|
|
102
102
|
export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from './chunk-ZB5O3ELS.js';
|
|
103
103
|
export { Tag } from './chunk-GFV4LJHH.js';
|
|
104
104
|
export { StatusDot } from './chunk-WIATRXEJ.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,7 +144,7 @@ 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-
|
|
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';
|
package/dist/styles.css
CHANGED
|
@@ -1996,7 +1996,7 @@ button.crewlet-account-row__who:focus-visible {
|
|
|
1996
1996
|
}
|
|
1997
1997
|
|
|
1998
1998
|
|
|
1999
|
-
/* ArtifactBar-
|
|
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;
|
|
@@ -11520,7 +11527,7 @@ svg.crewlet-datetime__chevron {
|
|
|
11520
11527
|
}
|
|
11521
11528
|
|
|
11522
11529
|
|
|
11523
|
-
/* EditingStatus-
|
|
11530
|
+
/* EditingStatus-L6THUAN7.css */
|
|
11524
11531
|
/*
|
|
11525
11532
|
* The editing status (EditingStatus.tsx): a word and a dot, in the bar's own
|
|
11526
11533
|
* small step, quiet until something is unsaved.
|
|
@@ -11565,11 +11572,32 @@ svg.crewlet-datetime__chevron {
|
|
|
11565
11572
|
margin-right: var(--spacing-2);
|
|
11566
11573
|
}
|
|
11567
11574
|
|
|
11575
|
+
/*
|
|
11576
|
+
* THE WORDS FOLD AND THE DOT STAYS where room is short, hidden from the eye
|
|
11577
|
+
* and still read by a screen reader, so the status says the same thing to
|
|
11578
|
+
* everyone. On a phone the state folds. On an artifact bar's narrow
|
|
11579
|
+
* arrangement (below 640px, as ArtifactBar.css draws it) "Editing" folds too:
|
|
11580
|
+
* the title has the row's room first, and Cancel and Save beside the dot
|
|
11581
|
+
* already say an edit is open.
|
|
11582
|
+
*/
|
|
11568
11583
|
@media (width < 480px) {
|
|
11569
11584
|
.crewlet-editing-status__state {
|
|
11570
11585
|
position: absolute;
|
|
11571
11586
|
width: 1px;
|
|
11572
11587
|
height: 1px;
|
|
11588
|
+
margin: -1px;
|
|
11589
|
+
overflow: hidden;
|
|
11590
|
+
clip-path: inset(50%);
|
|
11591
|
+
}
|
|
11592
|
+
}
|
|
11593
|
+
|
|
11594
|
+
@container crewlet-artifact-bar (width < 640px) {
|
|
11595
|
+
.crewlet-editing-status__label,
|
|
11596
|
+
.crewlet-editing-status__state {
|
|
11597
|
+
position: absolute;
|
|
11598
|
+
width: 1px;
|
|
11599
|
+
height: 1px;
|
|
11600
|
+
margin: -1px;
|
|
11573
11601
|
overflow: hidden;
|
|
11574
11602
|
clip-path: inset(50%);
|
|
11575
11603
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crewlethq/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.1",
|
|
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.
|
|
46
|
-
"@crewlethq/tokens": "0.
|
|
45
|
+
"@crewlethq/icons": "0.31.1",
|
|
46
|
+
"@crewlethq/tokens": "0.31.1",
|
|
47
47
|
"prosemirror-commands": "1.7.2",
|
|
48
48
|
"prosemirror-gapcursor": "1.4.1",
|
|
49
49
|
"prosemirror-history": "1.5.1",
|