@crewlethq/ui 0.66.0 → 0.67.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 +8 -0
- package/dist/SetupWizard/index.js +2 -2
- package/dist/ThinkingIndicator/ThinkingIndicator.d.ts +9 -6
- package/dist/ThinkingIndicator/index.js +1 -1
- package/dist/ThinkingIndicator-JVF52N7L.css +193 -0
- package/dist/{chunk-E2MIUNUU.js → chunk-M73MMEZY.js} +1 -1
- package/dist/generated/index.js +14 -14
- package/dist/index.js +14 -14
- package/dist/styles.css +87 -16
- package/package.json +3 -3
- package/dist/ThinkingIndicator-QJMX2TXC.css +0 -122
- package/dist/{chunk-SBHAKX2T.js → chunk-R2YHKVWN.js} +1 -1
package/README.md
CHANGED
|
@@ -205,6 +205,14 @@ places:
|
|
|
205
205
|
- A surface that pans or zooms dispatches `LAYER_REPOSITION_EVENT` on its host
|
|
206
206
|
when the content beneath it moves, and every panel anchored inside follows.
|
|
207
207
|
|
|
208
|
+
## Changes in 0.67.0
|
|
209
|
+
|
|
210
|
+
**The product marks are redrawn as one family** (`@crewlethq/icons`). Each stands on the Crewlet octagon in the brand violet with a deeper lower facet (`#6a3cff`, was `#5c24ff`) and one white figure: Worklet a tick over one open task, Doclet a page with a chamfer fold, Chat a speech bubble with the crewmate's visor, and the Assistant two sparks. The `dim` and `eye` parts are gone, and every drawing carries a hidden `keyline` part that the soon state paints. Nothing to change unless a stylesheet of your own reads those parts.
|
|
211
|
+
|
|
212
|
+
**`ProductMark` mounts a 16 pixel grid drawing below 24 px** and takes `drawing` (`ProductMarkDrawing`: `auto`, `small` or `master`). `auto` reads `size`; a size it cannot measure in px (the default `1em`) keeps the master, so pass `drawing="small"` for a mark set in a line of body text. Soon is now derived from either drawing, and under forced colours a mark draws its one colour form in the system colours.
|
|
213
|
+
|
|
214
|
+
**`ThinkingIndicator` moves the new Assistant mark.** Its main spark makes a quarter turn about its own centre, tucking to 0.8 through the middle of the turn, while its companion twinkles, over `--motion-duration-spark` (1.6s, new in `@crewlethq/tokens`). Under reduced motion it holds a still working pose (the spark tucked, the companion dimmed) rather than the idle mark.
|
|
215
|
+
|
|
208
216
|
## Changes in 0.65.0
|
|
209
217
|
|
|
210
218
|
**`ProposalCard` takes `tone`, `confirmation` and `details`.** `tone="danger"` (`ProposalTone`, `PROPOSAL_TONES`) marks a change that removes or discards something: while the card waits on the person or carries the change out, Card's danger rail runs down its leading edge, the title is set in the danger ink (AA in both palettes) and the primary is the danger button. A settled card steps back with no tone, and the Tag keeps saying the state. `confirmation` (`{ label }`, `ProposalConfirmation`) draws a `Checkbox` above the decision: the primary is held soft disabled, described by `labels.confirmationNeeded` ("Check the confirmation above first"), until it is ticked. The tick clears when the card settles or is handed another proposal in place (another `title` or `approveLabel`), and `approveBlocked` still outranks it. `details` is the precise request behind the change, in a compact `Disclosure` titled `labels.details` ("Technical details"), collapsed by default and mounted only once opened, at the foot of the body above the note.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { SetupWizard } from '../chunk-
|
|
2
|
-
import '../chunk-HJBHP66O.js';
|
|
1
|
+
export { SetupWizard } from '../chunk-R2YHKVWN.js';
|
|
3
2
|
import '../chunk-FPDIHEM4.js';
|
|
3
|
+
import '../chunk-HJBHP66O.js';
|
|
4
4
|
import '../chunk-WIATRXEJ.js';
|
|
5
5
|
import '../chunk-222VILSP.js';
|
|
6
6
|
import '../chunk-IVTQWOXV.js';
|
|
@@ -15,9 +15,11 @@ export interface ThinkingIndicatorProps extends Omit<HTMLAttributes<HTMLDivEleme
|
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* The assistant at work, drawn where its answer will be: the Assistant's mark
|
|
18
|
-
* with its
|
|
19
|
-
* while nothing of the answer is on screen yet, a line saying
|
|
20
|
-
* under a slow shimmer.
|
|
18
|
+
* with its main spark making a quarter turn while its companion twinkles, then
|
|
19
|
+
* resting, and, while nothing of the answer is on screen yet, a line saying
|
|
20
|
+
* what it is doing under a slow shimmer. The mark is drawn at 16 px, so it is
|
|
21
|
+
* the 16 pixel grid drawing, and the motion is this component's stylesheet:
|
|
22
|
+
* the mark carries only its `data-motion` parts.
|
|
21
23
|
*
|
|
22
24
|
* IN PLACE OF A CARET. A blinking bar after streamed text lands wherever the
|
|
23
25
|
* last block ends, on a line of its own under a list or at the start of an
|
|
@@ -30,8 +32,9 @@ export interface ThinkingIndicatorProps extends Omit<HTMLAttributes<HTMLDivEleme
|
|
|
30
32
|
* changes with every step, is hidden from assistive technology, where the
|
|
31
33
|
* steps are read from their own list.
|
|
32
34
|
*
|
|
33
|
-
* UNDER REDUCED MOTION the
|
|
34
|
-
*
|
|
35
|
-
* work is under
|
|
35
|
+
* UNDER REDUCED MOTION the mark holds a still working pose (the main spark
|
|
36
|
+
* tucked, the companion dimmed) and the line is drawn in the secondary ink
|
|
37
|
+
* without the shimmer: the mark and the words still say that work is under
|
|
38
|
+
* way.
|
|
36
39
|
*/
|
|
37
40
|
export declare function ThinkingIndicator({ status, label, className, ...rest }: ThinkingIndicatorProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The assistant at work: the Assistant's mark, its spark turning, and a line
|
|
3
|
+
* of status under a shimmer. See ThinkingIndicator.tsx for why it replaces a
|
|
4
|
+
* caret and how it is announced.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
* ONE LINE OF PROSE TALL, at every state: the mark alone, the mark with a
|
|
9
|
+
* status line, and the line changing from one step to the next all keep the
|
|
10
|
+
* same height, so the thread never moves while the assistant works.
|
|
11
|
+
*/
|
|
12
|
+
.crewlet-thinking {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
gap: var(--spacing-2);
|
|
16
|
+
min-width: 0;
|
|
17
|
+
min-height: calc(var(--font-size-compact) * var(--font-line-height-relaxed));
|
|
18
|
+
font-family: var(--font-family-sans);
|
|
19
|
+
font-size: var(--font-size-compact);
|
|
20
|
+
line-height: var(--font-line-height-relaxed);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
* THE SPARK TURNS A QUARTER, THEN RESTS. The Assistant's main spark
|
|
25
|
+
* (data-motion="turn") makes a quarter turn about its own centre while its
|
|
26
|
+
* companion (data-motion="twinkle") dims and shrinks, both on one timeline of
|
|
27
|
+
* --motion-duration-spark (1.6s). The gesture runs from 20% to 70% of the
|
|
28
|
+
* period and every part is at rest in the idle pose for the other half, so
|
|
29
|
+
* the loop never jumps: the spark is four-fold symmetric, so its 90 degree
|
|
30
|
+
* pose is its 0 degree pose. Both parts pivot on their own fill box, which is
|
|
31
|
+
* the spark's centre, so the same rules move the 16 pixel grid drawing and
|
|
32
|
+
* the 48 unit master.
|
|
33
|
+
*
|
|
34
|
+
* THE TURN TUCKS. A full-size spark sweeps its tip through the companion
|
|
35
|
+
* between 26.6 and 63.4 degrees. The spark therefore pulls in to 0.8 over the
|
|
36
|
+
* first 15.37 degrees, holds 0.8 through the fast middle of the turn and opens
|
|
37
|
+
* back to 1 over the last 15.37 degrees, which keeps clear violet between the
|
|
38
|
+
* two at every frame. Rotate and scale are one transform, so the two can never
|
|
39
|
+
* drift apart. The three timing functions are the design's one eased quarter
|
|
40
|
+
* turn, cubic-bezier(0.65, 0, 0.35, 1) over the gesture, split at the 37.5%
|
|
41
|
+
* and 52.5% stops, so the angle follows that curve exactly.
|
|
42
|
+
*
|
|
43
|
+
* THE COMPANION TWINKLES. Its trough sits at 45%, the instant the main spark
|
|
44
|
+
* passes 45 degrees, and it shares the turn's gesture window.
|
|
45
|
+
*/
|
|
46
|
+
.crewlet-thinking__mark [data-motion='turn'],
|
|
47
|
+
.crewlet-thinking__mark [data-motion='twinkle'] {
|
|
48
|
+
transform-box: fill-box;
|
|
49
|
+
transform-origin: center;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.crewlet-thinking__mark [data-motion='turn'] {
|
|
53
|
+
animation: crewlet-thinking-turn var(--motion-duration-spark) linear infinite;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.crewlet-thinking__mark [data-motion='twinkle'] {
|
|
57
|
+
animation: crewlet-thinking-twinkle var(--motion-duration-spark) linear infinite;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@keyframes crewlet-thinking-turn {
|
|
61
|
+
0%,
|
|
62
|
+
20% {
|
|
63
|
+
transform: rotate(0deg) scale(1);
|
|
64
|
+
animation-timing-function: cubic-bezier(0.4878, 0, 0.7883, 0.4041);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
37.5% {
|
|
68
|
+
transform: rotate(15.37deg) scale(0.8);
|
|
69
|
+
animation-timing-function: cubic-bezier(0.4462, 0.2792, 0.5538, 0.7208);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
52.5% {
|
|
73
|
+
transform: rotate(74.63deg) scale(0.8);
|
|
74
|
+
animation-timing-function: cubic-bezier(0.2117, 0.5959, 0.5122, 1);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
70%,
|
|
78
|
+
100% {
|
|
79
|
+
transform: rotate(90deg) scale(1);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@keyframes crewlet-thinking-twinkle {
|
|
84
|
+
0%,
|
|
85
|
+
20% {
|
|
86
|
+
transform: scale(1);
|
|
87
|
+
opacity: 1;
|
|
88
|
+
animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
45% {
|
|
92
|
+
transform: scale(0.7);
|
|
93
|
+
opacity: 0.5;
|
|
94
|
+
animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
70%,
|
|
98
|
+
100% {
|
|
99
|
+
transform: scale(1);
|
|
100
|
+
opacity: 1;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/*
|
|
105
|
+
* THE SHIMMER IS A LIGHTER BAND CROSSING THE WORDS, the band Skeleton sweeps
|
|
106
|
+
* across a placeholder, set in ink rather than in surface: the words are the
|
|
107
|
+
* secondary ink at rest, so they read at every point of the sweep, and the
|
|
108
|
+
* band is the primary ink. The gradient is clipped to the glyphs and is three
|
|
109
|
+
* times the line's width, so the band crosses it rather than standing in it.
|
|
110
|
+
*/
|
|
111
|
+
.crewlet-thinking__status {
|
|
112
|
+
min-width: 0;
|
|
113
|
+
overflow: hidden;
|
|
114
|
+
color: var(--color-text-secondary);
|
|
115
|
+
text-overflow: ellipsis;
|
|
116
|
+
white-space: nowrap;
|
|
117
|
+
animation: crewlet-thinking-enter var(--motion-duration-moderate) var(--motion-easing-out);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
@supports (background-clip: text) or (-webkit-background-clip: text) {
|
|
121
|
+
.crewlet-thinking__status {
|
|
122
|
+
background-image: linear-gradient(
|
|
123
|
+
90deg,
|
|
124
|
+
var(--color-text-secondary) 0%,
|
|
125
|
+
var(--color-text-secondary) 40%,
|
|
126
|
+
var(--color-text-primary) 50%,
|
|
127
|
+
var(--color-text-secondary) 60%,
|
|
128
|
+
var(--color-text-secondary) 100%
|
|
129
|
+
);
|
|
130
|
+
background-size: 300% 100%;
|
|
131
|
+
-webkit-background-clip: text;
|
|
132
|
+
background-clip: text;
|
|
133
|
+
color: transparent;
|
|
134
|
+
animation:
|
|
135
|
+
crewlet-thinking-enter var(--motion-duration-moderate) var(--motion-easing-out),
|
|
136
|
+
crewlet-thinking-shimmer var(--motion-duration-breath) linear infinite;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
@keyframes crewlet-thinking-shimmer {
|
|
141
|
+
from {
|
|
142
|
+
background-position: 100% 50%;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
to {
|
|
146
|
+
background-position: 0 50%;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
@keyframes crewlet-thinking-enter {
|
|
151
|
+
from {
|
|
152
|
+
opacity: 0;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
to {
|
|
156
|
+
opacity: 1;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/*
|
|
161
|
+
* UNDER REDUCED MOTION THE MARK HOLDS A WORKING POSE. Both animations stop,
|
|
162
|
+
* and the mark shows the gesture's tuck and the twinkle's trough held still
|
|
163
|
+
* on the tile's axes: the main spark at 0.8 and the companion at 0.7 and half
|
|
164
|
+
* strength. It differs from the idle mark without moving, and the 16 pixel
|
|
165
|
+
* grid drawing keeps its pixel centred tips, so it stays crisp at 16 and
|
|
166
|
+
* 20 px. The pose is swapped in at once, never with a transition.
|
|
167
|
+
*/
|
|
168
|
+
@media (prefers-reduced-motion: reduce) {
|
|
169
|
+
.crewlet-thinking__mark [data-motion='turn'] {
|
|
170
|
+
animation: none;
|
|
171
|
+
transform: scale(0.8);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.crewlet-thinking__mark [data-motion='twinkle'] {
|
|
175
|
+
animation: none;
|
|
176
|
+
transform: scale(0.7);
|
|
177
|
+
opacity: 0.5;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.crewlet-thinking__status {
|
|
181
|
+
background-image: none;
|
|
182
|
+
color: var(--color-text-secondary);
|
|
183
|
+
animation: none;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* The system's own ink: a gradient clipped to text is dropped there. */
|
|
188
|
+
@media (forced-colors: active) {
|
|
189
|
+
.crewlet-thinking__status {
|
|
190
|
+
background-image: none;
|
|
191
|
+
color: CanvasText;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
2
2
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
-
import './ThinkingIndicator-
|
|
3
|
+
import './ThinkingIndicator-JVF52N7L.css';
|
|
4
4
|
import { ProductMark } from '@crewlethq/icons/product-mark';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
package/dist/generated/index.js
CHANGED
|
@@ -13,22 +13,22 @@ export { ThemeSwatch } from '../chunk-3XQUEF5C.js';
|
|
|
13
13
|
export { DensitySwitcher, ThemeSwitcher } from '../chunk-7EOUVWGQ.js';
|
|
14
14
|
export { ThemeToggle } from '../chunk-IPMJGK2Q.js';
|
|
15
15
|
export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-Z24ZUSTX.js';
|
|
16
|
-
export { ThinkingIndicator } from '../chunk-
|
|
16
|
+
export { ThinkingIndicator } from '../chunk-M73MMEZY.js';
|
|
17
17
|
export { TileGrid } from '../chunk-Q6CQMS6R.js';
|
|
18
18
|
export { TIME_RANGE_CUSTOM, TIME_RANGE_PICKER_LABELS, TimeRangePicker, timeRangeFieldKey, timeRangeProblem } from '../chunk-PQWNK3N7.js';
|
|
19
19
|
export { Switcher } from '../chunk-GDDVI4US.js';
|
|
20
20
|
export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from '../chunk-GNDKUSCG.js';
|
|
21
21
|
export { TagsInput } from '../chunk-HEIOLITO.js';
|
|
22
22
|
export { StatCard } from '../chunk-G5IZGAWS.js';
|
|
23
|
-
export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from '../chunk-4TMBAOXK.js';
|
|
24
23
|
export { StatGroup } from '../chunk-OUD75UB2.js';
|
|
25
24
|
export { Statement } from '../chunk-MZJKPTA5.js';
|
|
26
25
|
export { SuggestionList, SuggestionRow } from '../chunk-Y7PVLEZJ.js';
|
|
27
26
|
export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-2SU735S3.js';
|
|
28
27
|
export { SlideFilmstrip } from '../chunk-U7J52N67.js';
|
|
29
28
|
export { SlideGrid } from '../chunk-7MGXHCVK.js';
|
|
29
|
+
export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from '../chunk-4TMBAOXK.js';
|
|
30
30
|
export { SettingsTable, SettingsTableRow } from '../chunk-4RKTZSEW.js';
|
|
31
|
-
export { SetupWizard } from '../chunk-
|
|
31
|
+
export { SetupWizard } from '../chunk-R2YHKVWN.js';
|
|
32
32
|
export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from '../chunk-WWXIGN4O.js';
|
|
33
33
|
export { SHEET_COLUMN_EDITOR_LABELS, SheetColumnEditor, SheetColumnTypeGlyph } from '../chunk-SBOUVASH.js';
|
|
34
34
|
export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-OOC6KXNL.js';
|
|
@@ -38,13 +38,13 @@ import '../chunk-73GUXYYE.js';
|
|
|
38
38
|
export { SearchTrigger } from '../chunk-ERNT3UTB.js';
|
|
39
39
|
export { SectionFrame, SectionFrameBody, SectionFrameNav } from '../chunk-G4CGDUCP.js';
|
|
40
40
|
export { NavGroup, NavItem, SidebarNav } from '../chunk-WCDPFTJZ.js';
|
|
41
|
-
export { Select } from '../chunk-VK45YJLH.js';
|
|
42
41
|
export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
|
|
42
|
+
export { Select } from '../chunk-VK45YJLH.js';
|
|
43
43
|
export { SelectionBar } from '../chunk-WU5JDEEY.js';
|
|
44
44
|
export { SEND_BUTTON_LABELS, SendButton } from '../chunk-T2GC7UAP.js';
|
|
45
|
-
export { ReviewList } from '../chunk-DO4J4TBZ.js';
|
|
46
45
|
export { RESULT_TABLE_CARD_LABELS, RESULT_TABLE_COLLAPSED_ROWS, RESULT_TABLE_MAX_ROWS, ResultTableCard } from '../chunk-7QTJO3PV.js';
|
|
47
46
|
export { Table } from '../chunk-5DJMFRSZ.js';
|
|
47
|
+
export { ReviewList } from '../chunk-DO4J4TBZ.js';
|
|
48
48
|
export { RichEditor, preloadRichEditor } from '../chunk-BVNFNFA6.js';
|
|
49
49
|
export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
|
|
50
50
|
export { canonicalMarkdown, roundTripMarkdown } from '../chunk-SWD4QBL6.js';
|
|
@@ -104,9 +104,9 @@ export { IconTile } from '../chunk-3LI4TRUR.js';
|
|
|
104
104
|
export { ImageUpload } from '../chunk-56IFLQGF.js';
|
|
105
105
|
export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from '../chunk-62DBFNOK.js';
|
|
106
106
|
export { FactList } from '../chunk-CSXJIIO4.js';
|
|
107
|
+
export { FileList } from '../chunk-5WRWBDML.js';
|
|
107
108
|
export { FileDrop, FilePickButton, droppedFiles, pickedFiles } from '../chunk-2JHGPXYG.js';
|
|
108
109
|
export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from '../chunk-IWZG7NPV.js';
|
|
109
|
-
export { FileList } from '../chunk-5WRWBDML.js';
|
|
110
110
|
export { FindingList } from '../chunk-LSRQ2A6B.js';
|
|
111
111
|
export { FolderTile, describeFolderContents, folderContentsParts } from '../chunk-WTXCK46H.js';
|
|
112
112
|
export { FollowBanner } from '../chunk-K4IVKHKU.js';
|
|
@@ -119,11 +119,7 @@ export { EntityChip } from '../chunk-OSKJZNBT.js';
|
|
|
119
119
|
export { EntityList } from '../chunk-7IW3P6FH.js';
|
|
120
120
|
export { ErrorBoundary } from '../chunk-ZEPUKRO7.js';
|
|
121
121
|
export { Eyebrow } from '../chunk-RK4XPHVG.js';
|
|
122
|
-
export {
|
|
123
|
-
export { STEP_STATES, STEP_STATE_LABELS, StepList, StepStateMark, Stepper, stepDetailPieces } from '../chunk-HJBHP66O.js';
|
|
124
|
-
export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from '../chunk-RQFRRPV6.js';
|
|
125
|
-
export { REFUSAL_STRIP_LABELS, ReceiptStrip, RefusalStrip } from '../chunk-M25IV5MH.js';
|
|
126
|
-
export { StatusCard } from '../chunk-NTQPJJAN.js';
|
|
122
|
+
export { DescriptionList, DescriptionListItem } from '../chunk-MFS6F2P7.js';
|
|
127
123
|
export { DIFF_SUMMARY_LABELS, DIFF_VIEW_LABELS, DiffSummary, DiffView, MAX_DIFF_LINES, collapseDiff, diffLines, diffStat, firstChangedLines, splitLines } from '../chunk-AOFVXE6V.js';
|
|
128
124
|
export { DirectoryList } from '../chunk-SRDNGGZE.js';
|
|
129
125
|
export { Divider } from '../chunk-6KWNXIDE.js';
|
|
@@ -136,7 +132,11 @@ export { PageHeader } from '../chunk-FPDIHEM4.js';
|
|
|
136
132
|
export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-CFY257ND.js';
|
|
137
133
|
export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-R6K62EXV.js';
|
|
138
134
|
export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-PX54PALQ.js';
|
|
139
|
-
export {
|
|
135
|
+
export { DEEP_WORK_CARD_LABELS, DEEP_WORK_STATES, DEEP_WORK_STATE_LABELS, DeepWorkCard } from '../chunk-UWOYDHVW.js';
|
|
136
|
+
export { STEP_STATES, STEP_STATE_LABELS, StepList, StepStateMark, Stepper, stepDetailPieces } from '../chunk-HJBHP66O.js';
|
|
137
|
+
export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from '../chunk-RQFRRPV6.js';
|
|
138
|
+
export { REFUSAL_STRIP_LABELS, ReceiptStrip, RefusalStrip } from '../chunk-M25IV5MH.js';
|
|
139
|
+
export { StatusCard } from '../chunk-NTQPJJAN.js';
|
|
140
140
|
export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-UBJ32EO2.js';
|
|
141
141
|
export { ConfirmField, confirmMatches } from '../chunk-JVII5264.js';
|
|
142
142
|
export { InlineCode } from '../chunk-PLL7ZJHY.js';
|
|
@@ -194,8 +194,8 @@ export { ArtifactNameCell } from '../chunk-4MRFLHJC.js';
|
|
|
194
194
|
export { AsideLayout } from '../chunk-QOXLP5PE.js';
|
|
195
195
|
export { ATTACHMENT_CHIP_LABELS, AttachmentChip } from '../chunk-3N36CYTU.js';
|
|
196
196
|
export { Tag } from '../chunk-I5OIKDX2.js';
|
|
197
|
-
export { ArrangeFrame, useGridResize } from '../chunk-PLNJEDGI.js';
|
|
198
197
|
export { ArrangeGrid } from '../chunk-QBA5B2Z5.js';
|
|
198
|
+
export { ArrangeFrame, useGridResize } from '../chunk-PLNJEDGI.js';
|
|
199
199
|
export { ArrangeGroup } from '../chunk-CYYBE2MM.js';
|
|
200
200
|
export { ArrangeList, DEFAULT_ARRANGE_LABELS } from '../chunk-TWJERLT3.js';
|
|
201
201
|
export { Switch } from '../chunk-3XDT5ZWL.js';
|
|
@@ -226,6 +226,7 @@ export { ARTIFACT_KINDS, ArtifactKindGlyph } from '../chunk-RSKW25Y5.js';
|
|
|
226
226
|
export { ACCESS_DENIED_REASONS, AccessDeniedCard } from '../chunk-QTMUKRTN.js';
|
|
227
227
|
export { EmptyState } from '../chunk-PPUR46MK.js';
|
|
228
228
|
export { Accordion, AccordionItem } from '../chunk-5NJMSYDZ.js';
|
|
229
|
+
export { ADD_PILL_MS, AddPill } from '../chunk-CVKANYHD.js';
|
|
229
230
|
export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from '../chunk-WUQVAFTC.js';
|
|
230
231
|
export { Timeline, TimelineItem } from '../chunk-4MJN2KN6.js';
|
|
231
232
|
export { Section } from '../chunk-WFCWPXJN.js';
|
|
@@ -239,7 +240,6 @@ export { CHARACTER_COUNT_LABELS, CHARACTER_COUNT_NEAR, CharacterCount, character
|
|
|
239
240
|
export { DisclosureAnatomy } from '../chunk-IVTQWOXV.js';
|
|
240
241
|
export { Count } from '../chunk-MLDTLZAO.js';
|
|
241
242
|
export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from '../chunk-PQADV6P6.js';
|
|
242
|
-
export { ADD_PILL_MS, AddPill } from '../chunk-CVKANYHD.js';
|
|
243
243
|
export { Announcer, announce, useAnnouncer } from '../chunk-2G355KDJ.js';
|
|
244
244
|
export { APP_SHELL_ASIDE_WIDTH, AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellRailStatus, AppShellToggle, AppShellTopbar, readStoredWidth, useAppShell, useScreenBelow, useScreenWidth, useStoredWidth } from '../chunk-GJ7VIQWL.js';
|
|
245
245
|
export { useMediaMatch } from '../chunk-RTPQDNW3.js';
|
package/dist/index.js
CHANGED
|
@@ -13,22 +13,22 @@ export { ThemeSwatch } from './chunk-3XQUEF5C.js';
|
|
|
13
13
|
export { DensitySwitcher, ThemeSwitcher } from './chunk-7EOUVWGQ.js';
|
|
14
14
|
export { ThemeToggle } from './chunk-IPMJGK2Q.js';
|
|
15
15
|
export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from './chunk-Z24ZUSTX.js';
|
|
16
|
-
export { ThinkingIndicator } from './chunk-
|
|
16
|
+
export { ThinkingIndicator } from './chunk-M73MMEZY.js';
|
|
17
17
|
export { TileGrid } from './chunk-Q6CQMS6R.js';
|
|
18
18
|
export { TIME_RANGE_CUSTOM, TIME_RANGE_PICKER_LABELS, TimeRangePicker, timeRangeFieldKey, timeRangeProblem } from './chunk-PQWNK3N7.js';
|
|
19
19
|
export { Switcher } from './chunk-GDDVI4US.js';
|
|
20
20
|
export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from './chunk-GNDKUSCG.js';
|
|
21
21
|
export { TagsInput } from './chunk-HEIOLITO.js';
|
|
22
22
|
export { StatCard } from './chunk-G5IZGAWS.js';
|
|
23
|
-
export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from './chunk-4TMBAOXK.js';
|
|
24
23
|
export { StatGroup } from './chunk-OUD75UB2.js';
|
|
25
24
|
export { Statement } from './chunk-MZJKPTA5.js';
|
|
26
25
|
export { SuggestionList, SuggestionRow } from './chunk-Y7PVLEZJ.js';
|
|
27
26
|
export { SLIDE_COMPARE_LABELS, SlideCompare } from './chunk-2SU735S3.js';
|
|
28
27
|
export { SlideFilmstrip } from './chunk-U7J52N67.js';
|
|
29
28
|
export { SlideGrid } from './chunk-7MGXHCVK.js';
|
|
29
|
+
export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from './chunk-4TMBAOXK.js';
|
|
30
30
|
export { SettingsTable, SettingsTableRow } from './chunk-4RKTZSEW.js';
|
|
31
|
-
export { SetupWizard } from './chunk-
|
|
31
|
+
export { SetupWizard } from './chunk-R2YHKVWN.js';
|
|
32
32
|
export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from './chunk-WWXIGN4O.js';
|
|
33
33
|
export { SHEET_COLUMN_EDITOR_LABELS, SheetColumnEditor, SheetColumnTypeGlyph } from './chunk-SBOUVASH.js';
|
|
34
34
|
export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from './chunk-OOC6KXNL.js';
|
|
@@ -38,13 +38,13 @@ import './chunk-73GUXYYE.js';
|
|
|
38
38
|
export { SearchTrigger } from './chunk-ERNT3UTB.js';
|
|
39
39
|
export { SectionFrame, SectionFrameBody, SectionFrameNav } from './chunk-G4CGDUCP.js';
|
|
40
40
|
export { NavGroup, NavItem, SidebarNav } from './chunk-WCDPFTJZ.js';
|
|
41
|
-
export { Select } from './chunk-VK45YJLH.js';
|
|
42
41
|
export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
|
|
42
|
+
export { Select } from './chunk-VK45YJLH.js';
|
|
43
43
|
export { SelectionBar } from './chunk-WU5JDEEY.js';
|
|
44
44
|
export { SEND_BUTTON_LABELS, SendButton } from './chunk-T2GC7UAP.js';
|
|
45
|
-
export { ReviewList } from './chunk-DO4J4TBZ.js';
|
|
46
45
|
export { RESULT_TABLE_CARD_LABELS, RESULT_TABLE_COLLAPSED_ROWS, RESULT_TABLE_MAX_ROWS, ResultTableCard } from './chunk-7QTJO3PV.js';
|
|
47
46
|
export { Table } from './chunk-5DJMFRSZ.js';
|
|
47
|
+
export { ReviewList } from './chunk-DO4J4TBZ.js';
|
|
48
48
|
export { RichEditor, preloadRichEditor } from './chunk-BVNFNFA6.js';
|
|
49
49
|
export { RICH_EDITOR_LABELS, richEditorLabels } from './chunk-CSQTDGTS.js';
|
|
50
50
|
export { canonicalMarkdown, roundTripMarkdown } from './chunk-SWD4QBL6.js';
|
|
@@ -104,9 +104,9 @@ export { IconTile } from './chunk-3LI4TRUR.js';
|
|
|
104
104
|
export { ImageUpload } from './chunk-56IFLQGF.js';
|
|
105
105
|
export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from './chunk-62DBFNOK.js';
|
|
106
106
|
export { FactList } from './chunk-CSXJIIO4.js';
|
|
107
|
+
export { FileList } from './chunk-5WRWBDML.js';
|
|
107
108
|
export { FileDrop, FilePickButton, droppedFiles, pickedFiles } from './chunk-2JHGPXYG.js';
|
|
108
109
|
export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from './chunk-IWZG7NPV.js';
|
|
109
|
-
export { FileList } from './chunk-5WRWBDML.js';
|
|
110
110
|
export { FindingList } from './chunk-LSRQ2A6B.js';
|
|
111
111
|
export { FolderTile, describeFolderContents, folderContentsParts } from './chunk-WTXCK46H.js';
|
|
112
112
|
export { FollowBanner } from './chunk-K4IVKHKU.js';
|
|
@@ -119,11 +119,7 @@ export { EntityChip } from './chunk-OSKJZNBT.js';
|
|
|
119
119
|
export { EntityList } from './chunk-7IW3P6FH.js';
|
|
120
120
|
export { ErrorBoundary } from './chunk-ZEPUKRO7.js';
|
|
121
121
|
export { Eyebrow } from './chunk-RK4XPHVG.js';
|
|
122
|
-
export {
|
|
123
|
-
export { STEP_STATES, STEP_STATE_LABELS, StepList, StepStateMark, Stepper, stepDetailPieces } from './chunk-HJBHP66O.js';
|
|
124
|
-
export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from './chunk-RQFRRPV6.js';
|
|
125
|
-
export { REFUSAL_STRIP_LABELS, ReceiptStrip, RefusalStrip } from './chunk-M25IV5MH.js';
|
|
126
|
-
export { StatusCard } from './chunk-NTQPJJAN.js';
|
|
122
|
+
export { DescriptionList, DescriptionListItem } from './chunk-MFS6F2P7.js';
|
|
127
123
|
export { DIFF_SUMMARY_LABELS, DIFF_VIEW_LABELS, DiffSummary, DiffView, MAX_DIFF_LINES, collapseDiff, diffLines, diffStat, firstChangedLines, splitLines } from './chunk-AOFVXE6V.js';
|
|
128
124
|
export { DirectoryList } from './chunk-SRDNGGZE.js';
|
|
129
125
|
export { Divider } from './chunk-6KWNXIDE.js';
|
|
@@ -136,7 +132,11 @@ export { PageHeader } from './chunk-FPDIHEM4.js';
|
|
|
136
132
|
export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-CFY257ND.js';
|
|
137
133
|
export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from './chunk-R6K62EXV.js';
|
|
138
134
|
export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-PX54PALQ.js';
|
|
139
|
-
export {
|
|
135
|
+
export { DEEP_WORK_CARD_LABELS, DEEP_WORK_STATES, DEEP_WORK_STATE_LABELS, DeepWorkCard } from './chunk-UWOYDHVW.js';
|
|
136
|
+
export { STEP_STATES, STEP_STATE_LABELS, StepList, StepStateMark, Stepper, stepDetailPieces } from './chunk-HJBHP66O.js';
|
|
137
|
+
export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from './chunk-RQFRRPV6.js';
|
|
138
|
+
export { REFUSAL_STRIP_LABELS, ReceiptStrip, RefusalStrip } from './chunk-M25IV5MH.js';
|
|
139
|
+
export { StatusCard } from './chunk-NTQPJJAN.js';
|
|
140
140
|
export { COMMENT_THREAD_LABELS, CommentThread } from './chunk-UBJ32EO2.js';
|
|
141
141
|
export { ConfirmField, confirmMatches } from './chunk-JVII5264.js';
|
|
142
142
|
export { InlineCode } from './chunk-PLL7ZJHY.js';
|
|
@@ -194,8 +194,8 @@ export { ArtifactNameCell } from './chunk-4MRFLHJC.js';
|
|
|
194
194
|
export { AsideLayout } from './chunk-QOXLP5PE.js';
|
|
195
195
|
export { ATTACHMENT_CHIP_LABELS, AttachmentChip } from './chunk-3N36CYTU.js';
|
|
196
196
|
export { Tag } from './chunk-I5OIKDX2.js';
|
|
197
|
-
export { ArrangeFrame, useGridResize } from './chunk-PLNJEDGI.js';
|
|
198
197
|
export { ArrangeGrid } from './chunk-QBA5B2Z5.js';
|
|
198
|
+
export { ArrangeFrame, useGridResize } from './chunk-PLNJEDGI.js';
|
|
199
199
|
export { ArrangeGroup } from './chunk-CYYBE2MM.js';
|
|
200
200
|
export { ArrangeList, DEFAULT_ARRANGE_LABELS } from './chunk-TWJERLT3.js';
|
|
201
201
|
export { Switch } from './chunk-3XDT5ZWL.js';
|
|
@@ -226,6 +226,7 @@ export { ARTIFACT_KINDS, ArtifactKindGlyph } from './chunk-RSKW25Y5.js';
|
|
|
226
226
|
export { ACCESS_DENIED_REASONS, AccessDeniedCard } from './chunk-QTMUKRTN.js';
|
|
227
227
|
export { EmptyState } from './chunk-PPUR46MK.js';
|
|
228
228
|
export { Accordion, AccordionItem } from './chunk-5NJMSYDZ.js';
|
|
229
|
+
export { ADD_PILL_MS, AddPill } from './chunk-CVKANYHD.js';
|
|
229
230
|
export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from './chunk-WUQVAFTC.js';
|
|
230
231
|
export { Timeline, TimelineItem } from './chunk-4MJN2KN6.js';
|
|
231
232
|
export { Section } from './chunk-WFCWPXJN.js';
|
|
@@ -239,7 +240,6 @@ export { CHARACTER_COUNT_LABELS, CHARACTER_COUNT_NEAR, CharacterCount, character
|
|
|
239
240
|
export { DisclosureAnatomy } from './chunk-IVTQWOXV.js';
|
|
240
241
|
export { Count } from './chunk-MLDTLZAO.js';
|
|
241
242
|
export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from './chunk-PQADV6P6.js';
|
|
242
|
-
export { ADD_PILL_MS, AddPill } from './chunk-CVKANYHD.js';
|
|
243
243
|
export { Announcer, announce, useAnnouncer } from './chunk-2G355KDJ.js';
|
|
244
244
|
export { APP_SHELL_ASIDE_WIDTH, AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellRailStatus, AppShellToggle, AppShellTopbar, readStoredWidth, useAppShell, useScreenBelow, useScreenWidth, useStoredWidth } from './chunk-GJ7VIQWL.js';
|
|
245
245
|
export { useMediaMatch } from './chunk-RTPQDNW3.js';
|
package/dist/styles.css
CHANGED
|
@@ -38169,9 +38169,9 @@ b.crewlet-switcher__match {
|
|
|
38169
38169
|
}
|
|
38170
38170
|
|
|
38171
38171
|
|
|
38172
|
-
/* ThinkingIndicator-
|
|
38172
|
+
/* ThinkingIndicator-JVF52N7L.css */
|
|
38173
38173
|
/*
|
|
38174
|
-
* The assistant at work: the Assistant's mark, its
|
|
38174
|
+
* The assistant at work: the Assistant's mark, its spark turning, and a line
|
|
38175
38175
|
* of status under a shimmer. See ThinkingIndicator.tsx for why it replaces a
|
|
38176
38176
|
* caret and how it is announced.
|
|
38177
38177
|
*/
|
|
@@ -38193,27 +38193,83 @@ b.crewlet-switcher__match {
|
|
|
38193
38193
|
}
|
|
38194
38194
|
|
|
38195
38195
|
/*
|
|
38196
|
-
* THE
|
|
38197
|
-
*
|
|
38198
|
-
*
|
|
38199
|
-
* (
|
|
38200
|
-
*
|
|
38201
|
-
*
|
|
38202
|
-
|
|
38196
|
+
* THE SPARK TURNS A QUARTER, THEN RESTS. The Assistant's main spark
|
|
38197
|
+
* (data-motion="turn") makes a quarter turn about its own centre while its
|
|
38198
|
+
* companion (data-motion="twinkle") dims and shrinks, both on one timeline of
|
|
38199
|
+
* --motion-duration-spark (1.6s). The gesture runs from 20% to 70% of the
|
|
38200
|
+
* period and every part is at rest in the idle pose for the other half, so
|
|
38201
|
+
* the loop never jumps: the spark is four-fold symmetric, so its 90 degree
|
|
38202
|
+
* pose is its 0 degree pose. Both parts pivot on their own fill box, which is
|
|
38203
|
+
* the spark's centre, so the same rules move the 16 pixel grid drawing and
|
|
38204
|
+
* the 48 unit master.
|
|
38205
|
+
*
|
|
38206
|
+
* THE TURN TUCKS. A full-size spark sweeps its tip through the companion
|
|
38207
|
+
* between 26.6 and 63.4 degrees. The spark therefore pulls in to 0.8 over the
|
|
38208
|
+
* first 15.37 degrees, holds 0.8 through the fast middle of the turn and opens
|
|
38209
|
+
* back to 1 over the last 15.37 degrees, which keeps clear violet between the
|
|
38210
|
+
* two at every frame. Rotate and scale are one transform, so the two can never
|
|
38211
|
+
* drift apart. The three timing functions are the design's one eased quarter
|
|
38212
|
+
* turn, cubic-bezier(0.65, 0, 0.35, 1) over the gesture, split at the 37.5%
|
|
38213
|
+
* and 52.5% stops, so the angle follows that curve exactly.
|
|
38214
|
+
*
|
|
38215
|
+
* THE COMPANION TWINKLES. Its trough sits at 45%, the instant the main spark
|
|
38216
|
+
* passes 45 degrees, and it shares the turn's gesture window.
|
|
38217
|
+
*/
|
|
38218
|
+
.crewlet-thinking__mark [data-motion='turn'],
|
|
38219
|
+
.crewlet-thinking__mark [data-motion='twinkle'] {
|
|
38220
|
+
transform-box: fill-box;
|
|
38221
|
+
transform-origin: center;
|
|
38222
|
+
}
|
|
38223
|
+
|
|
38203
38224
|
.crewlet-thinking__mark [data-motion='turn'] {
|
|
38204
|
-
|
|
38205
|
-
|
|
38206
|
-
|
|
38225
|
+
animation: crewlet-thinking-turn var(--motion-duration-spark) linear infinite;
|
|
38226
|
+
}
|
|
38227
|
+
|
|
38228
|
+
.crewlet-thinking__mark [data-motion='twinkle'] {
|
|
38229
|
+
animation: crewlet-thinking-twinkle var(--motion-duration-spark) linear infinite;
|
|
38207
38230
|
}
|
|
38208
38231
|
|
|
38209
38232
|
@keyframes crewlet-thinking-turn {
|
|
38210
|
-
0
|
|
38211
|
-
|
|
38233
|
+
0%,
|
|
38234
|
+
20% {
|
|
38235
|
+
transform: rotate(0deg) scale(1);
|
|
38236
|
+
animation-timing-function: cubic-bezier(0.4878, 0, 0.7883, 0.4041);
|
|
38212
38237
|
}
|
|
38213
38238
|
|
|
38214
|
-
|
|
38239
|
+
37.5% {
|
|
38240
|
+
transform: rotate(15.37deg) scale(0.8);
|
|
38241
|
+
animation-timing-function: cubic-bezier(0.4462, 0.2792, 0.5538, 0.7208);
|
|
38242
|
+
}
|
|
38243
|
+
|
|
38244
|
+
52.5% {
|
|
38245
|
+
transform: rotate(74.63deg) scale(0.8);
|
|
38246
|
+
animation-timing-function: cubic-bezier(0.2117, 0.5959, 0.5122, 1);
|
|
38247
|
+
}
|
|
38248
|
+
|
|
38249
|
+
70%,
|
|
38215
38250
|
100% {
|
|
38216
|
-
transform: rotate(90deg);
|
|
38251
|
+
transform: rotate(90deg) scale(1);
|
|
38252
|
+
}
|
|
38253
|
+
}
|
|
38254
|
+
|
|
38255
|
+
@keyframes crewlet-thinking-twinkle {
|
|
38256
|
+
0%,
|
|
38257
|
+
20% {
|
|
38258
|
+
transform: scale(1);
|
|
38259
|
+
opacity: 1;
|
|
38260
|
+
animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1);
|
|
38261
|
+
}
|
|
38262
|
+
|
|
38263
|
+
45% {
|
|
38264
|
+
transform: scale(0.7);
|
|
38265
|
+
opacity: 0.5;
|
|
38266
|
+
animation-timing-function: cubic-bezier(0.45, 0, 0.55, 1);
|
|
38267
|
+
}
|
|
38268
|
+
|
|
38269
|
+
70%,
|
|
38270
|
+
100% {
|
|
38271
|
+
transform: scale(1);
|
|
38272
|
+
opacity: 1;
|
|
38217
38273
|
}
|
|
38218
38274
|
}
|
|
38219
38275
|
|
|
@@ -38273,9 +38329,24 @@ b.crewlet-switcher__match {
|
|
|
38273
38329
|
}
|
|
38274
38330
|
}
|
|
38275
38331
|
|
|
38332
|
+
/*
|
|
38333
|
+
* UNDER REDUCED MOTION THE MARK HOLDS A WORKING POSE. Both animations stop,
|
|
38334
|
+
* and the mark shows the gesture's tuck and the twinkle's trough held still
|
|
38335
|
+
* on the tile's axes: the main spark at 0.8 and the companion at 0.7 and half
|
|
38336
|
+
* strength. It differs from the idle mark without moving, and the 16 pixel
|
|
38337
|
+
* grid drawing keeps its pixel centred tips, so it stays crisp at 16 and
|
|
38338
|
+
* 20 px. The pose is swapped in at once, never with a transition.
|
|
38339
|
+
*/
|
|
38276
38340
|
@media (prefers-reduced-motion: reduce) {
|
|
38277
38341
|
.crewlet-thinking__mark [data-motion='turn'] {
|
|
38278
38342
|
animation: none;
|
|
38343
|
+
transform: scale(0.8);
|
|
38344
|
+
}
|
|
38345
|
+
|
|
38346
|
+
.crewlet-thinking__mark [data-motion='twinkle'] {
|
|
38347
|
+
animation: none;
|
|
38348
|
+
transform: scale(0.7);
|
|
38349
|
+
opacity: 0.5;
|
|
38279
38350
|
}
|
|
38280
38351
|
|
|
38281
38352
|
.crewlet-thinking__status {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crewlethq/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.67.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.
|
|
46
|
-
"@crewlethq/tokens": "0.
|
|
45
|
+
"@crewlethq/icons": "0.67.0",
|
|
46
|
+
"@crewlethq/tokens": "0.67.0",
|
|
47
47
|
"prosemirror-commands": "1.7.2",
|
|
48
48
|
"prosemirror-gapcursor": "1.4.1",
|
|
49
49
|
"prosemirror-history": "1.5.1",
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* The assistant at work: the Assistant's mark, its blades turning, and a line
|
|
3
|
-
* of status under a shimmer. See ThinkingIndicator.tsx for why it replaces a
|
|
4
|
-
* caret and how it is announced.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/*
|
|
8
|
-
* ONE LINE OF PROSE TALL, at every state: the mark alone, the mark with a
|
|
9
|
-
* status line, and the line changing from one step to the next all keep the
|
|
10
|
-
* same height, so the thread never moves while the assistant works.
|
|
11
|
-
*/
|
|
12
|
-
.crewlet-thinking {
|
|
13
|
-
display: flex;
|
|
14
|
-
align-items: center;
|
|
15
|
-
gap: var(--spacing-2);
|
|
16
|
-
min-width: 0;
|
|
17
|
-
min-height: calc(var(--font-size-compact) * var(--font-line-height-relaxed));
|
|
18
|
-
font-family: var(--font-family-sans);
|
|
19
|
-
font-size: var(--font-size-compact);
|
|
20
|
-
line-height: var(--font-line-height-relaxed);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/*
|
|
24
|
-
* THE BLADES TURN A QUARTER, THEN REST. The figure is four blades around a
|
|
25
|
-
* core, the same after a quarter turn, so each round ends where the next
|
|
26
|
-
* begins and the loop never shows a seam. One round is the breath period
|
|
27
|
-
* (2.2s): the turn takes its first half on the in-out ease and the second
|
|
28
|
-
* half is still, which reads as steady thought rather than as a spinner. The
|
|
29
|
-
* core holds still, as the mark's own description promises.
|
|
30
|
-
*/
|
|
31
|
-
.crewlet-thinking__mark [data-motion='turn'] {
|
|
32
|
-
transform-box: view-box;
|
|
33
|
-
transform-origin: 50% 50%;
|
|
34
|
-
animation: crewlet-thinking-turn var(--motion-duration-breath) var(--motion-easing-in-out) infinite;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
@keyframes crewlet-thinking-turn {
|
|
38
|
-
0% {
|
|
39
|
-
transform: rotate(0deg);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
50%,
|
|
43
|
-
100% {
|
|
44
|
-
transform: rotate(90deg);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/*
|
|
49
|
-
* THE SHIMMER IS A LIGHTER BAND CROSSING THE WORDS, the band Skeleton sweeps
|
|
50
|
-
* across a placeholder, set in ink rather than in surface: the words are the
|
|
51
|
-
* secondary ink at rest, so they read at every point of the sweep, and the
|
|
52
|
-
* band is the primary ink. The gradient is clipped to the glyphs and is three
|
|
53
|
-
* times the line's width, so the band crosses it rather than standing in it.
|
|
54
|
-
*/
|
|
55
|
-
.crewlet-thinking__status {
|
|
56
|
-
min-width: 0;
|
|
57
|
-
overflow: hidden;
|
|
58
|
-
color: var(--color-text-secondary);
|
|
59
|
-
text-overflow: ellipsis;
|
|
60
|
-
white-space: nowrap;
|
|
61
|
-
animation: crewlet-thinking-enter var(--motion-duration-moderate) var(--motion-easing-out);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
@supports (background-clip: text) or (-webkit-background-clip: text) {
|
|
65
|
-
.crewlet-thinking__status {
|
|
66
|
-
background-image: linear-gradient(
|
|
67
|
-
90deg,
|
|
68
|
-
var(--color-text-secondary) 0%,
|
|
69
|
-
var(--color-text-secondary) 40%,
|
|
70
|
-
var(--color-text-primary) 50%,
|
|
71
|
-
var(--color-text-secondary) 60%,
|
|
72
|
-
var(--color-text-secondary) 100%
|
|
73
|
-
);
|
|
74
|
-
background-size: 300% 100%;
|
|
75
|
-
-webkit-background-clip: text;
|
|
76
|
-
background-clip: text;
|
|
77
|
-
color: transparent;
|
|
78
|
-
animation:
|
|
79
|
-
crewlet-thinking-enter var(--motion-duration-moderate) var(--motion-easing-out),
|
|
80
|
-
crewlet-thinking-shimmer var(--motion-duration-breath) linear infinite;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
@keyframes crewlet-thinking-shimmer {
|
|
85
|
-
from {
|
|
86
|
-
background-position: 100% 50%;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
to {
|
|
90
|
-
background-position: 0 50%;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
@keyframes crewlet-thinking-enter {
|
|
95
|
-
from {
|
|
96
|
-
opacity: 0;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
to {
|
|
100
|
-
opacity: 1;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
@media (prefers-reduced-motion: reduce) {
|
|
105
|
-
.crewlet-thinking__mark [data-motion='turn'] {
|
|
106
|
-
animation: none;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.crewlet-thinking__status {
|
|
110
|
-
background-image: none;
|
|
111
|
-
color: var(--color-text-secondary);
|
|
112
|
-
animation: none;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/* The system's own ink: a gradient clipped to text is dropped there. */
|
|
117
|
-
@media (forced-colors: active) {
|
|
118
|
-
.crewlet-thinking__status {
|
|
119
|
-
background-image: none;
|
|
120
|
-
color: CanvasText;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Stepper } from './chunk-HJBHP66O.js';
|
|
2
1
|
import { PageHeader } from './chunk-FPDIHEM4.js';
|
|
2
|
+
import { Stepper } from './chunk-HJBHP66O.js';
|
|
3
3
|
import { Disclosure } from './chunk-222VILSP.js';
|
|
4
4
|
import { useHeadingLevel, nextHeadingLevel, headingTag, HeadingLevelProvider } from './chunk-PQADV6P6.js';
|
|
5
5
|
import { useMediaMatch } from './chunk-RTPQDNW3.js';
|