@crewlethq/ui 0.8.0 → 0.8.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.
@@ -1,3 +1,3 @@
1
- export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-6VL4LGWC.js';
1
+ export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-4WNNEDKO.js';
2
2
  import '../chunk-BZFWDIV6.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -213,24 +213,67 @@
213
213
  gap: calc(var(--spacing-1) * 1.5);
214
214
  }
215
215
 
216
+ /*
217
+ * THE BAR STANDS ON THE NAME'S LINE, AND A SPLIT BAR'S KEY ON THE SUB'S. An
218
+ * item is a grid of two columns, the words' and the plot, and two lines. The
219
+ * row spans it and lends its parts to it (`subgrid`), and the words' wrapper
220
+ * lends its own two lines in turn (`display: contents`), so the name and the
221
+ * plot share the first line and are centred on each other, and the sub and a
222
+ * split bar's key share the second, the key starting where the bar starts.
223
+ * Centred on the words' whole column instead, a row with a sub drew its bar,
224
+ * and the value at its end, between the name and the sub, a few pixels below
225
+ * the name it belongs to; and the key stood on a third line of its own, under
226
+ * the sub, where it read as one more bar. A row with neither is one line,
227
+ * centred in the item's height.
228
+ *
229
+ * THE KEY LETS THE POINTER THROUGH. It is outside the row in the markup,
230
+ * because a row that leads somewhere is a link or a button and holds no list,
231
+ * so it is drawn over the row's second line rather than inside it, and a
232
+ * press on it is a press on the row.
233
+ */
234
+ .crewlet-bar-list--beside .crewlet-bar-list__item {
235
+ display: grid;
236
+ grid-template-columns: var(--crewlet-bar-list-label-width) minmax(0, 1fr);
237
+ grid-template-rows: auto auto;
238
+ align-content: center;
239
+ column-gap: var(--spacing-3);
240
+ min-height: var(--size-control-md);
241
+ }
242
+
243
+ /* `gap: normal` is what hands a subgrid its parent's gaps: the stacked
244
+ register's own gap on every row would otherwise move the plot off the
245
+ column the key stands in. */
216
246
  .crewlet-bar-list--beside .crewlet-bar-list__row {
217
- flex-direction: row;
247
+ display: grid;
248
+ grid-column: 1 / -1;
249
+ grid-row: 1 / -1;
250
+ grid-template-columns: subgrid;
251
+ grid-template-rows: subgrid;
218
252
  align-items: center;
219
- gap: var(--spacing-3);
220
- min-height: var(--size-control-md);
253
+ gap: normal;
221
254
  }
222
255
 
223
256
  .crewlet-bar-list__names {
224
- display: flex;
225
- flex: none;
226
- flex-direction: column;
227
- width: var(--crewlet-bar-list-label-width);
228
- min-width: 0;
257
+ display: contents;
229
258
  line-height: var(--font-line-height-tight);
230
259
  }
231
260
 
261
+ .crewlet-bar-list--beside .crewlet-bar-list__names > .crewlet-bar-list__label {
262
+ grid-row: 1;
263
+ grid-column: 1;
264
+ }
265
+
266
+ .crewlet-bar-list--beside .crewlet-bar-list__plot {
267
+ grid-row: 1;
268
+ grid-column: 2;
269
+ }
270
+
271
+ .crewlet-bar-list--beside .crewlet-bar-list__names > .crewlet-bar-list__sub {
272
+ grid-row: 2;
273
+ grid-column: 1;
274
+ }
275
+
232
276
  .crewlet-bar-list--beside .crewlet-bar-list__label {
233
- flex: none;
234
277
  color: var(--color-text-secondary);
235
278
  }
236
279
 
@@ -240,7 +283,6 @@
240
283
 
241
284
  .crewlet-bar-list__plot {
242
285
  display: block;
243
- flex: 1 1 auto;
244
286
  min-width: 0;
245
287
  }
246
288
 
@@ -296,10 +338,10 @@
296
338
  }
297
339
 
298
340
  /*
299
- * THE KEY UNDER A SPLIT BAR, at the caption step, starting where the bar
300
- * starts: under the plot in the BESIDE register, past the words' column and
301
- * the gap after it, so each name stands under the bar it keys rather than
302
- * under the row's own name.
341
+ * THE KEY UNDER A SPLIT BAR, at the caption step. In the BESIDE register it
342
+ * stands on the row's second line, under the bar it keys (see the item's
343
+ * grid above), so each name stands under its part rather than under the
344
+ * row's own name.
303
345
  */
304
346
  .crewlet-bar-list__key {
305
347
  margin-top: var(--spacing-1);
@@ -307,8 +349,11 @@
307
349
  }
308
350
 
309
351
  .crewlet-bar-list--beside .crewlet-bar-list__key {
352
+ grid-row: 2;
353
+ grid-column: 2;
354
+ align-self: center;
310
355
  margin-top: 0;
311
- padding-inline-start: calc(var(--crewlet-bar-list-label-width) + var(--spacing-3));
356
+ pointer-events: none;
312
357
  }
313
358
 
314
359
  /* ─── Stacked bar ─────────────────────────────────────────────── */
@@ -1,10 +1,10 @@
1
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-QJZ3Y6WW.js';
1
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-KTIEJ5Q5.js';
2
2
  import '../chunk-LSB3EHBW.js';
3
3
  import '../chunk-EUCC37WY.js';
4
- import '../chunk-YCTMKKRA.js';
4
+ import '../chunk-BTHX2FS3.js';
5
5
  import '../chunk-AV2DXAEL.js';
6
6
  import '../chunk-5VNUYO76.js';
7
- import '../chunk-BTHX2FS3.js';
7
+ import '../chunk-YCTMKKRA.js';
8
8
  import '../chunk-PQADV6P6.js';
9
9
  import '../chunk-7RPGY3JE.js';
10
10
  import '../chunk-R25RGPUB.js';
@@ -1,18 +1,18 @@
1
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-CHG7VT2M.js';
1
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-A3K56LY6.js';
2
2
  import '../chunk-PGRPNDWM.js';
3
3
  import '../chunk-HOXGBLEY.js';
4
4
  import '../chunk-3CZ7XAVY.js';
5
- import '../chunk-5I56UXBJ.js';
6
- import '../chunk-PDUZO35I.js';
7
- import '../chunk-QJZ3Y6WW.js';
5
+ import '../chunk-SMBKXWML.js';
6
+ import '../chunk-KTIEJ5Q5.js';
8
7
  import '../chunk-LSB3EHBW.js';
9
8
  import '../chunk-EUCC37WY.js';
10
- import '../chunk-YCTMKKRA.js';
9
+ import '../chunk-BTHX2FS3.js';
10
+ import '../chunk-5I56UXBJ.js';
11
+ import '../chunk-PDUZO35I.js';
11
12
  import '../chunk-GXQ3B46I.js';
12
13
  import '../chunk-AV2DXAEL.js';
13
14
  import '../chunk-5VNUYO76.js';
14
- import '../chunk-SMBKXWML.js';
15
- import '../chunk-BTHX2FS3.js';
15
+ import '../chunk-YCTMKKRA.js';
16
16
  import '../chunk-6MU7HNB4.js';
17
17
  import '../chunk-ZGX2DP7F.js';
18
18
  import '../chunk-BHHIIK3M.js';
@@ -1,10 +1,10 @@
1
- export { ListInput } from '../chunk-6HXH57BL.js';
1
+ export { ListInput } from '../chunk-4JHWMJZI.js';
2
2
  import '../chunk-SMBKXWML.js';
3
3
  import '../chunk-ZGX2DP7F.js';
4
4
  import '../chunk-PQADV6P6.js';
5
- import '../chunk-RSAQOKH3.js';
6
5
  import '../chunk-7RPGY3JE.js';
7
6
  import '../chunk-R25RGPUB.js';
8
7
  import '../chunk-4FQT6ZAY.js';
8
+ import '../chunk-RSAQOKH3.js';
9
9
  import '../chunk-BZFWDIV6.js';
10
10
  import '../chunk-ODEQTPFM.js';
@@ -1,10 +1,10 @@
1
- export { TagsInput } from '../chunk-MPXI6FM6.js';
1
+ export { TagsInput } from '../chunk-DBUGBINU.js';
2
2
  import '../chunk-LOECRMHA.js';
3
3
  import '../chunk-WIATRXEJ.js';
4
4
  import '../chunk-6MU7HNB4.js';
5
- import '../chunk-RSAQOKH3.js';
6
5
  import '../chunk-7RPGY3JE.js';
7
6
  import '../chunk-R25RGPUB.js';
8
7
  import '../chunk-4FQT6ZAY.js';
8
+ import '../chunk-RSAQOKH3.js';
9
9
  import '../chunk-BZFWDIV6.js';
10
10
  import '../chunk-ODEQTPFM.js';
@@ -1,6 +1,6 @@
1
1
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
- import './Charts-THPA5BWV.css';
3
+ import './Charts-JUERFLAR.css';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
5
  import { useState, useRef, useCallback, useId } from 'react';
6
6
 
@@ -1,11 +1,11 @@
1
1
  import { Toolbar } from './chunk-PGRPNDWM.js';
2
2
  import { PageHeader } from './chunk-HOXGBLEY.js';
3
3
  import { RelativeTime } from './chunk-3CZ7XAVY.js';
4
+ import { Kbd } from './chunk-SMBKXWML.js';
5
+ import { DataTable } from './chunk-KTIEJ5Q5.js';
6
+ import { Menu } from './chunk-LSB3EHBW.js';
4
7
  import { DateTimePicker } from './chunk-5I56UXBJ.js';
5
8
  import { Popover } from './chunk-PDUZO35I.js';
6
- import { DataTable } from './chunk-QJZ3Y6WW.js';
7
- import { Menu } from './chunk-LSB3EHBW.js';
8
- import { Kbd } from './chunk-SMBKXWML.js';
9
9
  import { useListbox, useOptionKeys } from './chunk-6MU7HNB4.js';
10
10
  import { Input } from './chunk-ZGX2DP7F.js';
11
11
  import { Count } from './chunk-BHHIIK3M.js';
@@ -3,7 +3,7 @@ export { Tooltip } from '../chunk-CQY5NTRS.js';
3
3
  export { TreeCanvas } from '../chunk-L7THQMFB.js';
4
4
  import '../chunk-IJ7QXNIJ.js';
5
5
  export { TagGroup } from '../chunk-E6UWRXNM.js';
6
- export { TagsInput } from '../chunk-MPXI6FM6.js';
6
+ export { TagsInput } from '../chunk-DBUGBINU.js';
7
7
  export { Text } from '../chunk-23DHIMJA.js';
8
8
  export { DensitySwitcher, ThemeSwitcher } from '../chunk-RHHGLTXJ.js';
9
9
  export { ThemeToggle } from '../chunk-ORNOOMVY.js';
@@ -36,46 +36,46 @@ export { StatusDot } from '../chunk-WIATRXEJ.js';
36
36
  export { Prose } from '../chunk-JCSA3XVH.js';
37
37
  export { Link } from '../chunk-ZPSOF6VL.js';
38
38
  export { List, ListItem } from '../chunk-DS2C73RJ.js';
39
- export { ListInput } from '../chunk-6HXH57BL.js';
39
+ export { ListInput } from '../chunk-4JHWMJZI.js';
40
40
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from '../chunk-4PZ6FJKW.js';
41
41
  export { NewItemsNotice } from '../chunk-PXU6HOZB.js';
42
42
  export { useFullscreen } from '../chunk-XDTYBF2F.js';
43
- export { InlineCode } from '../chunk-NN62JQLR.js';
44
43
  export { ImageUpload } from '../chunk-W4GQWFRX.js';
44
+ export { InlineCode } from '../chunk-NN62JQLR.js';
45
45
  export { AutoGrid, Inline, Spacer, Stack } from '../chunk-W4ENKCXJ.js';
46
+ export { DIFF_LIST_LABELS, DiffList } from '../chunk-LFHCXZO5.js';
46
47
  export { Disclosure } from '../chunk-MICH6QSJ.js';
47
48
  export { EmptyState } from '../chunk-RA2ULG6H.js';
49
+ export { EntityChip } from '../chunk-WSOFKOLP.js';
48
50
  export { ErrorBoundary } from '../chunk-XX2VQE55.js';
49
51
  export { Eyebrow } from '../chunk-RK4XPHVG.js';
50
52
  export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from '../chunk-5YLON2PW.js';
51
- export { EntityChip } from '../chunk-WSOFKOLP.js';
53
+ export { CommandPalette } from '../chunk-BXPLX7YU.js';
52
54
  export { Container } from '../chunk-QVE4GJAT.js';
53
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-CHG7VT2M.js';
55
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-A3K56LY6.js';
54
56
  export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-PGRPNDWM.js';
55
57
  export { PageHeader } from '../chunk-HOXGBLEY.js';
56
58
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from '../chunk-3CZ7XAVY.js';
57
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-5I56UXBJ.js';
58
- export { Popover } from '../chunk-PDUZO35I.js';
59
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-QJZ3Y6WW.js';
59
+ export { Kbd, isApplePlatform, keyGlyph } from '../chunk-SMBKXWML.js';
60
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-KTIEJ5Q5.js';
60
61
  export { Menu } from '../chunk-LSB3EHBW.js';
61
62
  export { EMPTY_VALUE, EmptyValue } from '../chunk-EUCC37WY.js';
62
- export { Checkbox } from '../chunk-YCTMKKRA.js';
63
+ export { ConfirmModal, Modal } from '../chunk-BTHX2FS3.js';
64
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-5I56UXBJ.js';
65
+ export { Popover } from '../chunk-PDUZO35I.js';
63
66
  export { DescriptionList, DescriptionListItem } from '../chunk-XN4JBAN3.js';
64
- export { DIFF_LIST_LABELS, DiffList } from '../chunk-LFHCXZO5.js';
65
67
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from '../chunk-GXQ3B46I.js';
66
68
  export { Callout } from '../chunk-R6FBDTP3.js';
67
69
  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, anchorView, beyondSlop, clampPan, clampZoom, fitView, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-VE6LD3KM.js';
68
70
  import '../chunk-53DVJCVW.js';
69
71
  export { Card } from '../chunk-CEOXFO3E.js';
70
72
  export { useCardHeaderSlot } from '../chunk-AV2DXAEL.js';
71
- export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-6VL4LGWC.js';
73
+ export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from '../chunk-4WNNEDKO.js';
72
74
  export { CodeBlock } from '../chunk-MORLKUGM.js';
73
75
  export { CopyButton, Copyable } from '../chunk-26SCUACK.js';
74
76
  export { useClipboard, writeClipboard } from '../chunk-5VNUYO76.js';
77
+ export { Checkbox } from '../chunk-YCTMKKRA.js';
75
78
  export { Combobox } from '../chunk-UYK72NOS.js';
76
- export { CommandPalette } from '../chunk-BXPLX7YU.js';
77
- export { Kbd, isApplePlatform, keyGlyph } from '../chunk-SMBKXWML.js';
78
- export { ConfirmModal, Modal } from '../chunk-BTHX2FS3.js';
79
79
  export { TYPE_AHEAD_WINDOW, useListbox, useOptionKeys } from '../chunk-6MU7HNB4.js';
80
80
  export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-ZGX2DP7F.js';
81
81
  export { Accordion, AccordionItem } from '../chunk-RIAZM6L3.js';
@@ -83,13 +83,13 @@ export { DisclosureAnatomy } from '../chunk-FZVJDJFN.js';
83
83
  export { Count } from '../chunk-BHHIIK3M.js';
84
84
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from '../chunk-PQADV6P6.js';
85
85
  export { ADD_PILL_MS, AddPill } from '../chunk-74WGARJE.js';
86
- export { Announcer, announce, useAnnouncer } from '../chunk-RSAQOKH3.js';
87
86
  export { AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell } from '../chunk-OVLJEVQS.js';
88
87
  export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from '../chunk-7RPGY3JE.js';
89
88
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from '../chunk-R25RGPUB.js';
90
89
  export { IconButton } from '../chunk-4FQT6ZAY.js';
91
- export { AVATAR_CORNER_RATIO, AVATAR_SIZES, Avatar, AvatarStack, avatarCorner, avatarPixels, avatarStackLabel, avatarTint, getInitials } from '../chunk-IA232OTU.js';
90
+ export { Announcer, announce, useAnnouncer } from '../chunk-RSAQOKH3.js';
92
91
  export { BrandLockup } from '../chunk-7KBNFFM3.js';
92
+ export { AVATAR_CORNER_RATIO, AVATAR_SIZES, Avatar, AvatarStack, avatarCorner, avatarPixels, avatarStackLabel, avatarTint, getInitials } from '../chunk-IA232OTU.js';
93
93
  export { Button, ButtonLink } from '../chunk-OG6CL3EB.js';
94
94
  export { VisuallyHidden } from '../chunk-BZFWDIV6.js';
95
95
  export { cx } from '../chunk-ODEQTPFM.js';
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ export { Tooltip } from './chunk-CQY5NTRS.js';
3
3
  export { TreeCanvas } from './chunk-L7THQMFB.js';
4
4
  import './chunk-IJ7QXNIJ.js';
5
5
  export { TagGroup } from './chunk-E6UWRXNM.js';
6
- export { TagsInput } from './chunk-MPXI6FM6.js';
6
+ export { TagsInput } from './chunk-DBUGBINU.js';
7
7
  export { Text } from './chunk-23DHIMJA.js';
8
8
  export { DensitySwitcher, ThemeSwitcher } from './chunk-RHHGLTXJ.js';
9
9
  export { ThemeToggle } from './chunk-ORNOOMVY.js';
@@ -36,46 +36,46 @@ export { StatusDot } from './chunk-WIATRXEJ.js';
36
36
  export { Prose } from './chunk-JCSA3XVH.js';
37
37
  export { Link } from './chunk-ZPSOF6VL.js';
38
38
  export { List, ListItem } from './chunk-DS2C73RJ.js';
39
- export { ListInput } from './chunk-6HXH57BL.js';
39
+ export { ListInput } from './chunk-4JHWMJZI.js';
40
40
  export { DEFAULT_METER_THRESHOLDS, METER_STATES, Meter, meterState, meterStateTone, meterTone, progressTone } from './chunk-4PZ6FJKW.js';
41
41
  export { NewItemsNotice } from './chunk-PXU6HOZB.js';
42
42
  export { useFullscreen } from './chunk-XDTYBF2F.js';
43
- export { InlineCode } from './chunk-NN62JQLR.js';
44
43
  export { ImageUpload } from './chunk-W4GQWFRX.js';
44
+ export { InlineCode } from './chunk-NN62JQLR.js';
45
45
  export { AutoGrid, Inline, Spacer, Stack } from './chunk-W4ENKCXJ.js';
46
+ export { DIFF_LIST_LABELS, DiffList } from './chunk-LFHCXZO5.js';
46
47
  export { Disclosure } from './chunk-MICH6QSJ.js';
47
48
  export { EmptyState } from './chunk-RA2ULG6H.js';
49
+ export { EntityChip } from './chunk-WSOFKOLP.js';
48
50
  export { ErrorBoundary } from './chunk-XX2VQE55.js';
49
51
  export { Eyebrow } from './chunk-RK4XPHVG.js';
50
52
  export { FILTER_CHIP_ATTRIBUTE, FilterChip, FilterChipGroup } from './chunk-5YLON2PW.js';
51
- export { EntityChip } from './chunk-WSOFKOLP.js';
53
+ export { CommandPalette } from './chunk-BXPLX7YU.js';
52
54
  export { Container } from './chunk-QVE4GJAT.js';
53
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-CHG7VT2M.js';
55
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-A3K56LY6.js';
54
56
  export { Toolbar, ToolbarOverflow, ToolbarWide } from './chunk-PGRPNDWM.js';
55
57
  export { PageHeader } from './chunk-HOXGBLEY.js';
56
58
  export { RelativeTime, currentNow, formatElapsed, formatExact, formatRelative, formatUntil, toISO, toInstant, useNow } from './chunk-3CZ7XAVY.js';
57
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-5I56UXBJ.js';
58
- export { Popover } from './chunk-PDUZO35I.js';
59
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-QJZ3Y6WW.js';
59
+ export { Kbd, isApplePlatform, keyGlyph } from './chunk-SMBKXWML.js';
60
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-KTIEJ5Q5.js';
60
61
  export { Menu } from './chunk-LSB3EHBW.js';
61
62
  export { EMPTY_VALUE, EmptyValue } from './chunk-EUCC37WY.js';
62
- export { Checkbox } from './chunk-YCTMKKRA.js';
63
+ export { ConfirmModal, Modal } from './chunk-BTHX2FS3.js';
64
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-5I56UXBJ.js';
65
+ export { Popover } from './chunk-PDUZO35I.js';
63
66
  export { DescriptionList, DescriptionListItem } from './chunk-XN4JBAN3.js';
64
- export { DIFF_LIST_LABELS, DiffList } from './chunk-LFHCXZO5.js';
65
67
  export { CalendarGrid, compareDays, daysInMonth, sameDay, shiftDay, shiftMonth, today } from './chunk-GXQ3B46I.js';
66
68
  export { Callout } from './chunk-R6FBDTP3.js';
67
69
  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, anchorView, beyondSlop, clampPan, clampZoom, fitView, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from './chunk-VE6LD3KM.js';
68
70
  import './chunk-53DVJCVW.js';
69
71
  export { Card } from './chunk-CEOXFO3E.js';
70
72
  export { useCardHeaderSlot } from './chunk-AV2DXAEL.js';
71
- export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from './chunk-6VL4LGWC.js';
73
+ export { ActivityStrip, BarList, ChartTooltip, DATA_COLORS, DATA_COLOR_OTHER, Legend, Sparkline, StackedBar, StackedColumns, TimeSeries, dataColor, niceScale, useChartHover } from './chunk-4WNNEDKO.js';
72
74
  export { CodeBlock } from './chunk-MORLKUGM.js';
73
75
  export { CopyButton, Copyable } from './chunk-26SCUACK.js';
74
76
  export { useClipboard, writeClipboard } from './chunk-5VNUYO76.js';
77
+ export { Checkbox } from './chunk-YCTMKKRA.js';
75
78
  export { Combobox } from './chunk-UYK72NOS.js';
76
- export { CommandPalette } from './chunk-BXPLX7YU.js';
77
- export { Kbd, isApplePlatform, keyGlyph } from './chunk-SMBKXWML.js';
78
- export { ConfirmModal, Modal } from './chunk-BTHX2FS3.js';
79
79
  export { TYPE_AHEAD_WINDOW, useListbox, useOptionKeys } from './chunk-6MU7HNB4.js';
80
80
  export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from './chunk-ZGX2DP7F.js';
81
81
  export { Accordion, AccordionItem } from './chunk-RIAZM6L3.js';
@@ -83,13 +83,13 @@ export { DisclosureAnatomy } from './chunk-FZVJDJFN.js';
83
83
  export { Count } from './chunk-BHHIIK3M.js';
84
84
  export { HeadingLevelProvider, headingTag, nextHeadingLevel, useHeadingLevel } from './chunk-PQADV6P6.js';
85
85
  export { ADD_PILL_MS, AddPill } from './chunk-74WGARJE.js';
86
- export { Announcer, announce, useAnnouncer } from './chunk-RSAQOKH3.js';
87
86
  export { AppShell, AppShellRail, AppShellRailRow, AppShellToggle, AppShellTopbar, useAppShell } from './chunk-OVLJEVQS.js';
88
87
  export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from './chunk-7RPGY3JE.js';
89
88
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from './chunk-R25RGPUB.js';
90
89
  export { IconButton } from './chunk-4FQT6ZAY.js';
91
- export { AVATAR_CORNER_RATIO, AVATAR_SIZES, Avatar, AvatarStack, avatarCorner, avatarPixels, avatarStackLabel, avatarTint, getInitials } from './chunk-IA232OTU.js';
90
+ export { Announcer, announce, useAnnouncer } from './chunk-RSAQOKH3.js';
92
91
  export { BrandLockup } from './chunk-7KBNFFM3.js';
92
+ export { AVATAR_CORNER_RATIO, AVATAR_SIZES, Avatar, AvatarStack, avatarCorner, avatarPixels, avatarStackLabel, avatarTint, getInitials } from './chunk-IA232OTU.js';
93
93
  export { Button, ButtonLink } from './chunk-OG6CL3EB.js';
94
94
  export { VisuallyHidden } from './chunk-BZFWDIV6.js';
95
95
  export { cx } from './chunk-ODEQTPFM.js';
package/dist/styles.css CHANGED
@@ -2877,7 +2877,7 @@
2877
2877
  }
2878
2878
 
2879
2879
 
2880
- /* Charts-THPA5BWV.css */
2880
+ /* Charts-JUERFLAR.css */
2881
2881
  /* The chart kit: a legend, a ranked bar list, a stacked bar, stacked
2882
2882
  columns, an activity strip, a time series and the reading layer they share. Hand-drawn rather than a charting library, for one reason that
2883
2883
  decides it: every mark here reads tokens, in two themes, at the contrast
@@ -3093,24 +3093,67 @@
3093
3093
  gap: calc(var(--spacing-1) * 1.5);
3094
3094
  }
3095
3095
 
3096
+ /*
3097
+ * THE BAR STANDS ON THE NAME'S LINE, AND A SPLIT BAR'S KEY ON THE SUB'S. An
3098
+ * item is a grid of two columns, the words' and the plot, and two lines. The
3099
+ * row spans it and lends its parts to it (`subgrid`), and the words' wrapper
3100
+ * lends its own two lines in turn (`display: contents`), so the name and the
3101
+ * plot share the first line and are centred on each other, and the sub and a
3102
+ * split bar's key share the second, the key starting where the bar starts.
3103
+ * Centred on the words' whole column instead, a row with a sub drew its bar,
3104
+ * and the value at its end, between the name and the sub, a few pixels below
3105
+ * the name it belongs to; and the key stood on a third line of its own, under
3106
+ * the sub, where it read as one more bar. A row with neither is one line,
3107
+ * centred in the item's height.
3108
+ *
3109
+ * THE KEY LETS THE POINTER THROUGH. It is outside the row in the markup,
3110
+ * because a row that leads somewhere is a link or a button and holds no list,
3111
+ * so it is drawn over the row's second line rather than inside it, and a
3112
+ * press on it is a press on the row.
3113
+ */
3114
+ .crewlet-bar-list--beside .crewlet-bar-list__item {
3115
+ display: grid;
3116
+ grid-template-columns: var(--crewlet-bar-list-label-width) minmax(0, 1fr);
3117
+ grid-template-rows: auto auto;
3118
+ align-content: center;
3119
+ column-gap: var(--spacing-3);
3120
+ min-height: var(--size-control-md);
3121
+ }
3122
+
3123
+ /* `gap: normal` is what hands a subgrid its parent's gaps: the stacked
3124
+ register's own gap on every row would otherwise move the plot off the
3125
+ column the key stands in. */
3096
3126
  .crewlet-bar-list--beside .crewlet-bar-list__row {
3097
- flex-direction: row;
3127
+ display: grid;
3128
+ grid-column: 1 / -1;
3129
+ grid-row: 1 / -1;
3130
+ grid-template-columns: subgrid;
3131
+ grid-template-rows: subgrid;
3098
3132
  align-items: center;
3099
- gap: var(--spacing-3);
3100
- min-height: var(--size-control-md);
3133
+ gap: normal;
3101
3134
  }
3102
3135
 
3103
3136
  .crewlet-bar-list__names {
3104
- display: flex;
3105
- flex: none;
3106
- flex-direction: column;
3107
- width: var(--crewlet-bar-list-label-width);
3108
- min-width: 0;
3137
+ display: contents;
3109
3138
  line-height: var(--font-line-height-tight);
3110
3139
  }
3111
3140
 
3141
+ .crewlet-bar-list--beside .crewlet-bar-list__names > .crewlet-bar-list__label {
3142
+ grid-row: 1;
3143
+ grid-column: 1;
3144
+ }
3145
+
3146
+ .crewlet-bar-list--beside .crewlet-bar-list__plot {
3147
+ grid-row: 1;
3148
+ grid-column: 2;
3149
+ }
3150
+
3151
+ .crewlet-bar-list--beside .crewlet-bar-list__names > .crewlet-bar-list__sub {
3152
+ grid-row: 2;
3153
+ grid-column: 1;
3154
+ }
3155
+
3112
3156
  .crewlet-bar-list--beside .crewlet-bar-list__label {
3113
- flex: none;
3114
3157
  color: var(--color-text-secondary);
3115
3158
  }
3116
3159
 
@@ -3120,7 +3163,6 @@
3120
3163
 
3121
3164
  .crewlet-bar-list__plot {
3122
3165
  display: block;
3123
- flex: 1 1 auto;
3124
3166
  min-width: 0;
3125
3167
  }
3126
3168
 
@@ -3176,10 +3218,10 @@
3176
3218
  }
3177
3219
 
3178
3220
  /*
3179
- * THE KEY UNDER A SPLIT BAR, at the caption step, starting where the bar
3180
- * starts: under the plot in the BESIDE register, past the words' column and
3181
- * the gap after it, so each name stands under the bar it keys rather than
3182
- * under the row's own name.
3221
+ * THE KEY UNDER A SPLIT BAR, at the caption step. In the BESIDE register it
3222
+ * stands on the row's second line, under the bar it keys (see the item's
3223
+ * grid above), so each name stands under its part rather than under the
3224
+ * row's own name.
3183
3225
  */
3184
3226
  .crewlet-bar-list__key {
3185
3227
  margin-top: var(--spacing-1);
@@ -3187,8 +3229,11 @@
3187
3229
  }
3188
3230
 
3189
3231
  .crewlet-bar-list--beside .crewlet-bar-list__key {
3232
+ grid-row: 2;
3233
+ grid-column: 2;
3234
+ align-self: center;
3190
3235
  margin-top: 0;
3191
- padding-inline-start: calc(var(--crewlet-bar-list-label-width) + var(--spacing-3));
3236
+ pointer-events: none;
3192
3237
  }
3193
3238
 
3194
3239
  /* ─── Stacked bar ─────────────────────────────────────────────── */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.8.0",
3
+ "version": "0.8.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.8.0",
46
- "@crewlethq/tokens": "0.8.0"
45
+ "@crewlethq/icons": "0.8.1",
46
+ "@crewlethq/tokens": "0.8.1"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "react": ">=18",
@@ -1,8 +1,8 @@
1
1
  import { Kbd } from './chunk-SMBKXWML.js';
2
2
  import { FormField, Textarea, Input } from './chunk-ZGX2DP7F.js';
3
- import { announce } from './chunk-RSAQOKH3.js';
4
3
  import { isComposing } from './chunk-R25RGPUB.js';
5
4
  import { IconButton } from './chunk-4FQT6ZAY.js';
5
+ import { announce } from './chunk-RSAQOKH3.js';
6
6
  import './ListInput-O7LJKOIG.css';
7
7
  import { useState, useRef, useLayoutEffect } from 'react';
8
8
  import { ArrowUpGlyph, ArrowDownGlyph, XGlyph, PlusGlyph } from '@crewlethq/icons/glyphs';
@@ -1,8 +1,8 @@
1
1
  import { Tag } from './chunk-LOECRMHA.js';
2
2
  import { useListbox } from './chunk-6MU7HNB4.js';
3
- import { announce } from './chunk-RSAQOKH3.js';
4
3
  import { isComposing } from './chunk-R25RGPUB.js';
5
4
  import { IconButton } from './chunk-4FQT6ZAY.js';
5
+ import { announce } from './chunk-RSAQOKH3.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
7
  import './TagsInput-P2HS5QL4.css';
8
8
  import { forwardRef, useState, useRef, useId, useImperativeHandle, useEffect, useMemo, useLayoutEffect } from 'react';
@@ -1,9 +1,9 @@
1
1
  import { Menu } from './chunk-LSB3EHBW.js';
2
2
  import { EmptyValue } from './chunk-EUCC37WY.js';
3
- import { Checkbox } from './chunk-YCTMKKRA.js';
3
+ import { Modal } from './chunk-BTHX2FS3.js';
4
4
  import { useCardHeaderSlot } from './chunk-AV2DXAEL.js';
5
5
  import { useClipboard } from './chunk-5VNUYO76.js';
6
- import { Modal } from './chunk-BTHX2FS3.js';
6
+ import { Checkbox } from './chunk-YCTMKKRA.js';
7
7
  import { IconButton } from './chunk-4FQT6ZAY.js';
8
8
  import { Button } from './chunk-OG6CL3EB.js';
9
9
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';