@crewlethq/ui 0.43.0 → 0.44.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.
Files changed (46) hide show
  1. package/README.md +10 -0
  2. package/dist/AgentHandoffPanel/index.js +2 -2
  3. package/dist/ArrangeFrame/index.js +2 -2
  4. package/dist/ArrangeList/index.js +1 -1
  5. package/dist/AvatarPicker/index.js +3 -3
  6. package/dist/CatalogTile/CatalogTile.d.ts +12 -1
  7. package/dist/CatalogTile/index.d.ts +1 -1
  8. package/dist/CatalogTile/index.js +1 -1
  9. package/dist/{CatalogTile-XL4XLFUH.css → CatalogTile-VPSLCKJE.css} +55 -0
  10. package/dist/CharacterPicker/index.js +2 -2
  11. package/dist/CommentThread/index.js +2 -2
  12. package/dist/DataView/index.js +2 -2
  13. package/dist/DatasetSource/index.js +1 -1
  14. package/dist/DirectoryList/DirectoryList.d.ts +9 -4
  15. package/dist/DirectoryList/index.js +1 -1
  16. package/dist/{DirectoryList-EESYMH2U.css → DirectoryList-7OXXN47X.css} +30 -7
  17. package/dist/DocTabsEditor/index.js +1 -1
  18. package/dist/ListInput/index.js +2 -2
  19. package/dist/RichEditor/index.js +1 -1
  20. package/dist/Section/Section.d.ts +6 -0
  21. package/dist/Section/index.js +1 -1
  22. package/dist/{Section-O5AHGSOG.css → Section-M7SG6NP2.css} +14 -0
  23. package/dist/SheetGrid/index.js +5 -5
  24. package/dist/SlideFilmstrip/index.js +1 -1
  25. package/dist/Switcher/index.js +2 -2
  26. package/dist/TableCells/index.js +1 -1
  27. package/dist/TagsInput/index.js +2 -2
  28. package/dist/{chunk-SJ6DMG4R.js → chunk-4AA6WPQU.js} +1 -1
  29. package/dist/{chunk-PCT47E7O.js → chunk-5GNA4RKP.js} +36 -1
  30. package/dist/{chunk-3TFDQLW3.js → chunk-JQ7IFSF6.js} +1 -1
  31. package/dist/{chunk-BO7Q6JP6.js → chunk-N3SHQ3VU.js} +1 -1
  32. package/dist/{chunk-PLLYOPS4.js → chunk-Q7HLZH32.js} +1 -1
  33. package/dist/{chunk-JF3TJUBU.js → chunk-TVSHR35W.js} +1 -1
  34. package/dist/generated/index.js +40 -40
  35. package/dist/index.js +40 -40
  36. package/dist/styles.css +102 -10
  37. package/package.json +3 -3
  38. package/dist/{Editor-AMO2B54T.js → Editor-FXO2JVWK.js} +1 -1
  39. package/dist/{chunk-NCM73C34.js → chunk-AACPFUZW.js} +1 -1
  40. package/dist/{chunk-524GGA67.js → chunk-NF6SWHQI.js} +1 -1
  41. package/dist/{chunk-Z5WMCBHR.js → chunk-NMYGJJJK.js} +1 -1
  42. package/dist/{chunk-AGNZIT3Z.js → chunk-NVMZQ3Y4.js} +1 -1
  43. package/dist/{chunk-OVHJTOKW.js → chunk-OWIGEE2Y.js} +2 -2
  44. package/dist/{chunk-VZICPYGR.js → chunk-SNQRGH4A.js} +1 -1
  45. package/dist/{chunk-IVAR7NRW.js → chunk-SXBJMBSV.js} +1 -1
  46. package/dist/{chunk-LKBZV5IT.js → chunk-VWYT3GVV.js} +1 -1
package/README.md CHANGED
@@ -204,6 +204,16 @@ places:
204
204
  - A surface that pans or zooms dispatches `LAYER_REPOSITION_EVENT` on its host
205
205
  when the content beneath it moves, and every panel anchored inside follows.
206
206
 
207
+ ## Changes in 0.44.0
208
+
209
+ The pieces of the engine's Company › Integrations home, a summary of what a company has in use beside the directory of everything it could.
210
+
211
+ **`DirectoryList` lines stand at the rail's row step**: each line is exactly `--size-nav-row` (30px) in the rail's compact type, its mark at the glyph step (16px, `md`), its `hint` inline after the label in the quiet ink, giving way before the label in a narrow column, and its state held inside the row, so no line stands taller than the rest. Groups stand one small step (`--spacing-3`) apart.
212
+
213
+ **`CatalogTile` takes `density="compact"`**, a summary's tile at about half the height: the mark, the name, its state, its fact (`meta`) and the one action on the header line, and the sentence on one line under it, cut to fit with the whole of it in its title. The default, `comfortable`, is unchanged.
214
+
215
+ **`Section` takes `spacing="tight"`**: one small step (`--spacing-2`) between a heading and what it introduces, titled or not. A heading may carry the kit's `Count` of what is under it (`title={<>In use <Count value={4} /></>}`).
216
+
207
217
  ## Changes in 0.43.0
208
218
 
209
219
  The parts of the engine's Company › Integrations page, a directory of everything a company works in beside the detail of the one chosen.
@@ -1,6 +1,6 @@
1
- export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from '../chunk-BO7Q6JP6.js';
1
+ export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from '../chunk-N3SHQ3VU.js';
2
2
  import '../chunk-AUQPBL4O.js';
3
- import '../chunk-3TFDQLW3.js';
3
+ import '../chunk-JQ7IFSF6.js';
4
4
  import '../chunk-OGXHZHRX.js';
5
5
  import '../chunk-7CXGSS7D.js';
6
6
  import '../chunk-NBDN5JZV.js';
@@ -1,5 +1,5 @@
1
- export { ArrangeFrame, useGridResize } from '../chunk-LKBZV5IT.js';
2
- import '../chunk-LACA4JGC.js';
1
+ export { ArrangeFrame, useGridResize } from '../chunk-VWYT3GVV.js';
3
2
  import '../chunk-RSAQOKH3.js';
3
+ import '../chunk-LACA4JGC.js';
4
4
  import '../chunk-BZFWDIV6.js';
5
5
  import '../chunk-ODEQTPFM.js';
@@ -4,8 +4,8 @@ import '../chunk-XJ2QEBMM.js';
4
4
  import '../chunk-EY7LACIR.js';
5
5
  import '../chunk-ZI5G5RS7.js';
6
6
  import '../chunk-PQADV6P6.js';
7
+ import '../chunk-RSAQOKH3.js';
7
8
  import '../chunk-LACA4JGC.js';
8
9
  import '../chunk-NUZHC6MM.js';
9
- import '../chunk-RSAQOKH3.js';
10
10
  import '../chunk-BZFWDIV6.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -1,13 +1,13 @@
1
- export { AvatarPicker } from '../chunk-PLLYOPS4.js';
1
+ export { AvatarPicker } from '../chunk-Q7HLZH32.js';
2
2
  import '../chunk-QOP7QYUW.js';
3
3
  import '../chunk-KHJIEPZV.js';
4
4
  import '../chunk-AYKXMIOR.js';
5
- import '../chunk-VZICPYGR.js';
6
- import '../chunk-PZKHBB7D.js';
5
+ import '../chunk-SNQRGH4A.js';
7
6
  import '../chunk-BF5WV7NM.js';
8
7
  import '../chunk-KA75QPFM.js';
9
8
  import '../chunk-WIATRXEJ.js';
10
9
  import '../chunk-EGMQURBR.js';
10
+ import '../chunk-PZKHBB7D.js';
11
11
  import '../chunk-BHHIIK3M.js';
12
12
  import '../chunk-PCI7ZJ6Z.js';
13
13
  import '../chunk-OMV5W53A.js';
@@ -1,6 +1,15 @@
1
1
  import { type HTMLAttributes, type ReactNode } from 'react';
2
2
  import { type HeadingLevel } from '../utils/headingLevel.js';
3
3
  export type CatalogTileElement = 'article' | 'li' | 'div';
4
+ /**
5
+ * How much room a tile takes. `comfortable` (the default) is the catalogue's
6
+ * tile: a mark well, a name with its state under it, a reserved two-line
7
+ * sentence and a ruled foot. `compact` is a summary's: one header line (the
8
+ * mark, the name, its state and the fact, then the action at its end) over
9
+ * one line of sentence, about half the height, for a page that lists what is
10
+ * already in use rather than offers a choice.
11
+ */
12
+ export type CatalogTileDensity = 'comfortable' | 'compact';
4
13
  export interface CatalogTileProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
5
14
  /** The element the tile is: an `li` in a `TileGrid as="ul"`. */
6
15
  as?: CatalogTileElement | undefined;
@@ -33,6 +42,8 @@ export interface CatalogTileProps extends Omit<HTMLAttributes<HTMLElement>, 'tit
33
42
  * strength, because a tile not yet set up is the one a reader came to set up.
34
43
  */
35
44
  quiet?: boolean | undefined;
45
+ /** How much room the tile takes; see [CatalogTileDensity]. */
46
+ density?: CatalogTileDensity | undefined;
36
47
  }
37
48
  /**
38
49
  * One entry in a catalogue: its mark, its name, its state when it has one, a
@@ -44,4 +55,4 @@ export interface CatalogTileProps extends Omit<HTMLAttributes<HTMLElement>, 'tit
44
55
  * action draws no foot at all, since a rule with nothing under it reads as a
45
56
  * missing control.
46
57
  */
47
- export declare function CatalogTile({ as: Element, mark, title, headingLevel, status, description, meta, action, quiet, className, ...rest }: CatalogTileProps): import("react").JSX.Element;
58
+ export declare function CatalogTile({ as: Element, mark, title, headingLevel, status, description, meta, action, quiet, density, className, ...rest }: CatalogTileProps): import("react").JSX.Element;
@@ -1,3 +1,3 @@
1
1
  import './CatalogTile.css';
2
2
  export { CatalogTile } from './CatalogTile.js';
3
- export type { CatalogTileElement, CatalogTileProps } from './CatalogTile.js';
3
+ export type { CatalogTileDensity, CatalogTileElement, CatalogTileProps } from './CatalogTile.js';
@@ -1,3 +1,3 @@
1
- export { CatalogTile } from '../chunk-PCT47E7O.js';
1
+ export { CatalogTile } from '../chunk-5GNA4RKP.js';
2
2
  import '../chunk-PQADV6P6.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -133,3 +133,58 @@
133
133
  min-height: 0;
134
134
  }
135
135
  }
136
+
137
+ /*
138
+ * COMPACT: a summary's tile, about half the comfortable one's height. One
139
+ * header line holds the mark (the row step's well, 28px), the name, its state
140
+ * and its fact, and the action at the end; the sentence is one line under it,
141
+ * aligned to the name, cut to fit. No reserve and no foot, because a summary
142
+ * has no row of feet to line up.
143
+ */
144
+ .crewlet-catalog-tile--compact {
145
+ gap: var(--spacing-1);
146
+ padding: var(--spacing-3);
147
+ }
148
+
149
+ .crewlet-catalog-tile--compact .crewlet-catalog-tile__head {
150
+ align-items: center;
151
+ gap: var(--spacing-2);
152
+ }
153
+
154
+ .crewlet-catalog-tile--compact .crewlet-catalog-tile__mark {
155
+ width: var(--size-row-sm);
156
+ height: var(--size-row-sm);
157
+ }
158
+
159
+ .crewlet-catalog-tile--compact .crewlet-catalog-tile__title {
160
+ flex: 1 1 auto;
161
+ flex-direction: row;
162
+ align-items: center;
163
+ gap: var(--spacing-2);
164
+ padding-top: 0;
165
+ }
166
+
167
+ .crewlet-catalog-tile--compact .crewlet-catalog-tile__name {
168
+ flex: 0 1 auto;
169
+ min-width: 0;
170
+ overflow: hidden;
171
+ text-overflow: ellipsis;
172
+ white-space: nowrap;
173
+ }
174
+
175
+ .crewlet-catalog-tile--compact .crewlet-catalog-tile__status {
176
+ flex: none;
177
+ }
178
+
179
+ .crewlet-catalog-tile--compact .crewlet-catalog-tile__meta {
180
+ flex: 0 1 auto;
181
+ }
182
+
183
+ .crewlet-catalog-tile--compact .crewlet-catalog-tile__description {
184
+ flex: none;
185
+ min-height: 0;
186
+ padding-left: calc(var(--size-row-sm) + var(--spacing-2));
187
+ overflow: hidden;
188
+ text-overflow: ellipsis;
189
+ white-space: nowrap;
190
+ }
@@ -1,5 +1,5 @@
1
1
  import '../chunk-3L5NHASN.js';
2
- export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from '../chunk-VZICPYGR.js';
3
- import '../chunk-PZKHBB7D.js';
2
+ export { CHARACTER_PICKER_COLUMNS, CharacterPicker } from '../chunk-SNQRGH4A.js';
4
3
  import '../chunk-EGMQURBR.js';
4
+ import '../chunk-PZKHBB7D.js';
5
5
  import '../chunk-ODEQTPFM.js';
@@ -1,10 +1,10 @@
1
- export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-AGNZIT3Z.js';
1
+ export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-NVMZQ3Y4.js';
2
+ import '../chunk-PWG3VHRQ.js';
2
3
  import '../chunk-CI3VPIJN.js';
3
4
  import '../chunk-3CZ7XAVY.js';
4
5
  import '../chunk-EUCC37WY.js';
5
6
  import '../chunk-5AQBPHZD.js';
6
7
  import '../chunk-PZKHBB7D.js';
7
- import '../chunk-PWG3VHRQ.js';
8
8
  import '../chunk-7CXGSS7D.js';
9
9
  import '../chunk-ZI5G5RS7.js';
10
10
  import '../chunk-SMBKXWML.js';
@@ -1,7 +1,7 @@
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-NCM73C34.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-AACPFUZW.js';
2
2
  import '../chunk-HOXGBLEY.js';
3
- import '../chunk-GI3S6RMM.js';
4
3
  import '../chunk-UFXLNC2N.js';
4
+ import '../chunk-GI3S6RMM.js';
5
5
  import '../chunk-STJ7QBC3.js';
6
6
  import '../chunk-DTIW4CHZ.js';
7
7
  import '../chunk-FYINAYAJ.js';
@@ -1,8 +1,8 @@
1
1
  export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-HQJ24WPM.js';
2
2
  import '../chunk-KYIAFNU7.js';
3
+ import '../chunk-WIATRXEJ.js';
3
4
  import '../chunk-3CZ7XAVY.js';
4
5
  import '../chunk-EUCC37WY.js';
5
- import '../chunk-WIATRXEJ.js';
6
6
  import '../chunk-2YTOOH3A.js';
7
7
  import '../chunk-BZFWDIV6.js';
8
8
  import '../chunk-ODEQTPFM.js';
@@ -5,10 +5,13 @@ export interface DirectoryItem {
5
5
  key: string;
6
6
  /** Where the line goes: the item's own page. */
7
7
  href: string;
8
- /** The item's mark: a vendor's, a product's. Decorative, since the label names it. */
8
+ /**
9
+ * The item's mark: a vendor's, a product's, at the glyph step (16px, `md`).
10
+ * Decorative, since the label names it.
11
+ */
9
12
  mark?: ReactNode;
10
13
  label: ReactNode;
11
- /** A quieter line under the label: the app a product belongs to. */
14
+ /** A quieter word after the label, on its line: the app a product belongs to. */
12
15
  hint?: ReactNode;
13
16
  /** The item's state where it has one: a status dot and word, or a pill. */
14
17
  status?: ReactNode;
@@ -43,8 +46,10 @@ export interface DirectoryListProps {
43
46
  * A NAVIGATION LANDMARK of lists under headings, so a screen reader can jump
44
47
  * group to group and is told how many lines each holds. The chosen line is
45
48
  * `aria-current="page"` and drawn on the selected ground. A line carries its
46
- * mark, its label (and a quieter hint under it) and its state where it has
47
- * one; a line with no state says nothing rather than "none".
49
+ * mark, its label (and a quieter hint after it) and its state where it has
50
+ * one; a line with no state says nothing rather than "none". A LINE STANDS
51
+ * AT THE RAIL'S ROW STEP (30px), in the rail's compact type, because a
52
+ * directory is navigation beside the page as the rail is beside the app.
48
53
  *
49
54
  * IT FILLS THE HEIGHT IT IS GIVEN. The groups take the room and scroll on
50
55
  * their own when they outgrow it, and the foot holds the bottom, one small
@@ -1,3 +1,3 @@
1
- export { DirectoryList } from '../chunk-SJ6DMG4R.js';
1
+ export { DirectoryList } from '../chunk-4AA6WPQU.js';
2
2
  import '../chunk-PQADV6P6.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -22,7 +22,9 @@
22
22
  display: flex;
23
23
  flex: 1 1 auto;
24
24
  flex-direction: column;
25
- gap: var(--spacing-5);
25
+ /* One small step between groups, so a heading reads as the head of the lines
26
+ under it rather than a band between two runs of them. */
27
+ gap: var(--spacing-3);
26
28
  min-height: 0;
27
29
  overflow-y: auto;
28
30
  }
@@ -53,16 +55,24 @@
53
55
  list-style: none;
54
56
  }
55
57
 
58
+ /*
59
+ * THE RAIL'S ROW STEP, 30px (--size-nav-row): a directory is navigation beside
60
+ * the page as the rail is beside the app, so its lines stand at the rail's
61
+ * height and in its compact type. Everything a line says fits that one line:
62
+ * a mark the size of the rail's glyph box, the hint inline after the label,
63
+ * and the state compact at the end.
64
+ */
56
65
  .crewlet-directory__item {
57
66
  display: grid;
58
67
  grid-template-columns: auto minmax(0, 1fr) auto;
59
68
  align-items: center;
60
69
  gap: var(--spacing-2);
61
- min-height: var(--size-row-md);
62
- padding: var(--spacing-1) var(--spacing-2);
70
+ height: var(--size-nav-row);
71
+ padding: 0 var(--spacing-2);
63
72
  border-radius: var(--radius-md);
64
73
  color: var(--color-text-primary);
65
- font-size: var(--font-size-sm);
74
+ font-size: var(--font-size-compact);
75
+ line-height: var(--font-line-height-tight);
66
76
  text-decoration: none;
67
77
  }
68
78
 
@@ -80,22 +90,28 @@
80
90
  outline-offset: 1px;
81
91
  }
82
92
 
93
+ /* The box takes its mark, as the rail's glyph box does: a mark at the glyph's
94
+ own step (16px, `md`) sits in the row with room to spare. */
83
95
  .crewlet-directory__mark {
84
96
  display: inline-flex;
85
97
  flex: none;
86
98
  align-items: center;
87
99
  justify-content: center;
88
- width: var(--size-row-sm);
89
- height: var(--size-row-sm);
90
100
  }
91
101
 
102
+ /* ONE LINE: the label, then the hint after it in the quiet ink. The hint gives
103
+ way first, so a narrow column cuts "Atlassian" before it cuts "Confluence". */
92
104
  .crewlet-directory__text {
93
105
  display: flex;
94
- flex-direction: column;
106
+ align-items: baseline;
107
+ gap: var(--spacing-1);
95
108
  min-width: 0;
96
109
  }
97
110
 
98
111
  .crewlet-directory__label {
112
+ flex: 0 0 auto;
113
+ max-width: 100%;
114
+ min-width: 0;
99
115
  overflow: hidden;
100
116
  font-weight: var(--font-weight-medium);
101
117
  text-overflow: ellipsis;
@@ -103,6 +119,8 @@
103
119
  }
104
120
 
105
121
  .crewlet-directory__hint {
122
+ flex: 0 1 auto;
123
+ min-width: 0;
106
124
  overflow: hidden;
107
125
  font-size: var(--font-size-xs);
108
126
  color: var(--color-text-tertiary);
@@ -110,10 +128,15 @@
110
128
  white-space: nowrap;
111
129
  }
112
130
 
131
+ /* THE STATE IS COMPACT: a pill or a dot and its word in the small step, held
132
+ inside the row so a state never makes one line taller than the rest. */
113
133
  .crewlet-directory__status {
114
134
  display: inline-flex;
115
135
  flex: none;
136
+ align-items: center;
137
+ max-height: calc(var(--size-nav-row) - var(--spacing-2));
116
138
  font-size: var(--font-size-xs);
139
+ line-height: 1;
117
140
  color: var(--color-text-secondary);
118
141
  }
119
142
 
@@ -2,12 +2,12 @@ export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-W53CWWX3.js';
2
2
  import '../chunk-XJ2QEBMM.js';
3
3
  import '../chunk-ZI5G5RS7.js';
4
4
  import '../chunk-PQADV6P6.js';
5
+ import '../chunk-RSAQOKH3.js';
5
6
  import '../chunk-PCI7ZJ6Z.js';
6
7
  import '../chunk-OMV5W53A.js';
7
8
  import '../chunk-H5XTJ7GJ.js';
8
9
  import '../chunk-OG6CL3EB.js';
9
10
  import '../chunk-LACA4JGC.js';
10
11
  import '../chunk-NUZHC6MM.js';
11
- import '../chunk-RSAQOKH3.js';
12
12
  import '../chunk-BZFWDIV6.js';
13
13
  import '../chunk-ODEQTPFM.js';
@@ -1,11 +1,11 @@
1
- export { ListInput } from '../chunk-Z5WMCBHR.js';
1
+ export { ListInput } from '../chunk-NMYGJJJK.js';
2
2
  import '../chunk-ZI5G5RS7.js';
3
3
  import '../chunk-SMBKXWML.js';
4
4
  import '../chunk-PQADV6P6.js';
5
+ import '../chunk-RSAQOKH3.js';
5
6
  import '../chunk-OMV5W53A.js';
6
7
  import '../chunk-H5XTJ7GJ.js';
7
8
  import '../chunk-LACA4JGC.js';
8
9
  import '../chunk-NUZHC6MM.js';
9
- import '../chunk-RSAQOKH3.js';
10
10
  import '../chunk-BZFWDIV6.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
- export { RichEditor, preloadRichEditor } from '../chunk-JF3TJUBU.js';
1
+ export { RichEditor, preloadRichEditor } from '../chunk-TVSHR35W.js';
2
2
  export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
3
3
  import '../chunk-BAKPMH3S.js';
4
4
  import '../chunk-SZZRIHGT.js';
@@ -9,6 +9,12 @@ export type SectionSpacing =
9
9
  * marketing band between each pair of panels puts one panel per viewport.
10
10
  */
11
11
  | 'compact'
12
+ /**
13
+ * The console band at its tightest: one small step between the heading and
14
+ * what it introduces, for a summary whose sections stand close, as a list's
15
+ * group headings do.
16
+ */
17
+ | 'tight'
12
18
  /** A marketing band. State one: a page of them is a deliberate page. */
13
19
  | 'sm' | 'md' | 'lg';
14
20
  export type SectionElement = 'section' | 'div' | 'header' | 'footer' | 'article';
@@ -1,3 +1,3 @@
1
- export { Section } from '../chunk-3TFDQLW3.js';
1
+ export { Section } from '../chunk-JQ7IFSF6.js';
2
2
  import '../chunk-PQADV6P6.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -23,6 +23,14 @@
23
23
  padding-block: 0;
24
24
  }
25
25
 
26
+ /* The console band at its tightest: a group heading's step to what it names. */
27
+ .crewlet-section--tight {
28
+ display: flex;
29
+ flex-direction: column;
30
+ gap: var(--spacing-2);
31
+ padding-block: 0;
32
+ }
33
+
26
34
  .crewlet-section--sm {
27
35
  padding-block: var(--spacing-9);
28
36
  }
@@ -106,6 +114,12 @@
106
114
  gap: var(--spacing-3);
107
115
  }
108
116
 
117
+ /* A tight band keeps its one small step with a title too: the titled column's
118
+ gap would otherwise win, being later in the sheet. */
119
+ .crewlet-section--tight.crewlet-section--titled {
120
+ gap: var(--spacing-2);
121
+ }
122
+
109
123
  @media (max-width: 768px) {
110
124
  .crewlet-section--sm {
111
125
  padding-block: var(--spacing-7);
@@ -1,24 +1,24 @@
1
- export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-OVHJTOKW.js';
1
+ export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-OWIGEE2Y.js';
2
2
  import '../chunk-O2EGEONV.js';
3
3
  import '../chunk-CENOOTAV.js';
4
+ import '../chunk-KYIAFNU7.js';
4
5
  import '../chunk-3BYIWOTV.js';
5
6
  import '../chunk-I6POAB4V.js';
6
- import '../chunk-KYIAFNU7.js';
7
7
  import '../chunk-66X5WDKE.js';
8
8
  import '../chunk-LFSIKGRQ.js';
9
9
  import '../chunk-Z7JYG5TF.js';
10
10
  import '../chunk-KHJIEPZV.js';
11
11
  import '../chunk-AYKXMIOR.js';
12
- import '../chunk-5AQBPHZD.js';
13
- import '../chunk-PZKHBB7D.js';
14
12
  import '../chunk-WIATRXEJ.js';
15
13
  import '../chunk-I33UIUZD.js';
14
+ import '../chunk-5AQBPHZD.js';
15
+ import '../chunk-PZKHBB7D.js';
16
+ import '../chunk-RSAQOKH3.js';
16
17
  import '../chunk-PCI7ZJ6Z.js';
17
18
  import '../chunk-OMV5W53A.js';
18
19
  import '../chunk-H5XTJ7GJ.js';
19
20
  import '../chunk-OG6CL3EB.js';
20
21
  import '../chunk-LACA4JGC.js';
21
22
  import '../chunk-NUZHC6MM.js';
22
- import '../chunk-RSAQOKH3.js';
23
23
  import '../chunk-BZFWDIV6.js';
24
24
  import '../chunk-ODEQTPFM.js';
@@ -2,12 +2,12 @@ export { SlideFilmstrip } from '../chunk-MCOC3KQA.js';
2
2
  import '../chunk-RMEBFYL7.js';
3
3
  import '../chunk-XJ2QEBMM.js';
4
4
  import '../chunk-SMBKXWML.js';
5
+ import '../chunk-RSAQOKH3.js';
5
6
  import '../chunk-PCI7ZJ6Z.js';
6
7
  import '../chunk-OMV5W53A.js';
7
8
  import '../chunk-H5XTJ7GJ.js';
8
9
  import '../chunk-OG6CL3EB.js';
9
10
  import '../chunk-LACA4JGC.js';
10
11
  import '../chunk-NUZHC6MM.js';
11
- import '../chunk-RSAQOKH3.js';
12
12
  import '../chunk-BZFWDIV6.js';
13
13
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
- export { Switcher } from '../chunk-524GGA67.js';
1
+ export { Switcher } from '../chunk-NF6SWHQI.js';
2
2
  import '../chunk-FYINAYAJ.js';
3
3
  import '../chunk-7KHM2FZH.js';
4
4
  import '../chunk-KHJIEPZV.js';
@@ -6,12 +6,12 @@ import '../chunk-FYTIJM2T.js';
6
6
  import '../chunk-TEUQWOWZ.js';
7
7
  import '../chunk-ZI5G5RS7.js';
8
8
  import '../chunk-PQADV6P6.js';
9
+ import '../chunk-RSAQOKH3.js';
9
10
  import '../chunk-RTPQDNW3.js';
10
11
  import '../chunk-OMV5W53A.js';
11
12
  import '../chunk-H5XTJ7GJ.js';
12
13
  import '../chunk-OG6CL3EB.js';
13
14
  import '../chunk-LACA4JGC.js';
14
15
  import '../chunk-NUZHC6MM.js';
15
- import '../chunk-RSAQOKH3.js';
16
16
  import '../chunk-BZFWDIV6.js';
17
17
  import '../chunk-ODEQTPFM.js';
@@ -1,10 +1,10 @@
1
1
  export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from '../chunk-4BJK7FE5.js';
2
2
  import '../chunk-FBSEJO2C.js';
3
3
  import '../chunk-KYIAFNU7.js';
4
+ import '../chunk-WIATRXEJ.js';
4
5
  import '../chunk-3CZ7XAVY.js';
5
6
  import '../chunk-EUCC37WY.js';
6
7
  import '../chunk-5AQBPHZD.js';
7
8
  import '../chunk-PZKHBB7D.js';
8
- import '../chunk-WIATRXEJ.js';
9
9
  import '../chunk-BZFWDIV6.js';
10
10
  import '../chunk-ODEQTPFM.js';
@@ -1,11 +1,11 @@
1
- export { TagsInput } from '../chunk-IVAR7NRW.js';
1
+ export { TagsInput } from '../chunk-SXBJMBSV.js';
2
2
  import '../chunk-KYIAFNU7.js';
3
3
  import '../chunk-7KHM2FZH.js';
4
4
  import '../chunk-WIATRXEJ.js';
5
+ import '../chunk-RSAQOKH3.js';
5
6
  import '../chunk-OMV5W53A.js';
6
7
  import '../chunk-H5XTJ7GJ.js';
7
8
  import '../chunk-LACA4JGC.js';
8
9
  import '../chunk-NUZHC6MM.js';
9
- import '../chunk-RSAQOKH3.js';
10
10
  import '../chunk-BZFWDIV6.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -1,6 +1,6 @@
1
1
  import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
- import './DirectoryList-EESYMH2U.css';
3
+ import './DirectoryList-7OXXN47X.css';
4
4
  import { useId } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
- import './CatalogTile-XL4XLFUH.css';
3
+ import './CatalogTile-VPSLCKJE.css';
4
4
  import { useId } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
@@ -14,6 +14,7 @@ function CatalogTile({
14
14
  meta,
15
15
  action,
16
16
  quiet = false,
17
+ density = "comfortable",
17
18
  className,
18
19
  ...rest
19
20
  }) {
@@ -21,6 +22,40 @@ function CatalogTile({
21
22
  const Heading = headingTag(headingLevel ?? level);
22
23
  const titleId = useId();
23
24
  const foot = meta !== void 0 || action !== void 0;
25
+ if (density === "compact") {
26
+ return /* @__PURE__ */ jsxs(
27
+ Element,
28
+ {
29
+ "aria-labelledby": Element === "article" ? titleId : void 0,
30
+ ...rest,
31
+ className: cx(
32
+ "crewlet-catalog-tile",
33
+ "crewlet-catalog-tile--compact",
34
+ quiet && "crewlet-catalog-tile--quiet",
35
+ className
36
+ ),
37
+ children: [
38
+ /* @__PURE__ */ jsxs("div", { className: "crewlet-catalog-tile__head", children: [
39
+ /* @__PURE__ */ jsx("span", { className: "crewlet-catalog-tile__mark", "aria-hidden": "true", children: mark }),
40
+ /* @__PURE__ */ jsxs("span", { className: "crewlet-catalog-tile__title", children: [
41
+ /* @__PURE__ */ jsx(Heading, { id: titleId, className: "crewlet-catalog-tile__name", children: title }),
42
+ status === void 0 || status === null ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-catalog-tile__status", children: status }),
43
+ meta === void 0 || meta === null ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-catalog-tile__meta", children: meta })
44
+ ] }),
45
+ action === void 0 ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-catalog-tile__action", children: action })
46
+ ] }),
47
+ description === void 0 ? null : /* @__PURE__ */ jsx(
48
+ "p",
49
+ {
50
+ className: "crewlet-catalog-tile__description",
51
+ title: typeof description === "string" ? description : void 0,
52
+ children: description
53
+ }
54
+ )
55
+ ]
56
+ }
57
+ );
58
+ }
24
59
  return /* @__PURE__ */ jsxs(
25
60
  Element,
26
61
  {
@@ -1,6 +1,6 @@
1
1
  import { useHeadingLevel, headingTag, HeadingLevelProvider, nextHeadingLevel } from './chunk-PQADV6P6.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
- import './Section-O5AHGSOG.css';
3
+ import './Section-M7SG6NP2.css';
4
4
  import { useId } from 'react';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
@@ -1,5 +1,5 @@
1
1
  import { Timeline } from './chunk-AUQPBL4O.js';
2
- import { Section } from './chunk-3TFDQLW3.js';
2
+ import { Section } from './chunk-JQ7IFSF6.js';
3
3
  import { Disclosure } from './chunk-OGXHZHRX.js';
4
4
  import { Composer } from './chunk-7CXGSS7D.js';
5
5
  import { ArtifactPanel } from './chunk-NBDN5JZV.js';
@@ -1,7 +1,7 @@
1
1
  import { HuePicker } from './chunk-QOP7QYUW.js';
2
2
  import { Popover } from './chunk-KHJIEPZV.js';
3
3
  import { NODE_HUE_NAMES } from './chunk-AYKXMIOR.js';
4
- import { CharacterPicker } from './chunk-VZICPYGR.js';
4
+ import { CharacterPicker } from './chunk-SNQRGH4A.js';
5
5
  import { Avatar } from './chunk-PZKHBB7D.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
7
  import './AvatarPicker-PREY36MG.css';
@@ -9,7 +9,7 @@ import { jsx } from 'react/jsx-runtime';
9
9
  var engine = null;
10
10
  var loading = null;
11
11
  function loadEngine() {
12
- loading ??= import('./Editor-AMO2B54T.js').then(
12
+ loading ??= import('./Editor-FXO2JVWK.js').then(
13
13
  (module) => {
14
14
  engine = module.Editor;
15
15
  return engine;