@crewlethq/ui 0.79.0 → 0.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -205,6 +205,12 @@ 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.80.0
209
+
210
+ **`DataTable` takes `columnSizing="content"`** (compact variant): each column as wide as what it holds, its header included, the cells' own insets apart, and the spare width given to the trailing spacer. For a short table in a wide pane (an agent, a switch, a level and a status), which the fit spread across the box until a row read as four separate facts. The browser's automatic table layout measures the columns, so no width is stated on a column the caller did not lock with `width`, the fit pass does not run, and no resize handle is drawn. Its cells stay on one line whatever Wrap lines says, since a column as wide as its content truncates nothing, while a panel or strip that spans the row wraps; a row wider than its box scrolls sideways. `fill`, the default, is the table as it was. The type is `DataTableColumnSizing`.
211
+
212
+ **`ChangeList` takes `layout="inline"`**: each row on one line, its label and then its values as chips ("Deployments: Read-only → Read and write"), the old value on an outline chip and the new one on the added tone. A pair is still said "Changed from X to Y" and an added or removed value says so, and a word diff or a block value keeps its own layout under its label. `grid`, the default, is unchanged. The type is `ChangeListLayout`.
213
+
208
214
  ## Changes in 0.78.0
209
215
 
210
216
  **`Tabs` take `actions`, controls at the row's far end in a tab list too.** A screen's own buttons ("Check now", "New") stand beside its tabs, in one bar with them, and never inside the tab list: the actions are the row's next sibling, so a screen reader meets a tab list of tabs alone and then the buttons, and the keyboard reaches the tabs (one stop, the arrows inside) and then each action. In router mode they stand outside the `nav` for the same reason. The actions keep their width at every size and the row gives way first: it takes the room left beside them, and scrolls (`overflow="scroll"`) or folds into "More" (`overflow="menu"`) inside that room, where the slider and the fold are measured. A pill or chip row keeps its width while it fits and scrolls inside the bar once it does not, so no tab paints under an action. An underline row's rule runs on under the actions to the bar's edge. With `actions`, `className` lands on the bar, the outermost element (`.crewlet-tabs-bar`, the actions in `.crewlet-tabs__actions`). Actions that arrive after the row is drawn, or go, never re-parent it: every row now sits in one wrapper element, `display: contents` while there are no actions, so the focused tab keeps focus and the slider and fold measure the live row. Without actions `className` stays on the row. `trailing` is unchanged: router mode only, inside the `nav`.
@@ -78,8 +78,23 @@ export interface ChangeListLabels {
78
78
  showWhole: string;
79
79
  }
80
80
  export declare const CHANGE_LIST_LABELS: ChangeListLabels;
81
+ /**
82
+ * How the rows are laid out.
83
+ *
84
+ * - 'grid' the labels in one column and the values in the other, the
85
+ * values in DiffList's tints. The default: a record's fields.
86
+ * - 'inline' each row one line, its label and then its values as chips:
87
+ * "Deployments: [Read-only] → [Read and write]". For a short
88
+ * change read in passing, such as a level moved in a review.
89
+ */
90
+ export type ChangeListLayout = 'grid' | 'inline';
81
91
  export interface ChangeListProps {
82
92
  rows: readonly ChangeListRow[];
93
+ /**
94
+ * `inline` sets each row on one line with its values as chips. A word diff
95
+ * and a block value keep their own layout under their label in either.
96
+ */
97
+ layout?: ChangeListLayout | undefined;
83
98
  /** The eyebrow over the rows: "What will change", "What will be created", "What changed". */
84
99
  heading?: ReactNode;
85
100
  /**
@@ -134,5 +149,5 @@ declare function BlockValue({ row, labels }: {
134
149
  * values in the other, rows apart by the list's spacing rather than rules,
135
150
  * and no box of its own inside the card that holds it.
136
151
  */
137
- export declare function ChangeList({ rows, heading, settled, labels: overrides, diffLabels, className }: ChangeListProps): import("react").JSX.Element;
152
+ export declare function ChangeList({ rows, heading, layout, settled, labels: overrides, diffLabels, className, }: ChangeListProps): import("react").JSX.Element;
138
153
  export {};
@@ -1,3 +1,3 @@
1
1
  import './ChangeList.css';
2
2
  export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged } from './ChangeList.js';
3
- export type { ChangeListAddedRow, ChangeListChangedRow, ChangeListFactRow, ChangeListLabels, ChangeListProps, ChangeListRemovedRow, ChangeListRow, ChangeListTextRow, WordDiffPart, } from './ChangeList.js';
3
+ export type { ChangeListAddedRow, ChangeListChangedRow, ChangeListFactRow, ChangeListLabels, ChangeListLayout, ChangeListProps, ChangeListRemovedRow, ChangeListRow, ChangeListTextRow, WordDiffPart, } from './ChangeList.js';
@@ -1,4 +1,4 @@
1
- export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged } from '../chunk-BBD7PTBG.js';
1
+ export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged } from '../chunk-4XF7ENQA.js';
2
2
  import '../chunk-LR4IWUWQ.js';
3
3
  import '../chunk-VERJCAJ4.js';
4
4
  import '../chunk-CYQBDZ6M.js';
@@ -207,3 +207,56 @@
207
207
  .crewlet-change-list--settled .crewlet-change-list__value {
208
208
  color: var(--color-text-secondary);
209
209
  }
210
+
211
+ /*
212
+ * INLINE: one line a row, the label and then its values as chips. The rows
213
+ * stack; a row wraps as the pair does, the arrow staying with what it points
214
+ * at. A word diff and a block value keep their own layout under the label.
215
+ */
216
+ .crewlet-change-list--inline .crewlet-change-list__rows {
217
+ display: flex;
218
+ flex-direction: column;
219
+ gap: var(--spacing-1);
220
+ }
221
+
222
+ .crewlet-change-list--inline .crewlet-change-list__row {
223
+ display: flex;
224
+ flex-wrap: wrap;
225
+ align-items: center;
226
+ gap: var(--spacing-1) var(--spacing-2);
227
+ }
228
+
229
+ .crewlet-change-list--inline .crewlet-change-list__row--text,
230
+ .crewlet-change-list--inline .crewlet-change-list__row--block {
231
+ flex-direction: column;
232
+ align-items: stretch;
233
+ }
234
+
235
+ /* The label in the secondary ink at the row's own size, closed by a colon. */
236
+ .crewlet-change-list--inline .crewlet-change-list__label {
237
+ font-size: inherit;
238
+ color: var(--color-text-secondary);
239
+ }
240
+
241
+ .crewlet-change-list--inline .crewlet-change-list__row:not(.crewlet-change-list__row--text):not(.crewlet-change-list__row--block) > .crewlet-change-list__label::after {
242
+ content: ':';
243
+ }
244
+
245
+ .crewlet-change-list--inline .crewlet-change-list__pair {
246
+ align-items: center;
247
+ }
248
+
249
+ .crewlet-change-list--inline .crewlet-change-list__next {
250
+ align-items: center;
251
+ }
252
+
253
+ /* THE CHIP IS THE MARK, so the element around it draws none of its own. */
254
+ .crewlet-change-list__chip {
255
+ display: inline-flex;
256
+ text-decoration: none;
257
+ }
258
+
259
+ .crewlet-change-list--inline .crewlet-change-list__note {
260
+ flex-basis: 100%;
261
+ margin-top: 0;
262
+ }
@@ -190,6 +190,17 @@ export type DataTableItemsPerPage = number | typeof ALL_ITEMS;
190
190
  * its own resizable column widths.
191
191
  */
192
192
  export type DataTableDensity = 'compact' | 'comfortable';
193
+ /**
194
+ * How a compact table's columns share its width.
195
+ *
196
+ * - 'fill' every column grows in proportion until the row fills its
197
+ * box. The default: a list page, where the columns are the
198
+ * screen and a reader resizes them.
199
+ * - 'content' each column is as wide as what it holds, its header
200
+ * included, the cells' own insets apart, and the trailing
201
+ * spacer takes the rest.
202
+ */
203
+ export type DataTableColumnSizing = 'fill' | 'content';
193
204
  /**
194
205
  * Every string the table renders on its own behalf, in one prop.
195
206
  *
@@ -344,6 +355,19 @@ export interface DataTableProps<TRow = DataTableRow> {
344
355
  * render anywhere on the table.
345
356
  */
346
357
  resizable?: boolean;
358
+ /**
359
+ * How the columns share the table's width. Compact variant only.
360
+ *
361
+ * `content` IS FOR A SHORT TABLE IN A WIDE PANE: an agent, a switch, a
362
+ * level and a status, spread by the fit across a 900px box, sat so far
363
+ * apart that a row read as four facts about nothing in particular. Sized
364
+ * to content, the columns stand together and the spare width goes to the
365
+ * trailing spacer. Nothing resizes a column then, neither the fit nor a
366
+ * reader, so no resize handle is drawn; a column with a `width` keeps it,
367
+ * and a row wider than its box scrolls sideways as any table here does.
368
+ * `fill` (the default) is the table as it always was.
369
+ */
370
+ columnSizing?: DataTableColumnSizing;
347
371
  onRowAction?: ((row: TRow) => void) | null;
348
372
  actionLabel?: string;
349
373
  /** The action column's glyph. A component, not a name. */
@@ -637,4 +661,4 @@ export interface DataTableProps<TRow = DataTableRow> {
637
661
  /** Every string the table renders itself. Merged over the English defaults. */
638
662
  labels?: Partial<DataTableLabels>;
639
663
  }
640
- export declare const DataTable: <TRow>({ data, columns, storageKey, defaultColumnOrder, columnOrder: columnOrderProp, onColumnOrderChange, defaultItemsPerPage, itemsPerPage: itemsPerPageProp, onItemsPerPageChange, page: pageProp, onPageChange, pageCount, minColumnWidth, resizable, itemsPerPageOptions, onRowAction, actionLabel, actionIcon, getRowKey, rowKey, emptyMessage, endMessage, showActions, className, variant, density, maxBodyHeight, sort: sortProp, onSortChange, defaultSort, sortCycle, stableOrder, rowActions, archivedPredicate, archivedLabel, loading, skeletonRows, error, paginated, showSettings, onRowClick, getRowHref, rowTone, isSelected, renderAccessoryRow, renderToolbar, renderFilterBar, onClearFilters, filtersActive, clearFiltersLabel, filterKey, visibleColumns: visibleColumnsProp, onVisibleColumnsChange, renderExpandedRow, defaultExpandedKey, hasMore, onLoadMore, loadingMore, loadMoreLabel, title, ariaLabel, expandLabel, description, icon, defaultWrapLines, labels: labelOverrides, }: DataTableProps<TRow>) => React.JSX.Element;
664
+ export declare const DataTable: <TRow>({ data, columns, storageKey, defaultColumnOrder, columnOrder: columnOrderProp, onColumnOrderChange, defaultItemsPerPage, itemsPerPage: itemsPerPageProp, onItemsPerPageChange, page: pageProp, onPageChange, pageCount, minColumnWidth, resizable, columnSizing, itemsPerPageOptions, onRowAction, actionLabel, actionIcon, getRowKey, rowKey, emptyMessage, endMessage, showActions, className, variant, density, maxBodyHeight, sort: sortProp, onSortChange, defaultSort, sortCycle, stableOrder, rowActions, archivedPredicate, archivedLabel, loading, skeletonRows, error, paginated, showSettings, onRowClick, getRowHref, rowTone, isSelected, renderAccessoryRow, renderToolbar, renderFilterBar, onClearFilters, filtersActive, clearFiltersLabel, filterKey, visibleColumns: visibleColumnsProp, onVisibleColumnsChange, renderExpandedRow, defaultExpandedKey, hasMore, onLoadMore, loadingMore, loadMoreLabel, title, ariaLabel, expandLabel, description, icon, defaultWrapLines, labels: labelOverrides, }: DataTableProps<TRow>) => React.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import './DataTable.css';
2
2
  export { DataTable, DATA_TABLE_LABELS, ALL_ITEMS } from './DataTable.js';
3
- export type { DataTableColumn, DataTableDensity, DataTableItemsPerPage, DataTableLabels, DataTableProps, DataTableRow, DataTableRowAction, DataTableRowTone, DataTableSortCycle, DataTableSortDirection, DataTableSortState, DataTableVariant, } from './DataTable.js';
3
+ export type { DataTableColumn, DataTableColumnSizing, DataTableDensity, DataTableItemsPerPage, DataTableLabels, DataTableProps, DataTableRow, DataTableRowAction, DataTableRowTone, DataTableSortCycle, DataTableSortDirection, DataTableSortState, DataTableVariant, } from './DataTable.js';
4
4
  export { CopyableCell } from './CopyableCell.js';
5
5
  export type { CopyableCellProps } from './CopyableCell.js';
6
6
  export { RowActionsMenu } from './RowActionsMenu.js';
@@ -1,4 +1,4 @@
1
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-INO2OXDB.js';
1
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-BRWR3QIG.js';
2
2
  import '../chunk-C667GCU7.js';
3
3
  import '../chunk-STJ7QBC3.js';
4
4
  import '../chunk-DTIW4CHZ.js';
@@ -797,6 +797,44 @@ body.crewlet-data-table-resizing {
797
797
  width: var(--spacing-6);
798
798
  }
799
799
 
800
+ /*
801
+ * A TABLE SIZED TO ITS CONTENT (`columnSizing="content"`) is laid out by the
802
+ * automatic algorithm, with no width stated on its columns. The spacer asks
803
+ * for the whole row, so every other column gives up all it can: down to its
804
+ * widest cell. What is left over is the spacer's.
805
+ *
806
+ * Its cells never wrap, Wrap lines or not. A cell that may break anywhere is
807
+ * a column the automatic layout squeezes to a few letters a line, which is
808
+ * what a name became the first time this was drawn; and with every column as
809
+ * wide as its content there is nothing to truncate, so the toggle has nothing
810
+ * to decide.
811
+ *
812
+ * After the gutter rule above and as specific, so a pinned column keeps its
813
+ * gutter as the spacer's floor while the spacer still takes the rest of the
814
+ * row. The panels that span the row wrap, as their content does at any width:
815
+ * kept on one line, a sentence in one would be measured as the narrowest the
816
+ * table may be.
817
+ */
818
+ .crewlet-data-table--compact .crewlet-data-table__table.crewlet-data-table__table--content {
819
+ table-layout: auto;
820
+ }
821
+
822
+ .crewlet-data-table--compact .crewlet-data-table__table.crewlet-data-table__table--content td:not(.crewlet-data-table__expanded-cell):not(.crewlet-data-table__accessory-cell) {
823
+ white-space: nowrap;
824
+ overflow-wrap: normal;
825
+ word-break: normal;
826
+ }
827
+
828
+ .crewlet-data-table--compact .crewlet-data-table__table.crewlet-data-table__table--content .crewlet-data-table__th--spacer,
829
+ .crewlet-data-table--compact .crewlet-data-table__table.crewlet-data-table__table--content .crewlet-data-table__td--spacer {
830
+ width: 100%;
831
+ }
832
+
833
+ .crewlet-data-table__table--content td.crewlet-data-table__expanded-cell,
834
+ .crewlet-data-table__table--content td.crewlet-data-table__accessory-cell {
835
+ white-space: normal;
836
+ }
837
+
800
838
  /*
801
839
  * Row actions column: pinned to the viewport's right edge with
802
840
  * position: sticky so the kebab affordance stays visible during
@@ -1,8 +1,8 @@
1
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-NSCACX5Y.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-4WTLT66V.js';
2
2
  import '../chunk-FPDIHEM4.js';
3
3
  import '../chunk-K4LZXSKZ.js';
4
4
  import '../chunk-HPI5J6AR.js';
5
- import '../chunk-INO2OXDB.js';
5
+ import '../chunk-BRWR3QIG.js';
6
6
  import '../chunk-C667GCU7.js';
7
7
  import '../chunk-7KHM2FZH.js';
8
8
  import '../chunk-STJ7QBC3.js';
@@ -1,6 +1,6 @@
1
- export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, PROPOSAL_TONES, ProposalCard } from '../chunk-DSMQTED5.js';
1
+ export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, PROPOSAL_TONES, ProposalCard } from '../chunk-BLGBD2D2.js';
2
2
  import '../chunk-ZWCK4N4L.js';
3
- import '../chunk-BBD7PTBG.js';
3
+ import '../chunk-4XF7ENQA.js';
4
4
  import '../chunk-LR4IWUWQ.js';
5
5
  import '../chunk-RTMNULTL.js';
6
6
  import '../chunk-VERJCAJ4.js';
@@ -1,7 +1,7 @@
1
1
  import { PageHeader } from './chunk-FPDIHEM4.js';
2
2
  import { FilterPill } from './chunk-K4LZXSKZ.js';
3
3
  import { DateTimePicker } from './chunk-HPI5J6AR.js';
4
- import { DataTable } from './chunk-INO2OXDB.js';
4
+ import { DataTable } from './chunk-BRWR3QIG.js';
5
5
  import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
6
6
  import { Toolbar } from './chunk-NR4CPM4T.js';
7
7
  import { Popover } from './chunk-KHJIEPZV.js';
@@ -3,7 +3,7 @@ import { Tag } from './chunk-VERJCAJ4.js';
3
3
  import { Disclosure } from './chunk-222VILSP.js';
4
4
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
5
5
  import { cx } from './chunk-ODEQTPFM.js';
6
- import './ChangeList-MDFH5NPH.css';
6
+ import './ChangeList-ITJMTVDF.css';
7
7
  import { useId } from 'react';
8
8
  import { ArrowRightGlyph } from '@crewlethq/icons/glyphs';
9
9
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -100,8 +100,40 @@ function BlockValue({ row, labels }) {
100
100
  ] });
101
101
  }
102
102
  }
103
- function Value({ row, labels }) {
103
+ function ChipValue({ row, labels }) {
104
+ switch (row.kind) {
105
+ case "fact":
106
+ return /* @__PURE__ */ jsx(Tag, { size: "sm", variant: "neutral", children: row.value });
107
+ case "changed":
108
+ return /* @__PURE__ */ jsxs("span", { className: "crewlet-change-list__pair", children: [
109
+ /* @__PURE__ */ jsx(VisuallyHidden, { children: `${labels.changedFrom} ` }),
110
+ /* @__PURE__ */ jsx("del", { className: "crewlet-change-list__chip", children: /* @__PURE__ */ jsx(Tag, { size: "sm", variant: "neutral", appearance: "outline", children: row.from }) }),
111
+ /* @__PURE__ */ jsxs("span", { className: "crewlet-change-list__next", children: [
112
+ /* @__PURE__ */ jsx(ArrowRightGlyph, { size: "sm", className: "crewlet-change-list__arrow" }),
113
+ /* @__PURE__ */ jsx(VisuallyHidden, { children: ` ${labels.to} ` }),
114
+ /* @__PURE__ */ jsx("ins", { className: "crewlet-change-list__chip", children: /* @__PURE__ */ jsx(Tag, { size: "sm", variant: "success", children: row.to }) })
115
+ ] })
116
+ ] });
117
+ case "added":
118
+ return /* @__PURE__ */ jsxs("span", { className: "crewlet-change-list__pair", children: [
119
+ /* @__PURE__ */ jsx(VisuallyHidden, { children: `${labels.added} ` }),
120
+ /* @__PURE__ */ jsx("ins", { className: "crewlet-change-list__chip", children: /* @__PURE__ */ jsx(Tag, { size: "sm", variant: "success", children: row.to }) }),
121
+ row.isNew ? /* @__PURE__ */ jsx(Tag, { size: "xs", variant: "success", appearance: "outline", children: labels.isNew }) : null
122
+ ] });
123
+ case "removed":
124
+ return /* @__PURE__ */ jsxs("span", { className: "crewlet-change-list__pair", children: [
125
+ /* @__PURE__ */ jsx(VisuallyHidden, { children: `${labels.removed} ` }),
126
+ /* @__PURE__ */ jsx("del", { className: "crewlet-change-list__chip", children: /* @__PURE__ */ jsx(Tag, { size: "sm", variant: "danger", appearance: "outline", children: row.from }) })
127
+ ] });
128
+ }
129
+ }
130
+ function Value({
131
+ row,
132
+ labels,
133
+ inline
134
+ }) {
104
135
  if (row.block) return /* @__PURE__ */ jsx(BlockValue, { row, labels });
136
+ if (inline) return /* @__PURE__ */ jsx(ChipValue, { row, labels });
105
137
  switch (row.kind) {
106
138
  case "fact":
107
139
  return /* @__PURE__ */ jsx("span", { className: "crewlet-change-list__fact", children: row.value });
@@ -130,33 +162,52 @@ function Value({ row, labels }) {
130
162
  ] });
131
163
  }
132
164
  }
133
- function ChangeList({ rows, heading, settled = false, labels: overrides, diffLabels, className }) {
165
+ function ChangeList({
166
+ rows,
167
+ heading,
168
+ layout = "grid",
169
+ settled = false,
170
+ labels: overrides,
171
+ diffLabels,
172
+ className
173
+ }) {
134
174
  const labels = overrides ? { ...CHANGE_LIST_LABELS, ...overrides } : CHANGE_LIST_LABELS;
135
175
  const headingId = useId();
136
- return /* @__PURE__ */ jsxs("div", { className: cx("crewlet-change-list", settled && "crewlet-change-list--settled", className), children: [
137
- heading === void 0 || heading === null ? null : /* @__PURE__ */ jsx("div", { id: headingId, className: "crewlet-change-list__heading", children: heading }),
138
- /* @__PURE__ */ jsx("dl", { className: "crewlet-change-list__rows", "aria-labelledby": heading === void 0 || heading === null ? void 0 : headingId, children: rows.map((row, index) => /* @__PURE__ */ jsxs(
139
- "div",
140
- {
141
- className: cx(
142
- "crewlet-change-list__row",
143
- `crewlet-change-list__row--${row.kind}`,
144
- row.kind !== "text" && row.block && "crewlet-change-list__row--block"
145
- ),
146
- children: [
147
- /* @__PURE__ */ jsx("dt", { className: "crewlet-change-list__label", children: row.label }),
148
- /* @__PURE__ */ jsxs("dd", { className: "crewlet-change-list__value", children: [
149
- row.kind === "text" ? /* @__PURE__ */ jsxs(Fragment, { children: [
150
- /* @__PURE__ */ jsx(WordDiff, { row, labels }),
151
- row.whole && row.whole.length > 0 ? /* @__PURE__ */ jsx(Disclosure, { title: labels.showWhole, headingLevel: "none", size: "compact", className: "crewlet-change-list__whole", children: /* @__PURE__ */ jsx(DiffList, { rows: [...row.whole], layout: "auto", labels: diffLabels }) }) : null
152
- ] }) : /* @__PURE__ */ jsx(Value, { row, labels }),
153
- row.note === void 0 || row.note === null ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-change-list__note", children: row.note })
154
- ] })
155
- ]
156
- },
157
- `${index}:${row.label}`
158
- )) })
159
- ] });
176
+ return /* @__PURE__ */ jsxs(
177
+ "div",
178
+ {
179
+ className: cx(
180
+ "crewlet-change-list",
181
+ layout === "inline" && "crewlet-change-list--inline",
182
+ settled && "crewlet-change-list--settled",
183
+ className
184
+ ),
185
+ children: [
186
+ heading === void 0 || heading === null ? null : /* @__PURE__ */ jsx("div", { id: headingId, className: "crewlet-change-list__heading", children: heading }),
187
+ /* @__PURE__ */ jsx("dl", { className: "crewlet-change-list__rows", "aria-labelledby": heading === void 0 || heading === null ? void 0 : headingId, children: rows.map((row, index) => /* @__PURE__ */ jsxs(
188
+ "div",
189
+ {
190
+ className: cx(
191
+ "crewlet-change-list__row",
192
+ `crewlet-change-list__row--${row.kind}`,
193
+ row.kind !== "text" && row.block && "crewlet-change-list__row--block"
194
+ ),
195
+ children: [
196
+ /* @__PURE__ */ jsx("dt", { className: "crewlet-change-list__label", children: row.label }),
197
+ /* @__PURE__ */ jsxs("dd", { className: "crewlet-change-list__value", children: [
198
+ row.kind === "text" ? /* @__PURE__ */ jsxs(Fragment, { children: [
199
+ /* @__PURE__ */ jsx(WordDiff, { row, labels }),
200
+ row.whole && row.whole.length > 0 ? /* @__PURE__ */ jsx(Disclosure, { title: labels.showWhole, headingLevel: "none", size: "compact", className: "crewlet-change-list__whole", children: /* @__PURE__ */ jsx(DiffList, { rows: [...row.whole], layout: "auto", labels: diffLabels }) }) : null
201
+ ] }) : /* @__PURE__ */ jsx(Value, { row, labels, inline: layout === "inline" }),
202
+ row.note === void 0 || row.note === null ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-change-list__note", children: row.note })
203
+ ] })
204
+ ]
205
+ },
206
+ `${index}:${row.label}`
207
+ )) })
208
+ ]
209
+ }
210
+ );
160
211
  }
161
212
 
162
213
  export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged };
@@ -1,5 +1,5 @@
1
1
  import { RefusalStrip, ReceiptStrip } from './chunk-ZWCK4N4L.js';
2
- import { ChangeList } from './chunk-BBD7PTBG.js';
2
+ import { ChangeList } from './chunk-4XF7ENQA.js';
3
3
  import { StatusCard } from './chunk-RTMNULTL.js';
4
4
  import { Checkbox } from './chunk-LMQG3VPG.js';
5
5
  import { Disclosure } from './chunk-222VILSP.js';
@@ -8,7 +8,7 @@ import { Button } from './chunk-DGXZ635L.js';
8
8
  import { IconButton } from './chunk-UAUP6XGK.js';
9
9
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
10
10
  import { cx } from './chunk-ODEQTPFM.js';
11
- import './DataTable-H43JSHOI.css';
11
+ import './DataTable-GSLDFY5U.css';
12
12
  import React, { useState, useCallback, useMemo, useRef, useLayoutEffect, useEffect, useId } from 'react';
13
13
  import { createPortal } from 'react-dom';
14
14
  import { CheckGlyph, CircleAlertGlyph, CopyGlyph, ChevronsLeftGlyph, ChevronLeftGlyph, ChevronRightGlyph, ChevronsRightGlyph, SettingsGlyph, GripVerticalGlyph, ChevronUpGlyph, ChevronDownGlyph, TrashGlyph, ArrowUpGlyph, ArrowDownGlyph, ChevronsUpDownGlyph, RotateCcwGlyph } from '@crewlethq/icons/glyphs';
@@ -224,6 +224,7 @@ var DataTable = ({
224
224
  pageCount,
225
225
  minColumnWidth = 80,
226
226
  resizable = true,
227
+ columnSizing = "fill",
227
228
  itemsPerPageOptions = [5, 10, 20, 50, 100],
228
229
  onRowAction = null,
229
230
  actionLabel = "Delete",
@@ -285,6 +286,7 @@ var DataTable = ({
285
286
  return cellValue(row, "id");
286
287
  };
287
288
  const isCompact = variant === "compact";
289
+ const sizedToContent = isCompact && columnSizing === "content";
288
290
  const hasActionColumn = !!rowActions || showActions && !!onRowAction;
289
291
  const expandable = !!renderExpandedRow;
290
292
  const settingsEnabled = showSettings;
@@ -466,7 +468,8 @@ var DataTable = ({
466
468
  expandable,
467
469
  hasChromeColumn,
468
470
  isCompact,
469
- minColumnWidth
471
+ minColumnWidth,
472
+ sizedToContent
470
473
  });
471
474
  fitInputs.current = {
472
475
  columns,
@@ -477,10 +480,12 @@ var DataTable = ({
477
480
  expandable,
478
481
  hasChromeColumn,
479
482
  isCompact,
480
- minColumnWidth
483
+ minColumnWidth,
484
+ sizedToContent
481
485
  };
482
486
  useLayoutEffect(() => {
483
- const { columns: columns2, columnOrder: columnOrder2, visibleColumns: visibleColumns2, columnWidths: columnWidths2, resizedColumns: resizedColumns2, expandable: expandable2, hasChromeColumn: hasChromeColumn2, isCompact: isCompact2, minColumnWidth: minColumnWidth2 } = fitInputs.current;
487
+ const { columns: columns2, columnOrder: columnOrder2, visibleColumns: visibleColumns2, columnWidths: columnWidths2, resizedColumns: resizedColumns2, expandable: expandable2, hasChromeColumn: hasChromeColumn2, isCompact: isCompact2, minColumnWidth: minColumnWidth2, sizedToContent: sizedToContent2 } = fitInputs.current;
488
+ if (sizedToContent2) return;
484
489
  const el = scrollRef.current;
485
490
  if (!el) return;
486
491
  const box = el.getBoundingClientRect();
@@ -930,6 +935,11 @@ var DataTable = ({
930
935
  }
931
936
  return value !== null && value !== void 0 ? value : /* @__PURE__ */ jsx(EmptyValue, { label: labels.absent });
932
937
  };
938
+ const statedWidth = (columnKey) => {
939
+ const width = columnWidths[columnKey];
940
+ if (width == null || sizedToContent && columns[columnKey]?.width == null) return void 0;
941
+ return { width: `${width}px` };
942
+ };
933
943
  const columnClasses = (column) => cx(
934
944
  column.align === "right" && "crewlet-data-table__cell--right",
935
945
  column.align === "center" && "crewlet-data-table__cell--center",
@@ -940,9 +950,7 @@ var DataTable = ({
940
950
  if (!column) return null;
941
951
  const style = {};
942
952
  if (isCompact) {
943
- if (columnWidths[columnKey] != null) {
944
- style.width = `${columnWidths[columnKey]}px`;
945
- }
953
+ Object.assign(style, statedWidth(columnKey));
946
954
  } else {
947
955
  style.width = `${columnWidths[columnKey]}px`;
948
956
  }
@@ -976,14 +984,11 @@ var DataTable = ({
976
984
  const ariaSort = isActive ? effectiveSort.direction === "asc" ? "ascending" : "descending" : void 0;
977
985
  const isSticky = column.sticky === "right";
978
986
  if (isCompact) {
979
- const style = {};
980
- if (columnWidths[columnKey] != null) {
981
- style.width = `${columnWidths[columnKey]}px`;
982
- }
987
+ const style = { ...statedWidth(columnKey) };
983
988
  const visibleStickyExists = columnOrder.some(
984
989
  (k) => columns[k]?.sticky === "right" && isColumnVisible(k)
985
990
  );
986
- const suppressResizer = !resizable || isSticky || visibleStickyExists;
991
+ const suppressResizer = !resizable || sizedToContent || isSticky || visibleStickyExists;
987
992
  const resizer = suppressResizer ? null : /* @__PURE__ */ jsx(
988
993
  "button",
989
994
  {
@@ -1390,6 +1395,7 @@ var DataTable = ({
1390
1395
  {
1391
1396
  className: cx(
1392
1397
  "crewlet-data-table__table",
1398
+ sizedToContent && "crewlet-data-table__table--content",
1393
1399
  !bodyHoldsRows && "crewlet-data-table__table--rowless"
1394
1400
  ),
1395
1401
  "aria-busy": loading || void 0,
@@ -1425,23 +1431,16 @@ var DataTable = ({
1425
1431
  );
1426
1432
  return /* @__PURE__ */ jsxs("tr", { className: "crewlet-data-table__skeleton-row", "aria-hidden": true, children: [
1427
1433
  expandable && /* @__PURE__ */ jsx("td", { className: "crewlet-data-table__expand-cell", style: { width: 32 } }, "__expand"),
1428
- visibleKeys.map((columnKey, colIdx) => /* @__PURE__ */ jsx(
1429
- "td",
1434
+ visibleKeys.map((columnKey, colIdx) => /* @__PURE__ */ jsx("td", { style: statedWidth(columnKey), children: /* @__PURE__ */ jsx(
1435
+ "span",
1430
1436
  {
1431
- style: columnWidths[columnKey] != null ? { width: `${columnWidths[columnKey]}px` } : void 0,
1432
- children: /* @__PURE__ */ jsx(
1433
- "span",
1434
- {
1435
- className: "crewlet-data-table__skeleton-bar",
1436
- style: {
1437
- width: `${widths[(rowIdx + colIdx) % widths.length]}%`,
1438
- animationDelay: `${rowIdx * 0.1}s`
1439
- }
1440
- }
1441
- )
1442
- },
1443
- columnKey
1444
- )),
1437
+ className: "crewlet-data-table__skeleton-bar",
1438
+ style: {
1439
+ width: `${widths[(rowIdx + colIdx) % widths.length]}%`,
1440
+ animationDelay: `${rowIdx * 0.1}s`
1441
+ }
1442
+ }
1443
+ ) }, columnKey)),
1445
1444
  isCompact && /* @__PURE__ */ jsx("td", { className: "crewlet-data-table__td--spacer", "aria-hidden": true }, "__spacer"),
1446
1445
  columnOrder.filter((key) => columns[key]?.sticky === "right" && isColumnVisible(key)).map((columnKey) => /* @__PURE__ */ jsx("td", { className: "crewlet-data-table__td--sticky-right" }, columnKey)),
1447
1446
  hasChromeColumn && /* @__PURE__ */ jsx("td", { className: "crewlet-data-table__td--actions" }, "__actions")
@@ -1,13 +1,12 @@
1
1
  import '../chunk-CDFQ7MQK.js';
2
- export { VersionTimeline } from '../chunk-53J2YNQA.js';
3
2
  export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-YT5SWN4Q.js';
3
+ export { VersionTimeline } from '../chunk-53J2YNQA.js';
4
4
  export { WidgetFrame } from '../chunk-S5QJZOPL.js';
5
5
  export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from '../chunk-FEJANUZK.js';
6
6
  export { ToastProvider, Toaster, readingDuration, toasterInsetStyle, useToast } from '../chunk-JIBWNHTC.js';
7
7
  export { TreeCanvas } from '../chunk-JQEXAH7G.js';
8
8
  export { TypeSpecimen } from '../chunk-JKAFEFFC.js';
9
9
  export { REFERENCE_NAME_PATTERN, ValueField, completeReference, isWholeReference, rankReferences, referenceAt, urlSchemeOf } from '../chunk-GHQG4VZA.js';
10
- export { ThemeGallery } from '../chunk-63GBSOLU.js';
11
10
  export { DensitySwitcher, ThemeSwitcher } from '../chunk-QHQGJQV7.js';
12
11
  export { ThemeToggle } from '../chunk-IPMJGK2Q.js';
13
12
  export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-Z24ZUSTX.js';
@@ -17,21 +16,22 @@ export { TIME_RANGE_CUSTOM, TIME_RANGE_PICKER_LABELS, TimeRangePicker, timeRange
17
16
  export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-RIAPCEB5.js';
18
17
  export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from '../chunk-VG3SIJ3M.js';
19
18
  export { TagsInput } from '../chunk-WK4FQPYW.js';
19
+ export { ThemeGallery } from '../chunk-63GBSOLU.js';
20
20
  export { ThemeSwatch } from '../chunk-3XQUEF5C.js';
21
- export { StatGroup } from '../chunk-OUD75UB2.js';
21
+ export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-2STOSJT3.js';
22
+ export { TagGroup } from '../chunk-UEOEBOBR.js';
22
23
  export { Statement } from '../chunk-MZJKPTA5.js';
23
24
  export { Switcher } from '../chunk-YQDRJZ5J.js';
24
- export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-DV5L2GRY.js';
25
25
  export { SlideFilmstrip } from '../chunk-TPCBPGSB.js';
26
26
  export { SlideGrid } from '../chunk-7MGXHCVK.js';
27
27
  export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from '../chunk-4TMBAOXK.js';
28
28
  export { StatCard } from '../chunk-G5IZGAWS.js';
29
+ export { StatGroup } from '../chunk-OUD75UB2.js';
29
30
  export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from '../chunk-Q2T4L6ML.js';
30
31
  export { SHEET_COLUMN_EDITOR_LABELS, SheetColumnEditor, SheetColumnTypeGlyph } from '../chunk-Z4H3NF7U.js';
31
- export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-2STOSJT3.js';
32
- export { TagGroup } from '../chunk-UEOEBOBR.js';
33
32
  export { matchesShortcut, useShortcut } from '../chunk-AYHIF6DH.js';
34
33
  import '../chunk-73GUXYYE.js';
34
+ export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-DV5L2GRY.js';
35
35
  export { SectionFrame, SectionFrameBody, SectionFrameNav } from '../chunk-G4CGDUCP.js';
36
36
  export { NavGroup, NavItem, SidebarNav } from '../chunk-WCDPFTJZ.js';
37
37
  export { SegmentedMeter, segmentedMeterLabel } from '../chunk-4AK52VHB.js';
@@ -63,7 +63,7 @@ export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from '../chunk-RM
63
63
  export { PricingCard } from '../chunk-D7G2QGET.js';
64
64
  export { PrincipalPicker } from '../chunk-CFTBESST.js';
65
65
  export { PropertyList } from '../chunk-OPVTNHPH.js';
66
- export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, PROPOSAL_TONES, ProposalCard } from '../chunk-DSMQTED5.js';
66
+ export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, PROPOSAL_TONES, ProposalCard } from '../chunk-BLGBD2D2.js';
67
67
  export { Prose } from '../chunk-DVVP27OD.js';
68
68
  export { PageNote } from '../chunk-CV4NES3P.js';
69
69
  export { PEEK_RAIL_LABELS, PEEK_RAIL_MAX_WIDTH, PEEK_RAIL_MIN_WIDTH, PEEK_RAIL_WIDTH, PeekHost, PeekNeighbours, PeekRail, isPlainPress, peekClickHandler, peekRowActivation, usePeekNeighbours, usePeekOrder, usePeekStep } from '../chunk-CDNZTCP2.js';
@@ -83,7 +83,7 @@ import '../chunk-KOJPDCGQ.js';
83
83
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-JNORDILD.js';
84
84
  export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-3G2BC4K5.js';
85
85
  export { MessageBubble } from '../chunk-KAQ2L74F.js';
86
- export { List, ListItem } from '../chunk-PS5ZYIA6.js';
86
+ export { LinkInterstitial, openExternal } from '../chunk-JD7P2GJP.js';
87
87
  export { ListDetail } from '../chunk-YBC2CYPD.js';
88
88
  export { ListInput, withDraft } from '../chunk-45M73G5A.js';
89
89
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from '../chunk-DPNVKWJX.js';
@@ -93,17 +93,17 @@ export { LogoSlot, LogoSlotGroup } from '../chunk-OWHETZIU.js';
93
93
  export { LAYERS_LIST_LABELS, LayersList } from '../chunk-VUYNNILP.js';
94
94
  export { AutoGrid, Inline, Spacer, Stack } from '../chunk-ZAC7SKUN.js';
95
95
  export { Link } from '../chunk-QF5UNP4T.js';
96
- export { LinkInterstitial, openExternal } from '../chunk-JD7P2GJP.js';
97
- export { IconTile } from '../chunk-3LI4TRUR.js';
96
+ export { List, ListItem } from '../chunk-PS5ZYIA6.js';
98
97
  export { ImageUpload } from '../chunk-ZQEJSEPS.js';
98
+ export { IconTile } from '../chunk-3LI4TRUR.js';
99
99
  export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from '../chunk-QPHD4UUG.js';
100
100
  export { IndicatorAnchor } from '../chunk-27MJPU7G.js';
101
- export { INLINE_EDITOR_LABELS, InlineEditor } from '../chunk-YL7AR6PR.js';
102
101
  export { InlineRef } from '../chunk-JGDCVLD4.js';
103
102
  export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from '../chunk-KBZO4B33.js';
103
+ export { INLINE_EDITOR_LABELS, InlineEditor } from '../chunk-YL7AR6PR.js';
104
104
  export { FindingList } from '../chunk-LSRQ2A6B.js';
105
- export { FolderTile, describeFolderContents, folderContentsParts } from '../chunk-WTXCK46H.js';
106
105
  export { FollowBanner } from '../chunk-JT7WRPZ6.js';
106
+ export { FolderTile, describeFolderContents, folderContentsParts } from '../chunk-WTXCK46H.js';
107
107
  export { DEFAULT_FRAME_THEME, EXTERNAL_URL_MAX, FRAME_BRIDGE, FRAME_MESSAGE, FRAME_ORIGIN_MODES, FRAME_SANDBOX_TOKENS, applyFrameTheme, checkFrameSandbox, externalUrl, frameFragment, frameOriginMatches, frameThemeMessage, httpOrigin, isFocusExit, isFrameNonce, negotiateBridge, parseFrameFragment, portTargetOrigin, readFrameHello, readFramePortMessage, readFrameTheme, readOpenLink } from '../chunk-F6V2PTN6.js';
108
108
  export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from '../chunk-ZXXDZJQN.js';
109
109
  export { IDLE_AFTER_MS, useFullscreen, useIdle } from '../chunk-W5XCNEZC.js';
@@ -136,33 +136,33 @@ export { ContrastBadge, ContrastLevelTag, contrastLevel, contrastRatio, formatCo
136
136
  export { CursorFlag } from '../chunk-MMCYH5LB.js';
137
137
  export { PresenceRing, presenceHueClass } from '../chunk-EFX2YC5T.js';
138
138
  export { ChooserList, ColumnChooser, DATA_GRID_ICON_TRACK, DataGrid, columnChoicesOf, countDataGridRows, fitGridColumns, nextGridSort, parseGridSort, useAnyDataGridDriving, useDataGridDriving } from '../chunk-LCZULGMB.js';
139
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-NSCACX5Y.js';
139
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-4WTLT66V.js';
140
140
  export { PageHeader } from '../chunk-FPDIHEM4.js';
141
141
  export { FILTER_PILL_LABELS, FILTER_PILL_WORDS_CLASS, FilterPill, filterPillSentence } from '../chunk-K4LZXSKZ.js';
142
142
  export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-HPI5J6AR.js';
143
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-INO2OXDB.js';
143
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-BRWR3QIG.js';
144
144
  export { ColorSwatch } from '../chunk-6FBPFG3C.js';
145
- export { Combobox } from '../chunk-6EWNMSS4.js';
146
145
  export { CommandPalette } from '../chunk-5CEQ3HLH.js';
147
146
  export { ConfirmModal, Modal } from '../chunk-C667GCU7.js';
147
+ export { Combobox } from '../chunk-6EWNMSS4.js';
148
148
  export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, useOptionKeys } from '../chunk-7KHM2FZH.js';
149
149
  export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-ADGNISEI.js';
150
+ export { CONFLICT_NOTE_LABELS, ConflictNote } from '../chunk-B3PK2LND.js';
150
151
  export { ConfirmField, confirmMatches } from '../chunk-TPIMOGOZ.js';
151
152
  export { InlineCode } from '../chunk-PLL7ZJHY.js';
152
- export { CONFLICT_NOTE_LABELS, ConflictNote } from '../chunk-B3PK2LND.js';
153
153
  export { Container } from '../chunk-HJO4WCH6.js';
154
154
  export { CheckGrid } from '../chunk-MGQKF7GK.js';
155
155
  export { ChoiceButtons } from '../chunk-RVSNBUIU.js';
156
156
  export { ChoiceCards } from '../chunk-B7NX425Z.js';
157
- export { ChoiceList } from '../chunk-6RW2MUTY.js';
158
157
  export { CodeBlock } from '../chunk-QSWQJX27.js';
159
158
  export { CopyButton, Copyable } from '../chunk-T5GBTXNC.js';
160
159
  export { useClipboard, writeClipboard } from '../chunk-STJ7QBC3.js';
161
160
  export { useOutcome } from '../chunk-DTIW4CHZ.js';
161
+ export { ChoiceList } from '../chunk-6RW2MUTY.js';
162
162
  export { ColorChip } from '../chunk-C6T4VBEY.js';
163
163
  export { ColorField } from '../chunk-T24HBEU6.js';
164
164
  export { CatalogTile } from '../chunk-QE4OIE3Q.js';
165
- export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged } from '../chunk-BBD7PTBG.js';
165
+ export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged } from '../chunk-4XF7ENQA.js';
166
166
  export { DIFF_LIST_LABELS, DiffList } from '../chunk-LR4IWUWQ.js';
167
167
  export { ChangeMark } from '../chunk-Z2MZTI3H.js';
168
168
  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';
package/dist/index.js CHANGED
@@ -1,13 +1,12 @@
1
1
  import './chunk-CDFQ7MQK.js';
2
- export { VersionTimeline } from './chunk-53J2YNQA.js';
3
2
  export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from './chunk-YT5SWN4Q.js';
3
+ export { VersionTimeline } from './chunk-53J2YNQA.js';
4
4
  export { WidgetFrame } from './chunk-S5QJZOPL.js';
5
5
  export { ElementToPngError, elementToPng, parseCsv, serializeElement, toCsv } from './chunk-FEJANUZK.js';
6
6
  export { ToastProvider, Toaster, readingDuration, toasterInsetStyle, useToast } from './chunk-JIBWNHTC.js';
7
7
  export { TreeCanvas } from './chunk-JQEXAH7G.js';
8
8
  export { TypeSpecimen } from './chunk-JKAFEFFC.js';
9
9
  export { REFERENCE_NAME_PATTERN, ValueField, completeReference, isWholeReference, rankReferences, referenceAt, urlSchemeOf } from './chunk-GHQG4VZA.js';
10
- export { ThemeGallery } from './chunk-63GBSOLU.js';
11
10
  export { DensitySwitcher, ThemeSwitcher } from './chunk-QHQGJQV7.js';
12
11
  export { ThemeToggle } from './chunk-IPMJGK2Q.js';
13
12
  export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from './chunk-Z24ZUSTX.js';
@@ -17,21 +16,22 @@ export { TIME_RANGE_CUSTOM, TIME_RANGE_PICKER_LABELS, TimeRangePicker, timeRange
17
16
  export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from './chunk-RIAPCEB5.js';
18
17
  export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from './chunk-VG3SIJ3M.js';
19
18
  export { TagsInput } from './chunk-WK4FQPYW.js';
19
+ export { ThemeGallery } from './chunk-63GBSOLU.js';
20
20
  export { ThemeSwatch } from './chunk-3XQUEF5C.js';
21
- export { StatGroup } from './chunk-OUD75UB2.js';
21
+ export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from './chunk-2STOSJT3.js';
22
+ export { TagGroup } from './chunk-UEOEBOBR.js';
22
23
  export { Statement } from './chunk-MZJKPTA5.js';
23
24
  export { Switcher } from './chunk-YQDRJZ5J.js';
24
- export { SLIDE_COMPARE_LABELS, SlideCompare } from './chunk-DV5L2GRY.js';
25
25
  export { SlideFilmstrip } from './chunk-TPCBPGSB.js';
26
26
  export { SlideGrid } from './chunk-7MGXHCVK.js';
27
27
  export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from './chunk-4TMBAOXK.js';
28
28
  export { StatCard } from './chunk-G5IZGAWS.js';
29
+ export { StatGroup } from './chunk-OUD75UB2.js';
29
30
  export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from './chunk-Q2T4L6ML.js';
30
31
  export { SHEET_COLUMN_EDITOR_LABELS, SheetColumnEditor, SheetColumnTypeGlyph } from './chunk-Z4H3NF7U.js';
31
- export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from './chunk-2STOSJT3.js';
32
- export { TagGroup } from './chunk-UEOEBOBR.js';
33
32
  export { matchesShortcut, useShortcut } from './chunk-AYHIF6DH.js';
34
33
  import './chunk-73GUXYYE.js';
34
+ export { SLIDE_COMPARE_LABELS, SlideCompare } from './chunk-DV5L2GRY.js';
35
35
  export { SectionFrame, SectionFrameBody, SectionFrameNav } from './chunk-G4CGDUCP.js';
36
36
  export { NavGroup, NavItem, SidebarNav } from './chunk-WCDPFTJZ.js';
37
37
  export { SegmentedMeter, segmentedMeterLabel } from './chunk-4AK52VHB.js';
@@ -63,7 +63,7 @@ export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from './chunk-RME
63
63
  export { PricingCard } from './chunk-D7G2QGET.js';
64
64
  export { PrincipalPicker } from './chunk-CFTBESST.js';
65
65
  export { PropertyList } from './chunk-OPVTNHPH.js';
66
- export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, PROPOSAL_TONES, ProposalCard } from './chunk-DSMQTED5.js';
66
+ export { PROPOSAL_CARD_LABELS, PROPOSAL_FAILURE_OUTCOMES, PROPOSAL_STATES, PROPOSAL_TONES, ProposalCard } from './chunk-BLGBD2D2.js';
67
67
  export { Prose } from './chunk-DVVP27OD.js';
68
68
  export { PageNote } from './chunk-CV4NES3P.js';
69
69
  export { PEEK_RAIL_LABELS, PEEK_RAIL_MAX_WIDTH, PEEK_RAIL_MIN_WIDTH, PEEK_RAIL_WIDTH, PeekHost, PeekNeighbours, PeekRail, isPlainPress, peekClickHandler, peekRowActivation, usePeekNeighbours, usePeekOrder, usePeekStep } from './chunk-CDNZTCP2.js';
@@ -83,7 +83,7 @@ import './chunk-KOJPDCGQ.js';
83
83
  export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from './chunk-JNORDILD.js';
84
84
  export { MERGE_CONFLICTS_LABELS, MergeConflicts } from './chunk-3G2BC4K5.js';
85
85
  export { MessageBubble } from './chunk-KAQ2L74F.js';
86
- export { List, ListItem } from './chunk-PS5ZYIA6.js';
86
+ export { LinkInterstitial, openExternal } from './chunk-JD7P2GJP.js';
87
87
  export { ListDetail } from './chunk-YBC2CYPD.js';
88
88
  export { ListInput, withDraft } from './chunk-45M73G5A.js';
89
89
  export { LIVE_CURSOR_HIDE_MS, LIVE_CURSOR_REST_MS, LiveCursor } from './chunk-DPNVKWJX.js';
@@ -93,17 +93,17 @@ export { LogoSlot, LogoSlotGroup } from './chunk-OWHETZIU.js';
93
93
  export { LAYERS_LIST_LABELS, LayersList } from './chunk-VUYNNILP.js';
94
94
  export { AutoGrid, Inline, Spacer, Stack } from './chunk-ZAC7SKUN.js';
95
95
  export { Link } from './chunk-QF5UNP4T.js';
96
- export { LinkInterstitial, openExternal } from './chunk-JD7P2GJP.js';
97
- export { IconTile } from './chunk-3LI4TRUR.js';
96
+ export { List, ListItem } from './chunk-PS5ZYIA6.js';
98
97
  export { ImageUpload } from './chunk-ZQEJSEPS.js';
98
+ export { IconTile } from './chunk-3LI4TRUR.js';
99
99
  export { InboxGroup, InboxList, InboxMore, InboxRow, InboxToggle } from './chunk-QPHD4UUG.js';
100
100
  export { IndicatorAnchor } from './chunk-27MJPU7G.js';
101
- export { INLINE_EDITOR_LABELS, InlineEditor } from './chunk-YL7AR6PR.js';
102
101
  export { InlineRef } from './chunk-JGDCVLD4.js';
103
102
  export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from './chunk-KBZO4B33.js';
103
+ export { INLINE_EDITOR_LABELS, InlineEditor } from './chunk-YL7AR6PR.js';
104
104
  export { FindingList } from './chunk-LSRQ2A6B.js';
105
- export { FolderTile, describeFolderContents, folderContentsParts } from './chunk-WTXCK46H.js';
106
105
  export { FollowBanner } from './chunk-JT7WRPZ6.js';
106
+ export { FolderTile, describeFolderContents, folderContentsParts } from './chunk-WTXCK46H.js';
107
107
  export { DEFAULT_FRAME_THEME, EXTERNAL_URL_MAX, FRAME_BRIDGE, FRAME_MESSAGE, FRAME_ORIGIN_MODES, FRAME_SANDBOX_TOKENS, applyFrameTheme, checkFrameSandbox, externalUrl, frameFragment, frameOriginMatches, frameThemeMessage, httpOrigin, isFocusExit, isFrameNonce, negotiateBridge, parseFrameFragment, portTargetOrigin, readFrameHello, readFramePortMessage, readFrameTheme, readOpenLink } from './chunk-F6V2PTN6.js';
108
108
  export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from './chunk-ZXXDZJQN.js';
109
109
  export { IDLE_AFTER_MS, useFullscreen, useIdle } from './chunk-W5XCNEZC.js';
@@ -136,33 +136,33 @@ export { ContrastBadge, ContrastLevelTag, contrastLevel, contrastRatio, formatCo
136
136
  export { CursorFlag } from './chunk-MMCYH5LB.js';
137
137
  export { PresenceRing, presenceHueClass } from './chunk-EFX2YC5T.js';
138
138
  export { ChooserList, ColumnChooser, DATA_GRID_ICON_TRACK, DataGrid, columnChoicesOf, countDataGridRows, fitGridColumns, nextGridSort, parseGridSort, useAnyDataGridDriving, useDataGridDriving } from './chunk-LCZULGMB.js';
139
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-NSCACX5Y.js';
139
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from './chunk-4WTLT66V.js';
140
140
  export { PageHeader } from './chunk-FPDIHEM4.js';
141
141
  export { FILTER_PILL_LABELS, FILTER_PILL_WORDS_CLASS, FilterPill, filterPillSentence } from './chunk-K4LZXSKZ.js';
142
142
  export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from './chunk-HPI5J6AR.js';
143
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-INO2OXDB.js';
143
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from './chunk-BRWR3QIG.js';
144
144
  export { ColorSwatch } from './chunk-6FBPFG3C.js';
145
- export { Combobox } from './chunk-6EWNMSS4.js';
146
145
  export { CommandPalette } from './chunk-5CEQ3HLH.js';
147
146
  export { ConfirmModal, Modal } from './chunk-C667GCU7.js';
147
+ export { Combobox } from './chunk-6EWNMSS4.js';
148
148
  export { HIGHLIGHT_REST_MS, TYPE_AHEAD_WINDOW, useHighlightRest, useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
149
149
  export { COMMENT_THREAD_LABELS, CommentThread } from './chunk-ADGNISEI.js';
150
+ export { CONFLICT_NOTE_LABELS, ConflictNote } from './chunk-B3PK2LND.js';
150
151
  export { ConfirmField, confirmMatches } from './chunk-TPIMOGOZ.js';
151
152
  export { InlineCode } from './chunk-PLL7ZJHY.js';
152
- export { CONFLICT_NOTE_LABELS, ConflictNote } from './chunk-B3PK2LND.js';
153
153
  export { Container } from './chunk-HJO4WCH6.js';
154
154
  export { CheckGrid } from './chunk-MGQKF7GK.js';
155
155
  export { ChoiceButtons } from './chunk-RVSNBUIU.js';
156
156
  export { ChoiceCards } from './chunk-B7NX425Z.js';
157
- export { ChoiceList } from './chunk-6RW2MUTY.js';
158
157
  export { CodeBlock } from './chunk-QSWQJX27.js';
159
158
  export { CopyButton, Copyable } from './chunk-T5GBTXNC.js';
160
159
  export { useClipboard, writeClipboard } from './chunk-STJ7QBC3.js';
161
160
  export { useOutcome } from './chunk-DTIW4CHZ.js';
161
+ export { ChoiceList } from './chunk-6RW2MUTY.js';
162
162
  export { ColorChip } from './chunk-C6T4VBEY.js';
163
163
  export { ColorField } from './chunk-T24HBEU6.js';
164
164
  export { CatalogTile } from './chunk-QE4OIE3Q.js';
165
- export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged } from './chunk-BBD7PTBG.js';
165
+ export { CHANGE_LIST_COLLAPSE_OVER, CHANGE_LIST_LABELS, ChangeList, ChangeListItems, shortenUnchanged } from './chunk-4XF7ENQA.js';
166
166
  export { DIFF_LIST_LABELS, DiffList } from './chunk-LR4IWUWQ.js';
167
167
  export { ChangeMark } from './chunk-Z2MZTI3H.js';
168
168
  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';
package/dist/styles.css CHANGED
@@ -8387,7 +8387,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
8387
8387
  }
8388
8388
 
8389
8389
 
8390
- /* ChangeList-MDFH5NPH.css */
8390
+ /* ChangeList-ITJMTVDF.css */
8391
8391
  /*
8392
8392
  * What a change will do, as a before and after on PropertyList's grid: one
8393
8393
  * label column (as wide as the longest label, never under 92px) and one value
@@ -8598,6 +8598,59 @@ a.crewlet-breadcrumb__crumb:focus-visible {
8598
8598
  color: var(--color-text-secondary);
8599
8599
  }
8600
8600
 
8601
+ /*
8602
+ * INLINE: one line a row, the label and then its values as chips. The rows
8603
+ * stack; a row wraps as the pair does, the arrow staying with what it points
8604
+ * at. A word diff and a block value keep their own layout under the label.
8605
+ */
8606
+ .crewlet-change-list--inline .crewlet-change-list__rows {
8607
+ display: flex;
8608
+ flex-direction: column;
8609
+ gap: var(--spacing-1);
8610
+ }
8611
+
8612
+ .crewlet-change-list--inline .crewlet-change-list__row {
8613
+ display: flex;
8614
+ flex-wrap: wrap;
8615
+ align-items: center;
8616
+ gap: var(--spacing-1) var(--spacing-2);
8617
+ }
8618
+
8619
+ .crewlet-change-list--inline .crewlet-change-list__row--text,
8620
+ .crewlet-change-list--inline .crewlet-change-list__row--block {
8621
+ flex-direction: column;
8622
+ align-items: stretch;
8623
+ }
8624
+
8625
+ /* The label in the secondary ink at the row's own size, closed by a colon. */
8626
+ .crewlet-change-list--inline .crewlet-change-list__label {
8627
+ font-size: inherit;
8628
+ color: var(--color-text-secondary);
8629
+ }
8630
+
8631
+ .crewlet-change-list--inline .crewlet-change-list__row:not(.crewlet-change-list__row--text):not(.crewlet-change-list__row--block) > .crewlet-change-list__label::after {
8632
+ content: ':';
8633
+ }
8634
+
8635
+ .crewlet-change-list--inline .crewlet-change-list__pair {
8636
+ align-items: center;
8637
+ }
8638
+
8639
+ .crewlet-change-list--inline .crewlet-change-list__next {
8640
+ align-items: center;
8641
+ }
8642
+
8643
+ /* THE CHIP IS THE MARK, so the element around it draws none of its own. */
8644
+ .crewlet-change-list__chip {
8645
+ display: inline-flex;
8646
+ text-decoration: none;
8647
+ }
8648
+
8649
+ .crewlet-change-list--inline .crewlet-change-list__note {
8650
+ flex-basis: 100%;
8651
+ margin-top: 0;
8652
+ }
8653
+
8601
8654
 
8602
8655
  /* ChangeMark-KFDGBF6G.css */
8603
8656
  /*
@@ -13862,7 +13915,7 @@ button.crewlet-data-grid__row-link {
13862
13915
  }
13863
13916
 
13864
13917
 
13865
- /* DataTable-H43JSHOI.css */
13918
+ /* DataTable-GSLDFY5U.css */
13866
13919
  /* ─────────────────────────────────────────────────────────────────
13867
13920
  * Default variant.
13868
13921
  *
@@ -14662,6 +14715,44 @@ body.crewlet-data-table-resizing {
14662
14715
  width: var(--spacing-6);
14663
14716
  }
14664
14717
 
14718
+ /*
14719
+ * A TABLE SIZED TO ITS CONTENT (`columnSizing="content"`) is laid out by the
14720
+ * automatic algorithm, with no width stated on its columns. The spacer asks
14721
+ * for the whole row, so every other column gives up all it can: down to its
14722
+ * widest cell. What is left over is the spacer's.
14723
+ *
14724
+ * Its cells never wrap, Wrap lines or not. A cell that may break anywhere is
14725
+ * a column the automatic layout squeezes to a few letters a line, which is
14726
+ * what a name became the first time this was drawn; and with every column as
14727
+ * wide as its content there is nothing to truncate, so the toggle has nothing
14728
+ * to decide.
14729
+ *
14730
+ * After the gutter rule above and as specific, so a pinned column keeps its
14731
+ * gutter as the spacer's floor while the spacer still takes the rest of the
14732
+ * row. The panels that span the row wrap, as their content does at any width:
14733
+ * kept on one line, a sentence in one would be measured as the narrowest the
14734
+ * table may be.
14735
+ */
14736
+ .crewlet-data-table--compact .crewlet-data-table__table.crewlet-data-table__table--content {
14737
+ table-layout: auto;
14738
+ }
14739
+
14740
+ .crewlet-data-table--compact .crewlet-data-table__table.crewlet-data-table__table--content td:not(.crewlet-data-table__expanded-cell):not(.crewlet-data-table__accessory-cell) {
14741
+ white-space: nowrap;
14742
+ overflow-wrap: normal;
14743
+ word-break: normal;
14744
+ }
14745
+
14746
+ .crewlet-data-table--compact .crewlet-data-table__table.crewlet-data-table__table--content .crewlet-data-table__th--spacer,
14747
+ .crewlet-data-table--compact .crewlet-data-table__table.crewlet-data-table__table--content .crewlet-data-table__td--spacer {
14748
+ width: 100%;
14749
+ }
14750
+
14751
+ .crewlet-data-table__table--content td.crewlet-data-table__expanded-cell,
14752
+ .crewlet-data-table__table--content td.crewlet-data-table__accessory-cell {
14753
+ white-space: normal;
14754
+ }
14755
+
14665
14756
  /*
14666
14757
  * Row actions column: pinned to the viewport's right edge with
14667
14758
  * position: sticky so the kebab affordance stays visible during
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.79.0",
3
+ "version": "0.80.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.79.0",
46
- "@crewlethq/tokens": "0.79.0",
45
+ "@crewlethq/icons": "0.80.0",
46
+ "@crewlethq/tokens": "0.80.0",
47
47
  "prosemirror-commands": "1.7.2",
48
48
  "prosemirror-gapcursor": "1.4.1",
49
49
  "prosemirror-history": "1.5.1",