@crewlethq/ui 0.52.0 → 0.52.2

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,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.54.0
208
+
209
+ **A `LogoSlotGroup`'s action rows start at the top of their shared row.** Where one slot's actions wrap onto two lines (Replace and Remove in a narrow column), the row is as tall as they are, and the other slots' single buttons stood centred in it, half a line below the first button beside them. Every slot's first button now stands on one line.
210
+
211
+ ## Changes in 0.53.0
212
+
213
+ **`LogoSlotGroup` fits three slots in a form's column, with no gap above an action row.** The columns are as many as fit at 9rem (they were 14rem), so three slots stand in one row in a 480px column, a setup step's, and the group stacks them one under another below 30rem of its own width. The group's rows no longer carry a grid gap, which a subgrid's rows drew too: a row no slot uses (no notes under any stage) took two gaps between the stage and the action row, and now takes none. Lines of slots on a narrow page are set off by each slot's end margin.
214
+
207
215
  ## Changes in 0.52.0
208
216
 
209
217
  A second polish of the brand setup pieces.
@@ -1,8 +1,8 @@
1
- export { AvatarPicker } from '../chunk-EW2N4FOD.js';
1
+ export { AvatarPicker } from '../chunk-3QSKDZR5.js';
2
2
  import '../chunk-34RMTXDZ.js';
3
3
  import '../chunk-KHJIEPZV.js';
4
- import '../chunk-SNQRGH4A.js';
5
4
  import '../chunk-AYKXMIOR.js';
5
+ import '../chunk-SNQRGH4A.js';
6
6
  import '../chunk-6FVGSWLS.js';
7
7
  import '../chunk-ILFEWRLG.js';
8
8
  import '../chunk-WIATRXEJ.js';
@@ -31,8 +31,9 @@ export interface LogoSlotGroupProps extends Omit<HTMLAttributes<HTMLDivElement>,
31
31
  * slot, so it is drawn once under the row (`hint`) and each picker is
32
32
  * described by it, rather than repeated three times.
33
33
  *
34
- * THE COLUMNS FOLLOW THE ROOM: as many as fit at 14rem each, then one under
35
- * another on a phone, each still aligned within itself.
34
+ * THE COLUMNS FOLLOW THE ROOM: as many as fit at 9rem each, so three stand
35
+ * in one row in a 480px form column, and one under another where the group
36
+ * has under 30rem, each still aligned within itself.
36
37
  */
37
38
  export declare function LogoSlotGroup({ children, label, hint, className, ...rest }: LogoSlotGroupProps): import("react").JSX.Element;
38
39
  export {};
@@ -1,4 +1,4 @@
1
- export { LogoSlot, LogoSlotGroup } from '../chunk-UKE7LTFZ.js';
1
+ export { LogoSlot, LogoSlotGroup } from '../chunk-SYY26XBX.js';
2
2
  import '../chunk-THDGBD6Y.js';
3
3
  import '../chunk-WW7TU6HE.js';
4
4
  import '../chunk-KYIAFNU7.js';
@@ -170,21 +170,37 @@
170
170
  * subgrid spanning the group's four rows: its name and description, its
171
171
  * stage, what is said under it, and its actions. A row holds the tallest of
172
172
  * its parts across the slots, so every stage, note and action row starts on
173
- * one line. The steps between the parts are margins rather than the grid's
174
- * gap, so a row no slot uses (no notes anywhere) takes no room at all.
173
+ * one line.
174
+ *
175
+ * NO GRID GAP ANYWHERE IN THE ROWS. A gap between the group's rows is drawn
176
+ * between a subgrid's rows too, so an empty row (no notes in any slot) still
177
+ * stood two gaps tall between the stage and the actions. Every step is a
178
+ * margin on the part that follows it instead, and a row nobody uses takes no
179
+ * room at all; a line of slots is set off from the next (on a narrow page)
180
+ * by the slot's own end margin.
181
+ *
182
+ * THREE ACROSS IN A FORM'S COLUMN. The columns are as many as fit at 9rem,
183
+ * so three slots stand in one row in a 480px column (a setup step's), and
184
+ * the group's own width under 30rem stacks them one under another.
175
185
  */
176
186
  .crewlet-logo-slot-group {
187
+ container-type: inline-size;
177
188
  display: flex;
178
189
  flex-direction: column;
179
- gap: var(--spacing-3);
180
190
  min-width: 0;
181
191
  }
182
192
 
183
193
  .crewlet-logo-slot-group__slots {
184
194
  display: grid;
185
- grid-template-columns: repeat(auto-fill, minmax(min(14rem, 100%), 1fr));
195
+ grid-template-columns: repeat(auto-fit, minmax(min(9rem, 100%), 1fr));
186
196
  column-gap: var(--spacing-5);
187
- row-gap: var(--spacing-6);
197
+ row-gap: 0;
198
+ }
199
+
200
+ @container (width < 30rem) {
201
+ .crewlet-logo-slot-group__slots {
202
+ grid-template-columns: minmax(0, 1fr);
203
+ }
188
204
  }
189
205
 
190
206
  .crewlet-logo-slot-group__slots > .crewlet-logo-slot {
@@ -193,6 +209,7 @@
193
209
  grid-template-rows: subgrid;
194
210
  row-gap: 0;
195
211
  align-content: start;
212
+ margin-block-end: var(--spacing-5);
196
213
  }
197
214
 
198
215
  .crewlet-logo-slot-group__slots > .crewlet-logo-slot > .crewlet-logo-slot__head {
@@ -209,8 +226,17 @@
209
226
  margin-block-start: var(--spacing-2);
210
227
  }
211
228
 
229
+ /*
230
+ * THE ACTION ROWS START AT THE TOP OF THEIR SHARED ROW. The row is as tall as
231
+ * the tallest slot's actions (a slot whose Replace and Remove wrap onto two
232
+ * lines), and a row stretched to it and centred put a neighbour's single
233
+ * button half a line lower than the first button beside it. Held to the start,
234
+ * every slot's first button stands on one line.
235
+ */
212
236
  .crewlet-logo-slot-group__slots > .crewlet-logo-slot > .crewlet-logo-slot__foot {
213
237
  grid-row: 4;
238
+ align-self: start;
239
+ align-content: flex-start;
214
240
  margin-block-start: var(--spacing-2);
215
241
  }
216
242
 
@@ -1,4 +1,4 @@
1
- export { RichEditor, preloadRichEditor } from '../chunk-KFR75JOK.js';
1
+ export { RichEditor, preloadRichEditor } from '../chunk-VVOPDWLX.js';
2
2
  export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
3
3
  import '../chunk-BAKPMH3S.js';
4
4
  import '../chunk-BPCY7ZID.js';
@@ -4,7 +4,7 @@ import { normalizeHex } from './chunk-7W3LYIOC.js';
4
4
  import { Button } from './chunk-OG6CL3EB.js';
5
5
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
- import './LogoSlot-ETD74ELF.css';
7
+ import './LogoSlot-NAJE5XY3.css';
8
8
  import { createContext, useId, useContext } from 'react';
9
9
  import { ImageGlyph, CircleAlertGlyph, UploadGlyph, TrashGlyph } from '@crewlethq/icons/glyphs';
10
10
  import { themes } from '@crewlethq/tokens';
@@ -9,7 +9,7 @@ import { jsx } from 'react/jsx-runtime';
9
9
  var engine = null;
10
10
  var loading = null;
11
11
  function loadEngine() {
12
- loading ??= import('./Editor-SZFWVDAU.js').then(
12
+ loading ??= import('./Editor-FEKMRFBK.js').then(
13
13
  (module) => {
14
14
  engine = module.Editor;
15
15
  return engine;
@@ -3,24 +3,24 @@ export { TypeSpecimen } from '../chunk-JKAFEFFC.js';
3
3
  export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-RFPCHMSX.js';
4
4
  export { VersionTimeline } from '../chunk-NQCY44B3.js';
5
5
  export { WidgetFrame } from '../chunk-DFK5EQTU.js';
6
- export { ThemeToggle } from '../chunk-PM3JVNRY.js';
7
6
  export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from '../chunk-FEJANUZK.js';
7
+ export { TileGrid } from '../chunk-Q6CQMS6R.js';
8
8
  export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-6VQA2LZC.js';
9
9
  export { ToastProvider, Toaster, useToast } from '../chunk-AC22RZKC.js';
10
10
  export { TreeCanvas } from '../chunk-CAVWDJF4.js';
11
11
  export { TagsInput } from '../chunk-SXBJMBSV.js';
12
12
  export { ThemeGallery } from '../chunk-UTESMBPL.js';
13
- export { ThemeSwatch } from '../chunk-MNFU2RNT.js';
14
13
  export { DensitySwitcher, ThemeSwitcher } from '../chunk-SEPSXOGJ.js';
14
+ export { ThemeToggle } from '../chunk-PM3JVNRY.js';
15
15
  export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-Z24ZUSTX.js';
16
- export { TileGrid } from '../chunk-Q6CQMS6R.js';
16
+ export { ThemeSwatch } from '../chunk-MNFU2RNT.js';
17
17
  export { Statement } from '../chunk-MZJKPTA5.js';
18
18
  export { Switcher } from '../chunk-GPZXBJFU.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-4BJK7FE5.js';
21
21
  export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-7CGPPAYR.js';
22
- export { SlideGrid } from '../chunk-3V5T5K5H.js';
23
22
  export { SlideFilmstrip } from '../chunk-SQ4JFHO7.js';
23
+ export { SlideGrid } from '../chunk-3V5T5K5H.js';
24
24
  export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from '../chunk-D3EJSLCL.js';
25
25
  export { StatCard } from '../chunk-YPTTSJPM.js';
26
26
  export { StatGroup } from '../chunk-OUD75UB2.js';
@@ -42,11 +42,11 @@ export { QR_DARK, QR_LIGHT, QR_QUIET_ZONE, QrCode, qrModulePath, qrModules } fro
42
42
  export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from '../chunk-ZAJHGDAW.js';
43
43
  export { RelatedRow } from '../chunk-N4GBDK4L.js';
44
44
  export { Text } from '../chunk-QP2P6GDQ.js';
45
+ export { RichEditor, preloadRichEditor } from '../chunk-VVOPDWLX.js';
46
+ export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
45
47
  export { canonicalMarkdown, roundTripMarkdown } from '../chunk-SWD4QBL6.js';
46
48
  import '../chunk-QH6VYJ3X.js';
47
49
  export { FRAME_HELLO_TIMEOUT_MS, FRAME_LOAD_GRACE_MS, SandboxedFrame, SandboxedFrameNotice, SandboxedFramePlaceholder } from '../chunk-WQQ5T5SA.js';
48
- export { RichEditor, preloadRichEditor } from '../chunk-KFR75JOK.js';
49
- export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
50
50
  export { PresenceStack } from '../chunk-3LYWD3BO.js';
51
51
  export { PresenterView, formatStopwatch } from '../chunk-E6HXFFWO.js';
52
52
  export { SLIDE_NAV_LABELS, SlideNav } from '../chunk-RRO7UEYU.js';
@@ -72,7 +72,7 @@ export { OrgLabel } from '../chunk-ONQKKHON.js';
72
72
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from '../chunk-5XACKNYR.js';
73
73
  export { LIVE_PREVIEW_DWELL_MS, LIVE_PREVIEW_MARGIN, LIVE_PREVIEW_MAX, LIVE_PREVIEW_MAX_FRAMES, LIVE_PREVIEW_RENDER_MS, LIVE_PREVIEW_STILLS_KEPT, LivePreview, LivePreviewBudgetProvider, PREVIEW_FILL_MAX_CUT, PreviewScale, createLivePreviewBudget, createLivePreviewStills, immediately, perFrame, useLivePreview } from '../chunk-CQFQGAZI.js';
74
74
  export { LockedLabel } from '../chunk-OHGH7O6T.js';
75
- export { LogoSlot, LogoSlotGroup } from '../chunk-UKE7LTFZ.js';
75
+ export { LogoSlot, LogoSlotGroup } from '../chunk-SYY26XBX.js';
76
76
  export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from '../chunk-BAKPMH3S.js';
77
77
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-SS4XCUUJ.js';
78
78
  export { LAYERS_LIST_LABELS, LayersList } from '../chunk-M6NQ4XGK.js';
@@ -133,15 +133,17 @@ export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, use
133
133
  export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-EZ43L6T7.js';
134
134
  export { ConfirmField, confirmMatches } from '../chunk-2GIWL7IS.js';
135
135
  export { InlineCode } from '../chunk-5CLW2CXT.js';
136
- export { CatalogTile } from '../chunk-TGSIVB6H.js';
136
+ export { ChangeMark } from '../chunk-66X5WDKE.js';
137
+ export { LONGTEXT_MAX_DEFAULT, RATING_MAX_CEILING, RATING_MAX_DEFAULT, SHEET_COLUMN_BOUNDS, SHEET_COLUMN_TYPES, SHEET_COLUMN_WIDTHS, SHEET_FIT_SAMPLES, SHEET_LABELS, SHEET_ROW_HEIGHT, SHEET_ROW_NUMBER_WIDTH, SheetPendingEdits, TEXT_MAX_DEFAULT, URL_MAX, cellDescription, cellKey, cellSpeech, changeText, changeTime, checkValue, columnOffsets, columnWidth, compareValues, displayText, drawnColumns, editText, editorSide, findOption, findPerson, fitSamples, fittedWidth, flagText, hasPrevious, inRange, isEmptyValue, isMod, isMultiCell, isSheetColumnType, isTypingKey, liveOptions, moveFrom, nextSort, normalizeValue, optionHue, parseOptionList, parseTSV, parseText, planClear, planPaste, presenceByCell, presenceByColumn, presenceByRow, rangeOf, ratingMax, refusalText, retypeColumn, rowName, sameValue, scrollToRow, sheetLabels, sortRows, spokenText, statusTone, textMax, toTSV, visibleRows } from '../chunk-LFSIKGRQ.js';
138
+ export { PRESENCE_ACTIVITIES, PRESENCE_HUES, PRESENCE_LABELS, assignPresenceHues, collapseSessions, joinNames, presenceLabels, presenceOrder } from '../chunk-Z7JYG5TF.js';
137
139
  import '../chunk-3L5NHASN.js';
138
140
  export { ActivityStrip, BarList, ChartEmpty, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Histogram, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, histogramTicks, niceScale, useChartHover } from '../chunk-HMVQQEHW.js';
139
141
  export { ChoiceButtons } from '../chunk-WXRH7NZW.js';
142
+ export { ChoiceList } from '../chunk-EAQLI2SO.js';
140
143
  export { CodeBlock } from '../chunk-A4GFEMVI.js';
141
144
  export { CopyButton, Copyable } from '../chunk-7SHAFLEX.js';
142
145
  export { useClipboard, writeClipboard } from '../chunk-STJ7QBC3.js';
143
146
  export { useOutcome } from '../chunk-DTIW4CHZ.js';
144
- export { ChoiceList } from '../chunk-EAQLI2SO.js';
145
147
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from '../chunk-GXQ3B46I.js';
146
148
  export { Callout } from '../chunk-BPCY7ZID.js';
147
149
  export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from '../chunk-VP2ODUCC.js';
@@ -151,14 +153,12 @@ export { CanvasToolbar, toolForKey } from '../chunk-X4NIE7CI.js';
151
153
  export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-NR4CPM4T.js';
152
154
  export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-D7Q5MQRF.js';
153
155
  import '../chunk-LM3ISVJA.js';
154
- export { ChangeMark } from '../chunk-66X5WDKE.js';
155
- export { LONGTEXT_MAX_DEFAULT, RATING_MAX_CEILING, RATING_MAX_DEFAULT, SHEET_COLUMN_BOUNDS, SHEET_COLUMN_TYPES, SHEET_COLUMN_WIDTHS, SHEET_FIT_SAMPLES, SHEET_LABELS, SHEET_ROW_HEIGHT, SHEET_ROW_NUMBER_WIDTH, SheetPendingEdits, TEXT_MAX_DEFAULT, URL_MAX, cellDescription, cellKey, cellSpeech, changeText, changeTime, checkValue, columnOffsets, columnWidth, compareValues, displayText, drawnColumns, editText, editorSide, findOption, findPerson, fitSamples, fittedWidth, flagText, hasPrevious, inRange, isEmptyValue, isMod, isMultiCell, isSheetColumnType, isTypingKey, liveOptions, moveFrom, nextSort, normalizeValue, optionHue, parseOptionList, parseTSV, parseText, planClear, planPaste, presenceByCell, presenceByColumn, presenceByRow, rangeOf, ratingMax, refusalText, retypeColumn, rowName, sameValue, scrollToRow, sheetLabels, sortRows, spokenText, statusTone, textMax, toTSV, visibleRows } from '../chunk-LFSIKGRQ.js';
156
- export { PRESENCE_ACTIVITIES, PRESENCE_HUES, PRESENCE_LABELS, assignPresenceHues, collapseSessions, joinNames, presenceLabels, presenceOrder } from '../chunk-Z7JYG5TF.js';
157
- export { AvatarPicker } from '../chunk-EW2N4FOD.js';
156
+ export { CatalogTile } from '../chunk-TGSIVB6H.js';
157
+ export { AvatarPicker } from '../chunk-3QSKDZR5.js';
158
158
  export { HuePicker, HueSwatch } from '../chunk-34RMTXDZ.js';
159
159
  export { Popover } from '../chunk-KHJIEPZV.js';
160
- export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from '../chunk-SNQRGH4A.js';
161
160
  export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from '../chunk-AYKXMIOR.js';
161
+ export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from '../chunk-SNQRGH4A.js';
162
162
  export { BrandChip } from '../chunk-ZH77BXMA.js';
163
163
  export { BrandSample } from '../chunk-AVMQMY66.js';
164
164
  export { BrandScope, brandScopeInputs } from '../chunk-X7WEE3EK.js';
package/dist/index.js CHANGED
@@ -3,24 +3,24 @@ export { TypeSpecimen } from './chunk-JKAFEFFC.js';
3
3
  export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from './chunk-RFPCHMSX.js';
4
4
  export { VersionTimeline } from './chunk-NQCY44B3.js';
5
5
  export { WidgetFrame } from './chunk-DFK5EQTU.js';
6
- export { ThemeToggle } from './chunk-PM3JVNRY.js';
7
6
  export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from './chunk-FEJANUZK.js';
7
+ export { TileGrid } from './chunk-Q6CQMS6R.js';
8
8
  export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-6VQA2LZC.js';
9
9
  export { ToastProvider, Toaster, useToast } from './chunk-AC22RZKC.js';
10
10
  export { TreeCanvas } from './chunk-CAVWDJF4.js';
11
11
  export { TagsInput } from './chunk-SXBJMBSV.js';
12
12
  export { ThemeGallery } from './chunk-UTESMBPL.js';
13
- export { ThemeSwatch } from './chunk-MNFU2RNT.js';
14
13
  export { DensitySwitcher, ThemeSwitcher } from './chunk-SEPSXOGJ.js';
14
+ export { ThemeToggle } from './chunk-PM3JVNRY.js';
15
15
  export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from './chunk-Z24ZUSTX.js';
16
- export { TileGrid } from './chunk-Q6CQMS6R.js';
16
+ export { ThemeSwatch } from './chunk-MNFU2RNT.js';
17
17
  export { Statement } from './chunk-MZJKPTA5.js';
18
18
  export { Switcher } from './chunk-GPZXBJFU.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-4BJK7FE5.js';
21
21
  export { SLIDE_COMPARE_LABELS, SlideCompare } from './chunk-7CGPPAYR.js';
22
- export { SlideGrid } from './chunk-3V5T5K5H.js';
23
22
  export { SlideFilmstrip } from './chunk-SQ4JFHO7.js';
23
+ export { SlideGrid } from './chunk-3V5T5K5H.js';
24
24
  export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from './chunk-D3EJSLCL.js';
25
25
  export { StatCard } from './chunk-YPTTSJPM.js';
26
26
  export { StatGroup } from './chunk-OUD75UB2.js';
@@ -42,11 +42,11 @@ export { QR_DARK, QR_LIGHT, QR_QUIET_ZONE, QrCode, qrModulePath, qrModules } fro
42
42
  export { ReadingPane, ReadingPaneByline, ReadingPaneLead, ReadingPaneOutcome, ReadingPaneQuote, ReadingPaneReasoning, ReadingPaneSection, ReadingPaneTitle } from './chunk-ZAJHGDAW.js';
43
43
  export { RelatedRow } from './chunk-N4GBDK4L.js';
44
44
  export { Text } from './chunk-QP2P6GDQ.js';
45
+ export { RichEditor, preloadRichEditor } from './chunk-VVOPDWLX.js';
46
+ export { RICH_EDITOR_LABELS, richEditorLabels } from './chunk-CSQTDGTS.js';
45
47
  export { canonicalMarkdown, roundTripMarkdown } from './chunk-SWD4QBL6.js';
46
48
  import './chunk-QH6VYJ3X.js';
47
49
  export { FRAME_HELLO_TIMEOUT_MS, FRAME_LOAD_GRACE_MS, SandboxedFrame, SandboxedFrameNotice, SandboxedFramePlaceholder } from './chunk-WQQ5T5SA.js';
48
- export { RichEditor, preloadRichEditor } from './chunk-KFR75JOK.js';
49
- export { RICH_EDITOR_LABELS, richEditorLabels } from './chunk-CSQTDGTS.js';
50
50
  export { PresenceStack } from './chunk-3LYWD3BO.js';
51
51
  export { PresenterView, formatStopwatch } from './chunk-E6HXFFWO.js';
52
52
  export { SLIDE_NAV_LABELS, SlideNav } from './chunk-RRO7UEYU.js';
@@ -72,7 +72,7 @@ export { OrgLabel } from './chunk-ONQKKHON.js';
72
72
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from './chunk-5XACKNYR.js';
73
73
  export { LIVE_PREVIEW_DWELL_MS, LIVE_PREVIEW_MARGIN, LIVE_PREVIEW_MAX, LIVE_PREVIEW_MAX_FRAMES, LIVE_PREVIEW_RENDER_MS, LIVE_PREVIEW_STILLS_KEPT, LivePreview, LivePreviewBudgetProvider, PREVIEW_FILL_MAX_CUT, PreviewScale, createLivePreviewBudget, createLivePreviewStills, immediately, perFrame, useLivePreview } from './chunk-CQFQGAZI.js';
74
74
  export { LockedLabel } from './chunk-OHGH7O6T.js';
75
- export { LogoSlot, LogoSlotGroup } from './chunk-UKE7LTFZ.js';
75
+ export { LogoSlot, LogoSlotGroup } from './chunk-SYY26XBX.js';
76
76
  export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from './chunk-BAKPMH3S.js';
77
77
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from './chunk-SS4XCUUJ.js';
78
78
  export { LAYERS_LIST_LABELS, LayersList } from './chunk-M6NQ4XGK.js';
@@ -133,15 +133,17 @@ export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, use
133
133
  export { COMMENT_THREAD_LABELS, CommentThread } from './chunk-EZ43L6T7.js';
134
134
  export { ConfirmField, confirmMatches } from './chunk-2GIWL7IS.js';
135
135
  export { InlineCode } from './chunk-5CLW2CXT.js';
136
- export { CatalogTile } from './chunk-TGSIVB6H.js';
136
+ export { ChangeMark } from './chunk-66X5WDKE.js';
137
+ export { LONGTEXT_MAX_DEFAULT, RATING_MAX_CEILING, RATING_MAX_DEFAULT, SHEET_COLUMN_BOUNDS, SHEET_COLUMN_TYPES, SHEET_COLUMN_WIDTHS, SHEET_FIT_SAMPLES, SHEET_LABELS, SHEET_ROW_HEIGHT, SHEET_ROW_NUMBER_WIDTH, SheetPendingEdits, TEXT_MAX_DEFAULT, URL_MAX, cellDescription, cellKey, cellSpeech, changeText, changeTime, checkValue, columnOffsets, columnWidth, compareValues, displayText, drawnColumns, editText, editorSide, findOption, findPerson, fitSamples, fittedWidth, flagText, hasPrevious, inRange, isEmptyValue, isMod, isMultiCell, isSheetColumnType, isTypingKey, liveOptions, moveFrom, nextSort, normalizeValue, optionHue, parseOptionList, parseTSV, parseText, planClear, planPaste, presenceByCell, presenceByColumn, presenceByRow, rangeOf, ratingMax, refusalText, retypeColumn, rowName, sameValue, scrollToRow, sheetLabels, sortRows, spokenText, statusTone, textMax, toTSV, visibleRows } from './chunk-LFSIKGRQ.js';
138
+ export { PRESENCE_ACTIVITIES, PRESENCE_HUES, PRESENCE_LABELS, assignPresenceHues, collapseSessions, joinNames, presenceLabels, presenceOrder } from './chunk-Z7JYG5TF.js';
137
139
  import './chunk-3L5NHASN.js';
138
140
  export { ActivityStrip, BarList, ChartEmpty, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Histogram, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, histogramTicks, niceScale, useChartHover } from './chunk-HMVQQEHW.js';
139
141
  export { ChoiceButtons } from './chunk-WXRH7NZW.js';
142
+ export { ChoiceList } from './chunk-EAQLI2SO.js';
140
143
  export { CodeBlock } from './chunk-A4GFEMVI.js';
141
144
  export { CopyButton, Copyable } from './chunk-7SHAFLEX.js';
142
145
  export { useClipboard, writeClipboard } from './chunk-STJ7QBC3.js';
143
146
  export { useOutcome } from './chunk-DTIW4CHZ.js';
144
- export { ChoiceList } from './chunk-EAQLI2SO.js';
145
147
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from './chunk-GXQ3B46I.js';
146
148
  export { Callout } from './chunk-BPCY7ZID.js';
147
149
  export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from './chunk-VP2ODUCC.js';
@@ -151,14 +153,12 @@ export { CanvasToolbar, toolForKey } from './chunk-X4NIE7CI.js';
151
153
  export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-NR4CPM4T.js';
152
154
  export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from './chunk-D7Q5MQRF.js';
153
155
  import './chunk-LM3ISVJA.js';
154
- export { ChangeMark } from './chunk-66X5WDKE.js';
155
- export { LONGTEXT_MAX_DEFAULT, RATING_MAX_CEILING, RATING_MAX_DEFAULT, SHEET_COLUMN_BOUNDS, SHEET_COLUMN_TYPES, SHEET_COLUMN_WIDTHS, SHEET_FIT_SAMPLES, SHEET_LABELS, SHEET_ROW_HEIGHT, SHEET_ROW_NUMBER_WIDTH, SheetPendingEdits, TEXT_MAX_DEFAULT, URL_MAX, cellDescription, cellKey, cellSpeech, changeText, changeTime, checkValue, columnOffsets, columnWidth, compareValues, displayText, drawnColumns, editText, editorSide, findOption, findPerson, fitSamples, fittedWidth, flagText, hasPrevious, inRange, isEmptyValue, isMod, isMultiCell, isSheetColumnType, isTypingKey, liveOptions, moveFrom, nextSort, normalizeValue, optionHue, parseOptionList, parseTSV, parseText, planClear, planPaste, presenceByCell, presenceByColumn, presenceByRow, rangeOf, ratingMax, refusalText, retypeColumn, rowName, sameValue, scrollToRow, sheetLabels, sortRows, spokenText, statusTone, textMax, toTSV, visibleRows } from './chunk-LFSIKGRQ.js';
156
- export { PRESENCE_ACTIVITIES, PRESENCE_HUES, PRESENCE_LABELS, assignPresenceHues, collapseSessions, joinNames, presenceLabels, presenceOrder } from './chunk-Z7JYG5TF.js';
157
- export { AvatarPicker } from './chunk-EW2N4FOD.js';
156
+ export { CatalogTile } from './chunk-TGSIVB6H.js';
157
+ export { AvatarPicker } from './chunk-3QSKDZR5.js';
158
158
  export { HuePicker, HueSwatch } from './chunk-34RMTXDZ.js';
159
159
  export { Popover } from './chunk-KHJIEPZV.js';
160
- export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from './chunk-SNQRGH4A.js';
161
160
  export { NODE_HUES, NODE_HUE_NAMES, isNodeHue } from './chunk-AYKXMIOR.js';
161
+ export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from './chunk-SNQRGH4A.js';
162
162
  export { BrandChip } from './chunk-ZH77BXMA.js';
163
163
  export { BrandSample } from './chunk-AVMQMY66.js';
164
164
  export { BrandScope, brandScopeInputs } from './chunk-X7WEE3EK.js';
package/dist/styles.css CHANGED
@@ -20114,7 +20114,7 @@ a.crewlet-icon-btn {
20114
20114
  }
20115
20115
 
20116
20116
 
20117
- /* LogoSlot-ETD74ELF.css */
20117
+ /* LogoSlot-NAJE5XY3.css */
20118
20118
  /*
20119
20119
  * One of a brand's logos on the ground it is made for. The ground and the ink
20120
20120
  * of its guide are the only values here that are not tokens: they arrive
@@ -20287,21 +20287,37 @@ a.crewlet-icon-btn {
20287
20287
  * subgrid spanning the group's four rows: its name and description, its
20288
20288
  * stage, what is said under it, and its actions. A row holds the tallest of
20289
20289
  * its parts across the slots, so every stage, note and action row starts on
20290
- * one line. The steps between the parts are margins rather than the grid's
20291
- * gap, so a row no slot uses (no notes anywhere) takes no room at all.
20290
+ * one line.
20291
+ *
20292
+ * NO GRID GAP ANYWHERE IN THE ROWS. A gap between the group's rows is drawn
20293
+ * between a subgrid's rows too, so an empty row (no notes in any slot) still
20294
+ * stood two gaps tall between the stage and the actions. Every step is a
20295
+ * margin on the part that follows it instead, and a row nobody uses takes no
20296
+ * room at all; a line of slots is set off from the next (on a narrow page)
20297
+ * by the slot's own end margin.
20298
+ *
20299
+ * THREE ACROSS IN A FORM'S COLUMN. The columns are as many as fit at 9rem,
20300
+ * so three slots stand in one row in a 480px column (a setup step's), and
20301
+ * the group's own width under 30rem stacks them one under another.
20292
20302
  */
20293
20303
  .crewlet-logo-slot-group {
20304
+ container-type: inline-size;
20294
20305
  display: flex;
20295
20306
  flex-direction: column;
20296
- gap: var(--spacing-3);
20297
20307
  min-width: 0;
20298
20308
  }
20299
20309
 
20300
20310
  .crewlet-logo-slot-group__slots {
20301
20311
  display: grid;
20302
- grid-template-columns: repeat(auto-fill, minmax(min(14rem, 100%), 1fr));
20312
+ grid-template-columns: repeat(auto-fit, minmax(min(9rem, 100%), 1fr));
20303
20313
  column-gap: var(--spacing-5);
20304
- row-gap: var(--spacing-6);
20314
+ row-gap: 0;
20315
+ }
20316
+
20317
+ @container (width < 30rem) {
20318
+ .crewlet-logo-slot-group__slots {
20319
+ grid-template-columns: minmax(0, 1fr);
20320
+ }
20305
20321
  }
20306
20322
 
20307
20323
  .crewlet-logo-slot-group__slots > .crewlet-logo-slot {
@@ -20310,6 +20326,7 @@ a.crewlet-icon-btn {
20310
20326
  grid-template-rows: subgrid;
20311
20327
  row-gap: 0;
20312
20328
  align-content: start;
20329
+ margin-block-end: var(--spacing-5);
20313
20330
  }
20314
20331
 
20315
20332
  .crewlet-logo-slot-group__slots > .crewlet-logo-slot > .crewlet-logo-slot__head {
@@ -20326,8 +20343,17 @@ a.crewlet-icon-btn {
20326
20343
  margin-block-start: var(--spacing-2);
20327
20344
  }
20328
20345
 
20346
+ /*
20347
+ * THE ACTION ROWS START AT THE TOP OF THEIR SHARED ROW. The row is as tall as
20348
+ * the tallest slot's actions (a slot whose Replace and Remove wrap onto two
20349
+ * lines), and a row stretched to it and centred put a neighbour's single
20350
+ * button half a line lower than the first button beside it. Held to the start,
20351
+ * every slot's first button stands on one line.
20352
+ */
20329
20353
  .crewlet-logo-slot-group__slots > .crewlet-logo-slot > .crewlet-logo-slot__foot {
20330
20354
  grid-row: 4;
20355
+ align-self: start;
20356
+ align-content: flex-start;
20331
20357
  margin-block-start: var(--spacing-2);
20332
20358
  }
20333
20359
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.52.0",
3
+ "version": "0.52.2",
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.52.0",
46
- "@crewlethq/tokens": "0.52.0",
45
+ "@crewlethq/icons": "0.52.2",
46
+ "@crewlethq/tokens": "0.52.2",
47
47
  "prosemirror-commands": "1.7.2",
48
48
  "prosemirror-gapcursor": "1.4.1",
49
49
  "prosemirror-history": "1.5.1",
@@ -1,5 +1,5 @@
1
- import { schema, readMarkdown, writeMarkdown } from './chunk-QH6VYJ3X.js';
2
1
  import { richEditorLabels } from './chunk-CSQTDGTS.js';
2
+ import { schema, readMarkdown, writeMarkdown } from './chunk-QH6VYJ3X.js';
3
3
  import { safeHref, MARKDOWN_CALLOUT_TONES } from './chunk-BAKPMH3S.js';
4
4
  import { Toolbar } from './chunk-NR4CPM4T.js';
5
5
  import { FormField, Input } from './chunk-LJHH4WWB.js';
@@ -1,7 +1,7 @@
1
1
  import { HuePicker } from './chunk-34RMTXDZ.js';
2
2
  import { Popover } from './chunk-KHJIEPZV.js';
3
- import { CharacterPicker } from './chunk-SNQRGH4A.js';
4
3
  import { NODE_HUE_NAMES } from './chunk-AYKXMIOR.js';
4
+ import { CharacterPicker } from './chunk-SNQRGH4A.js';
5
5
  import { Avatar } from './chunk-PZKHBB7D.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
7
  import './AvatarPicker-PREY36MG.css';