@crewlethq/ui 0.41.1 → 0.43.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 (136) hide show
  1. package/README.md +22 -2
  2. package/dist/AgentHandoffPanel/index.js +5 -5
  3. package/dist/AppShell/index.js +3 -3
  4. package/dist/{AppShell-3R4ZU4ND.css → AppShell-TSACKAU7.css} +28 -10
  5. package/dist/ArrangeFrame/index.js +2 -2
  6. package/dist/ArrangeList/index.js +5 -5
  7. package/dist/ArtifactBar/index.js +5 -5
  8. package/dist/ArtifactPanel/index.js +2 -2
  9. package/dist/AvatarPicker/index.js +8 -8
  10. package/dist/Canvas/index.js +2 -2
  11. package/dist/CanvasBoard/index.js +4 -4
  12. package/dist/CanvasToolbar/index.js +3 -3
  13. package/dist/CharacterPicker/index.js +2 -2
  14. package/dist/Checkbox/index.js +3 -3
  15. package/dist/CodeBlock/index.js +3 -3
  16. package/dist/Combobox/index.js +3 -3
  17. package/dist/CommandPalette/index.js +4 -4
  18. package/dist/CommentThread/index.js +4 -4
  19. package/dist/Composer/index.js +3 -3
  20. package/dist/ConfirmField/index.js +3 -3
  21. package/dist/Copyable/index.js +2 -2
  22. package/dist/DataTable/index.js +6 -6
  23. package/dist/DataView/index.js +9 -9
  24. package/dist/DatasetSource/index.js +1 -1
  25. package/dist/DateTimePicker/index.js +3 -3
  26. package/dist/DirectoryList/DirectoryList.d.ts +55 -0
  27. package/dist/DirectoryList/index.d.ts +3 -0
  28. package/dist/DirectoryList/index.js +3 -0
  29. package/dist/DirectoryList-EESYMH2U.css +126 -0
  30. package/dist/DocTabsEditor/index.js +5 -5
  31. package/dist/{Editor-IRDQ3JDZ.js → Editor-AMO2B54T.js} +4 -4
  32. package/dist/HuePicker/index.js +5 -5
  33. package/dist/IconButton/IconButton.d.ts +25 -1
  34. package/dist/IconButton/index.d.ts +2 -2
  35. package/dist/IconButton/index.js +1 -1
  36. package/dist/{IconButton-VYWP6SGW.css → IconButton-K24JQHLF.css} +21 -0
  37. package/dist/Input/index.js +2 -2
  38. package/dist/LinkInterstitial/index.js +3 -3
  39. package/dist/ListDetail/ListDetail.d.ts +27 -0
  40. package/dist/ListDetail/index.d.ts +3 -0
  41. package/dist/ListDetail/index.js +2 -0
  42. package/dist/ListDetail-ALKU5VJW.css +53 -0
  43. package/dist/ListInput/index.js +4 -4
  44. package/dist/MarkdownEditor/index.js +5 -5
  45. package/dist/Menu/index.js +2 -2
  46. package/dist/MergeConflicts/index.js +5 -5
  47. package/dist/Modal/index.js +2 -2
  48. package/dist/ObjectHeader/ObjectHeader.d.ts +7 -1
  49. package/dist/ObjectHeader/index.js +1 -1
  50. package/dist/{ObjectHeader-ZOS22FKX.css → ObjectHeader-DNQWRGUK.css} +50 -0
  51. package/dist/OrgTable/index.js +3 -3
  52. package/dist/PeopleRail/index.js +2 -2
  53. package/dist/PinTile/index.js +2 -2
  54. package/dist/PresenterView/index.js +3 -3
  55. package/dist/PrincipalPicker/index.js +4 -4
  56. package/dist/PropertyList/index.js +2 -2
  57. package/dist/RichEditor/index.js +1 -1
  58. package/dist/SegmentedControl/index.js +4 -4
  59. package/dist/ShareDialog/index.js +4 -4
  60. package/dist/SheetColumnEditor/index.js +8 -8
  61. package/dist/SheetGrid/index.js +7 -7
  62. package/dist/SlideFilmstrip/index.js +4 -4
  63. package/dist/SlideNav/index.js +2 -2
  64. package/dist/Switcher/index.js +6 -6
  65. package/dist/TableCells/index.js +1 -1
  66. package/dist/Tabs/index.js +3 -3
  67. package/dist/TagsInput/index.js +3 -3
  68. package/dist/ThemeSwitcher/index.js +5 -5
  69. package/dist/ThemeToggle/index.js +2 -2
  70. package/dist/TimeWindowPicker/index.js +4 -4
  71. package/dist/TreeCanvas/index.js +3 -3
  72. package/dist/TreeGrid/index.js +2 -2
  73. package/dist/VersionCompare/index.js +5 -5
  74. package/dist/{chunk-GPWJCP3U.js → chunk-3RCHEFIL.js} +1 -1
  75. package/dist/{chunk-5BUOMF6N.js → chunk-3YTNYF2E.js} +1 -1
  76. package/dist/{chunk-D2OL3ZSS.js → chunk-4DIKLY53.js} +1 -1
  77. package/dist/{chunk-UVBHK6IU.js → chunk-524GGA67.js} +4 -4
  78. package/dist/{chunk-NURXCBCW.js → chunk-5AHDGYKN.js} +3 -3
  79. package/dist/{chunk-C7OKDYBH.js → chunk-626CB5X6.js} +3 -3
  80. package/dist/{chunk-XGBUUQDU.js → chunk-6MAQ2SVP.js} +2 -2
  81. package/dist/{chunk-ISA2O2BK.js → chunk-7CXGSS7D.js} +1 -1
  82. package/dist/{chunk-W46LPU4R.js → chunk-7SHAFLEX.js} +1 -1
  83. package/dist/{chunk-B5UHX5UC.js → chunk-7WNJLNFD.js} +2 -2
  84. package/dist/{chunk-SEC2GR2V.js → chunk-A4GFEMVI.js} +1 -1
  85. package/dist/{chunk-MMPKN7WV.js → chunk-AGNZIT3Z.js} +2 -2
  86. package/dist/{chunk-4OK4DX3V.js → chunk-BF5WV7NM.js} +1 -1
  87. package/dist/{chunk-3TXY3PJZ.js → chunk-BO7Q6JP6.js} +2 -2
  88. package/dist/{chunk-KNHUBHFX.js → chunk-BVFMLSE3.js} +3 -3
  89. package/dist/{chunk-EX22Q5SH.js → chunk-DL5ERIFF.js} +3 -3
  90. package/dist/{chunk-UXYEOWG5.js → chunk-E6HXFFWO.js} +1 -1
  91. package/dist/{chunk-2PEXZ7L4.js → chunk-ENHLVF6Q.js} +1 -1
  92. package/dist/{chunk-AXS6MBNH.js → chunk-EY7LACIR.js} +1 -1
  93. package/dist/{chunk-PEUGPAKH.js → chunk-FG243QHY.js} +1 -1
  94. package/dist/{chunk-GFYQKMQZ.js → chunk-FV6H7H5I.js} +5 -5
  95. package/dist/{chunk-IAGYPTEJ.js → chunk-FYINAYAJ.js} +1 -1
  96. package/dist/{chunk-FXBGEANQ.js → chunk-GI3S6RMM.js} +4 -4
  97. package/dist/{chunk-ZMWXE4GT.js → chunk-GPIRKHGS.js} +2 -2
  98. package/dist/{chunk-ODOJJGXH.js → chunk-HFQBMEEH.js} +18 -2
  99. package/dist/{chunk-JSWOXRRE.js → chunk-IUQQGIHL.js} +1 -1
  100. package/dist/{chunk-BH52LIY6.js → chunk-IVAR7NRW.js} +2 -2
  101. package/dist/{chunk-PFZOFAQ6.js → chunk-JF3TJUBU.js} +1 -1
  102. package/dist/{chunk-T6MXORP5.js → chunk-JGCDFMXN.js} +1 -1
  103. package/dist/{chunk-X4IXXLWM.js → chunk-KA75QPFM.js} +1 -1
  104. package/dist/{chunk-4FQT6ZAY.js → chunk-LACA4JGC.js} +23 -2
  105. package/dist/{chunk-WMXAX6VA.js → chunk-LKBZV5IT.js} +1 -1
  106. package/dist/{chunk-KWWP3D7M.js → chunk-LSRQJDGR.js} +1 -1
  107. package/dist/{chunk-FBW3Q2OY.js → chunk-MCOC3KQA.js} +1 -1
  108. package/dist/{chunk-EAEJ7CDM.js → chunk-MVGCZ655.js} +1 -1
  109. package/dist/{chunk-Y5BD4MTE.js → chunk-NBDN5JZV.js} +1 -1
  110. package/dist/{chunk-H6CEFQTR.js → chunk-NCM73C34.js} +5 -5
  111. package/dist/{chunk-6MIXD6IW.js → chunk-OJCVVCAZ.js} +1 -1
  112. package/dist/{chunk-3KYVFG47.js → chunk-ON2E46DX.js} +1 -1
  113. package/dist/{chunk-3PR65I3H.js → chunk-OVHJTOKW.js} +4 -4
  114. package/dist/{chunk-D6FEHY5G.js → chunk-PCI7ZJ6Z.js} +1 -1
  115. package/dist/{chunk-A44YHLCQ.js → chunk-PLLYOPS4.js} +2 -2
  116. package/dist/{chunk-NP2C4Y4E.js → chunk-PM3JVNRY.js} +1 -1
  117. package/dist/{chunk-BA32AVKS.js → chunk-QOP7QYUW.js} +1 -1
  118. package/dist/chunk-R5RCGD7N.js +12 -0
  119. package/dist/{chunk-6VOS2GMB.js → chunk-RRO7UEYU.js} +1 -1
  120. package/dist/chunk-SJ6DMG4R.js +39 -0
  121. package/dist/{chunk-DAERKOOG.js → chunk-TVV7XSO5.js} +1 -1
  122. package/dist/{chunk-N3TFYBN3.js → chunk-UAGDFEBG.js} +1 -1
  123. package/dist/{chunk-RFFXB3PR.js → chunk-UFXLNC2N.js} +2 -2
  124. package/dist/{chunk-2VOHUGUA.js → chunk-UO5VJHWP.js} +3 -3
  125. package/dist/{chunk-SYBYFQTY.js → chunk-W53CWWX3.js} +3 -3
  126. package/dist/{chunk-HQAGGQWJ.js → chunk-X6IJ7DAX.js} +3 -3
  127. package/dist/{chunk-CFGGE3HO.js → chunk-XP7EXNKF.js} +2 -2
  128. package/dist/{chunk-WYYCPV46.js → chunk-Z5WMCBHR.js} +3 -3
  129. package/dist/{chunk-TYONQSOK.js → chunk-ZI5G5RS7.js} +1 -1
  130. package/dist/generated/index.d.ts +2 -0
  131. package/dist/generated/index.js +93 -91
  132. package/dist/index.js +93 -91
  133. package/dist/styles.css +287 -13
  134. package/package.json +3 -3
  135. package/dist/{chunk-S3QTFUJX.js → chunk-VXCT6L3F.js} +0 -0
  136. package/dist/{chunk-SNQRGH4A.js → chunk-VZICPYGR.js} +1 -1
@@ -0,0 +1,126 @@
1
+ /*
2
+ * DirectoryList: named groups of links, each line a mark, a label and a state,
3
+ * and one foot that holds the bottom (DirectoryList.tsx).
4
+ *
5
+ * NO FRAME OF ITS OWN. The list draws on the column it is placed in, its lines
6
+ * on the hover and selected grounds alone, so it never makes a box inside a
7
+ * box; the foot's hairline is the one rule it draws.
8
+ */
9
+
10
+ .crewlet-directory {
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: var(--spacing-2);
14
+ min-width: 0;
15
+ min-height: 0;
16
+ height: 100%;
17
+ font-family: var(--font-family-sans);
18
+ }
19
+
20
+ /* The groups take the room and scroll on their own, so the foot stays put. */
21
+ .crewlet-directory__groups {
22
+ display: flex;
23
+ flex: 1 1 auto;
24
+ flex-direction: column;
25
+ gap: var(--spacing-5);
26
+ min-height: 0;
27
+ overflow-y: auto;
28
+ }
29
+
30
+ .crewlet-directory__group {
31
+ display: flex;
32
+ flex-direction: column;
33
+ gap: var(--spacing-2);
34
+ min-width: 0;
35
+ }
36
+
37
+ .crewlet-directory__heading {
38
+ margin: 0;
39
+ padding: 0 var(--spacing-2);
40
+ font-size: var(--font-size-xs);
41
+ font-weight: var(--font-weight-semibold);
42
+ letter-spacing: 0.04em;
43
+ text-transform: uppercase;
44
+ color: var(--color-text-tertiary);
45
+ }
46
+
47
+ .crewlet-directory__items {
48
+ display: flex;
49
+ flex-direction: column;
50
+ gap: 2px;
51
+ margin: 0;
52
+ padding: 0;
53
+ list-style: none;
54
+ }
55
+
56
+ .crewlet-directory__item {
57
+ display: grid;
58
+ grid-template-columns: auto minmax(0, 1fr) auto;
59
+ align-items: center;
60
+ gap: var(--spacing-2);
61
+ min-height: var(--size-row-md);
62
+ padding: var(--spacing-1) var(--spacing-2);
63
+ border-radius: var(--radius-md);
64
+ color: var(--color-text-primary);
65
+ font-size: var(--font-size-sm);
66
+ text-decoration: none;
67
+ }
68
+
69
+ .crewlet-directory__item:hover {
70
+ background: var(--color-surface-hover);
71
+ }
72
+
73
+ .crewlet-directory__item--selected,
74
+ .crewlet-directory__item--selected:hover {
75
+ background: var(--color-surface-selected);
76
+ }
77
+
78
+ .crewlet-directory__item:focus-visible {
79
+ outline: 2px solid var(--color-focus);
80
+ outline-offset: 1px;
81
+ }
82
+
83
+ .crewlet-directory__mark {
84
+ display: inline-flex;
85
+ flex: none;
86
+ align-items: center;
87
+ justify-content: center;
88
+ width: var(--size-row-sm);
89
+ height: var(--size-row-sm);
90
+ }
91
+
92
+ .crewlet-directory__text {
93
+ display: flex;
94
+ flex-direction: column;
95
+ min-width: 0;
96
+ }
97
+
98
+ .crewlet-directory__label {
99
+ overflow: hidden;
100
+ font-weight: var(--font-weight-medium);
101
+ text-overflow: ellipsis;
102
+ white-space: nowrap;
103
+ }
104
+
105
+ .crewlet-directory__hint {
106
+ overflow: hidden;
107
+ font-size: var(--font-size-xs);
108
+ color: var(--color-text-tertiary);
109
+ text-overflow: ellipsis;
110
+ white-space: nowrap;
111
+ }
112
+
113
+ .crewlet-directory__status {
114
+ display: inline-flex;
115
+ flex: none;
116
+ font-size: var(--font-size-xs);
117
+ color: var(--color-text-secondary);
118
+ }
119
+
120
+ /* The foot: one small step under the groups, at the bottom of the column. */
121
+ .crewlet-directory__foot {
122
+ flex: none;
123
+ min-width: 0;
124
+ padding: var(--spacing-2) var(--spacing-2) 0;
125
+ border-top: 1px solid var(--color-border-default);
126
+ }
@@ -1,13 +1,13 @@
1
- export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-SYBYFQTY.js';
1
+ export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-W53CWWX3.js';
2
2
  import '../chunk-XJ2QEBMM.js';
3
- import '../chunk-TYONQSOK.js';
3
+ import '../chunk-ZI5G5RS7.js';
4
4
  import '../chunk-PQADV6P6.js';
5
- import '../chunk-RSAQOKH3.js';
6
- import '../chunk-D6FEHY5G.js';
5
+ import '../chunk-PCI7ZJ6Z.js';
7
6
  import '../chunk-OMV5W53A.js';
8
7
  import '../chunk-H5XTJ7GJ.js';
9
8
  import '../chunk-OG6CL3EB.js';
10
- import '../chunk-4FQT6ZAY.js';
9
+ import '../chunk-LACA4JGC.js';
11
10
  import '../chunk-NUZHC6MM.js';
11
+ import '../chunk-RSAQOKH3.js';
12
12
  import '../chunk-BZFWDIV6.js';
13
13
  import '../chunk-ODEQTPFM.js';
@@ -1,14 +1,14 @@
1
- import { richEditorLabels } from './chunk-CSQTDGTS.js';
2
1
  import { schema, readMarkdown, writeMarkdown } from './chunk-QH6VYJ3X.js';
2
+ import { richEditorLabels } from './chunk-CSQTDGTS.js';
3
3
  import { safeHref, MARKDOWN_CALLOUT_TONES } from './chunk-BAKPMH3S.js';
4
4
  import { Toolbar } from './chunk-NR4CPM4T.js';
5
- import { FormField, Input } from './chunk-TYONQSOK.js';
5
+ import { FormField, Input } from './chunk-ZI5G5RS7.js';
6
6
  import './chunk-PQADV6P6.js';
7
- import { Menu } from './chunk-D6FEHY5G.js';
7
+ import { Menu } from './chunk-PCI7ZJ6Z.js';
8
8
  import { placePopup, viewportBounds } from './chunk-OMV5W53A.js';
9
9
  import { usePopupLayer } from './chunk-H5XTJ7GJ.js';
10
10
  import { Button } from './chunk-OG6CL3EB.js';
11
- import { IconButton } from './chunk-4FQT6ZAY.js';
11
+ import { IconButton } from './chunk-LACA4JGC.js';
12
12
  import './chunk-NUZHC6MM.js';
13
13
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
14
14
  import { cx } from './chunk-ODEQTPFM.js';
@@ -1,17 +1,17 @@
1
1
  import '../chunk-FFMCMSJB.js';
2
- export { HuePicker, HueSwatch } from '../chunk-BA32AVKS.js';
2
+ export { HuePicker, HueSwatch } from '../chunk-QOP7QYUW.js';
3
3
  import '../chunk-AYKXMIOR.js';
4
- import '../chunk-4OK4DX3V.js';
5
- import '../chunk-X4IXXLWM.js';
4
+ import '../chunk-BF5WV7NM.js';
5
+ import '../chunk-KA75QPFM.js';
6
6
  import '../chunk-WIATRXEJ.js';
7
7
  import '../chunk-EGMQURBR.js';
8
8
  import '../chunk-BHHIIK3M.js';
9
- import '../chunk-D6FEHY5G.js';
9
+ import '../chunk-PCI7ZJ6Z.js';
10
10
  import '../chunk-OMV5W53A.js';
11
11
  import '../chunk-H5XTJ7GJ.js';
12
12
  import '../chunk-2YTOOH3A.js';
13
13
  import '../chunk-OG6CL3EB.js';
14
- import '../chunk-4FQT6ZAY.js';
14
+ import '../chunk-LACA4JGC.js';
15
15
  import '../chunk-NUZHC6MM.js';
16
16
  import '../chunk-BZFWDIV6.js';
17
17
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
- import { type ButtonHTMLAttributes, type ReactNode } from 'react';
1
+ import { type AnchorHTMLAttributes, type ButtonHTMLAttributes, type ReactNode } from 'react';
2
2
  export type IconButtonSize = 'sm' | 'md' | 'lg';
3
3
  export type IconButtonVariant =
4
4
  /** The bordered square: a secondary Button with no room for a label. */
@@ -43,3 +43,27 @@ export interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonEle
43
43
  * a word beside the glyph is a Button.
44
44
  */
45
45
  export declare const IconButton: import("react").ForwardRefExoticComponent<IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
46
+ export interface IconButtonLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'aria-label' | 'aria-current'> {
47
+ /** Where it goes, in words: the link's name and its title. REQUIRED, for IconButton's reason. */
48
+ label: string;
49
+ href: string;
50
+ /** The glyph. A component from @crewlethq/icons/glyphs, not a name. */
51
+ icon: ReactNode;
52
+ size?: IconButtonSize | undefined;
53
+ variant?: IconButtonVariant | undefined;
54
+ /**
55
+ * The reader is on the page it leads to: `aria-current="page"` and the
56
+ * selected treatment a nav row draws, the lifted ground inside a hairline.
57
+ */
58
+ current?: boolean | undefined;
59
+ }
60
+ /**
61
+ * An icon-only LINK, drawn as an IconButton: a place reached by its glyph, such
62
+ * as Settings beside the reader's own row in a rail's foot.
63
+ *
64
+ * A REAL LINK rather than a button that navigates, so a modified press opens a
65
+ * tab and the address can be copied, and it says when the reader is already
66
+ * there, as a nav row does. A router's link is the `asChild` form of
67
+ * IconButton; this is the plain anchor.
68
+ */
69
+ export declare const IconButtonLink: import("react").ForwardRefExoticComponent<IconButtonLinkProps & import("react").RefAttributes<HTMLAnchorElement>>;
@@ -1,3 +1,3 @@
1
1
  import './IconButton.css';
2
- export { IconButton } from './IconButton.js';
3
- export type { IconButtonProps, IconButtonSize, IconButtonVariant } from './IconButton.js';
2
+ export { IconButton, IconButtonLink } from './IconButton.js';
3
+ export type { IconButtonLinkProps, IconButtonProps, IconButtonSize, IconButtonVariant } from './IconButton.js';
@@ -1,3 +1,3 @@
1
- export { IconButton } from '../chunk-4FQT6ZAY.js';
1
+ export { IconButton, IconButtonLink } from '../chunk-LACA4JGC.js';
2
2
  import '../chunk-BZFWDIV6.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -116,6 +116,27 @@
116
116
  background: var(--color-surface-pressed);
117
117
  }
118
118
 
119
+ /*
120
+ * THE PLACE THE READER IS ON (`IconButtonLink current`): the selected
121
+ * treatment a nav row draws, the lifted ground inside the default hairline,
122
+ * drawn on the square's own transparent boundary so nothing moves. With an
123
+ * edge to draw, its ring covers the edge, as the bordered squares' does.
124
+ */
125
+ a.crewlet-icon-btn {
126
+ text-decoration: none;
127
+ }
128
+
129
+ .crewlet-icon-btn--current,
130
+ .crewlet-icon-btn--current:hover {
131
+ background: var(--color-surface-elevated);
132
+ border-color: var(--color-border-default);
133
+ color: var(--color-text-primary);
134
+ }
135
+
136
+ .crewlet-icon-btn--current:focus-visible {
137
+ outline-offset: var(--size-focus-ring-inset-offset);
138
+ }
139
+
119
140
  /* ghost: transparent, neutral ink, a mild tint on hover. */
120
141
  .crewlet-icon-btn--ghost {
121
142
  color: var(--color-text-secondary);
@@ -1,6 +1,6 @@
1
- export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-TYONQSOK.js';
1
+ export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-ZI5G5RS7.js';
2
2
  import '../chunk-PQADV6P6.js';
3
- import '../chunk-4FQT6ZAY.js';
3
+ import '../chunk-LACA4JGC.js';
4
4
  import '../chunk-NUZHC6MM.js';
5
5
  import '../chunk-BZFWDIV6.js';
6
6
  import '../chunk-ODEQTPFM.js';
@@ -1,12 +1,12 @@
1
- export { LinkInterstitial, openExternal } from '../chunk-N3TFYBN3.js';
2
- import '../chunk-IAGYPTEJ.js';
1
+ export { LinkInterstitial, openExternal } from '../chunk-UAGDFEBG.js';
2
+ import '../chunk-FYINAYAJ.js';
3
3
  import '../chunk-5CLW2CXT.js';
4
4
  import '../chunk-SZZRIHGT.js';
5
5
  import '../chunk-PQADV6P6.js';
6
6
  import '../chunk-OMV5W53A.js';
7
7
  import '../chunk-H5XTJ7GJ.js';
8
8
  import '../chunk-OG6CL3EB.js';
9
- import '../chunk-4FQT6ZAY.js';
9
+ import '../chunk-LACA4JGC.js';
10
10
  import '../chunk-NUZHC6MM.js';
11
11
  import '../chunk-BZFWDIV6.js';
12
12
  import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,27 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export type ListDetailPane = 'list' | 'detail';
3
+ export interface ListDetailProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
4
+ /** The list column: a `DirectoryList`, an inbox. */
5
+ list: ReactNode;
6
+ /** The chosen item's detail. */
7
+ children: ReactNode;
8
+ /**
9
+ * Which pane a phone shows, where the two are one column: the list until
10
+ * something is chosen, then the detail. Wider, both are always shown.
11
+ */
12
+ showing?: ListDetailPane | undefined;
13
+ }
14
+ /**
15
+ * A list beside the detail of what is chosen in it, each scrolling on its own.
16
+ *
17
+ * IT FILLS THE HEIGHT IT IS GIVEN, so place it in a box of the window's
18
+ * height (an application shell's `fill`): the list column holds its place
19
+ * while the detail scrolls, and a list that grows scrolls inside its own
20
+ * column. The list column is `--crewlet-list-detail-list` wide (17rem by
21
+ * default), with a hairline between the two.
22
+ *
23
+ * BELOW 640px IT IS ONE PANE, the one `showing` names, as tall as its content
24
+ * on a page that scrolls as any other: a phone has no room for two columns,
25
+ * and the application gives its detail a way back to the list.
26
+ */
27
+ export declare function ListDetail({ list, children, showing, className, ...rest }: ListDetailProps): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './ListDetail.css';
2
+ export { ListDetail } from './ListDetail.js';
3
+ export type { ListDetailPane, ListDetailProps } from './ListDetail.js';
@@ -0,0 +1,2 @@
1
+ export { ListDetail } from '../chunk-R5RCGD7N.js';
2
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,53 @@
1
+ /*
2
+ * ListDetail: a list beside the detail of what is chosen in it, each scrolling
3
+ * on its own in the height it is given, one pane on a phone (ListDetail.tsx).
4
+ */
5
+
6
+ .crewlet-list-detail {
7
+ display: grid;
8
+ flex: 1 1 auto;
9
+ grid-template-columns: var(--crewlet-list-detail-list, 17rem) minmax(0, 1fr);
10
+ gap: var(--spacing-8);
11
+ height: 100%;
12
+ min-width: 0;
13
+ min-height: 0;
14
+ }
15
+
16
+ .crewlet-list-detail__list {
17
+ display: flex;
18
+ flex-direction: column;
19
+ min-width: 0;
20
+ min-height: 0;
21
+ padding-right: var(--spacing-6);
22
+ border-right: 1px solid var(--color-border-default);
23
+ }
24
+
25
+ .crewlet-list-detail__detail {
26
+ display: flex;
27
+ flex-direction: column;
28
+ gap: var(--spacing-5);
29
+ min-width: 0;
30
+ min-height: 0;
31
+ overflow-y: auto;
32
+ }
33
+
34
+ @media (width < 640px) {
35
+ .crewlet-list-detail {
36
+ grid-template-columns: minmax(0, 1fr);
37
+ height: auto;
38
+ }
39
+
40
+ .crewlet-list-detail__list {
41
+ padding-right: 0;
42
+ border-right: 0;
43
+ }
44
+
45
+ .crewlet-list-detail__detail {
46
+ overflow: visible;
47
+ }
48
+
49
+ .crewlet-list-detail--showing-list .crewlet-list-detail__detail,
50
+ .crewlet-list-detail--showing-detail .crewlet-list-detail__list {
51
+ display: none;
52
+ }
53
+ }
@@ -1,11 +1,11 @@
1
- export { ListInput } from '../chunk-WYYCPV46.js';
2
- import '../chunk-TYONQSOK.js';
1
+ export { ListInput } from '../chunk-Z5WMCBHR.js';
2
+ import '../chunk-ZI5G5RS7.js';
3
3
  import '../chunk-SMBKXWML.js';
4
4
  import '../chunk-PQADV6P6.js';
5
- import '../chunk-RSAQOKH3.js';
6
5
  import '../chunk-OMV5W53A.js';
7
6
  import '../chunk-H5XTJ7GJ.js';
8
- import '../chunk-4FQT6ZAY.js';
7
+ import '../chunk-LACA4JGC.js';
9
8
  import '../chunk-NUZHC6MM.js';
9
+ import '../chunk-RSAQOKH3.js';
10
10
  import '../chunk-BZFWDIV6.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -1,17 +1,17 @@
1
- export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-EX22Q5SH.js';
1
+ export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-DL5ERIFF.js';
2
2
  import '../chunk-NR4CPM4T.js';
3
3
  import '../chunk-OOC7Q67K.js';
4
- import '../chunk-4OK4DX3V.js';
5
- import '../chunk-X4IXXLWM.js';
4
+ import '../chunk-BF5WV7NM.js';
5
+ import '../chunk-KA75QPFM.js';
6
6
  import '../chunk-WIATRXEJ.js';
7
7
  import '../chunk-EGMQURBR.js';
8
8
  import '../chunk-BHHIIK3M.js';
9
- import '../chunk-D6FEHY5G.js';
9
+ import '../chunk-PCI7ZJ6Z.js';
10
10
  import '../chunk-OMV5W53A.js';
11
11
  import '../chunk-H5XTJ7GJ.js';
12
12
  import '../chunk-2YTOOH3A.js';
13
13
  import '../chunk-OG6CL3EB.js';
14
- import '../chunk-4FQT6ZAY.js';
14
+ import '../chunk-LACA4JGC.js';
15
15
  import '../chunk-NUZHC6MM.js';
16
16
  import '../chunk-BZFWDIV6.js';
17
17
  import '../chunk-ODEQTPFM.js';
@@ -1,8 +1,8 @@
1
- export { Menu } from '../chunk-D6FEHY5G.js';
1
+ export { Menu } from '../chunk-PCI7ZJ6Z.js';
2
2
  import '../chunk-OMV5W53A.js';
3
3
  import '../chunk-H5XTJ7GJ.js';
4
4
  import '../chunk-OG6CL3EB.js';
5
- import '../chunk-4FQT6ZAY.js';
5
+ import '../chunk-LACA4JGC.js';
6
6
  import '../chunk-NUZHC6MM.js';
7
7
  import '../chunk-BZFWDIV6.js';
8
8
  import '../chunk-ODEQTPFM.js';
@@ -1,16 +1,16 @@
1
- export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-2PEXZ7L4.js';
1
+ export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-ENHLVF6Q.js';
2
2
  import '../chunk-OOC7Q67K.js';
3
- import '../chunk-4OK4DX3V.js';
4
- import '../chunk-X4IXXLWM.js';
3
+ import '../chunk-BF5WV7NM.js';
4
+ import '../chunk-KA75QPFM.js';
5
5
  import '../chunk-WIATRXEJ.js';
6
6
  import '../chunk-EGMQURBR.js';
7
7
  import '../chunk-BHHIIK3M.js';
8
- import '../chunk-D6FEHY5G.js';
8
+ import '../chunk-PCI7ZJ6Z.js';
9
9
  import '../chunk-OMV5W53A.js';
10
10
  import '../chunk-H5XTJ7GJ.js';
11
11
  import '../chunk-2YTOOH3A.js';
12
12
  import '../chunk-OG6CL3EB.js';
13
- import '../chunk-4FQT6ZAY.js';
13
+ import '../chunk-LACA4JGC.js';
14
14
  import '../chunk-NUZHC6MM.js';
15
15
  import '../chunk-BZFWDIV6.js';
16
16
  import '../chunk-ODEQTPFM.js';
@@ -1,9 +1,9 @@
1
- export { ConfirmModal, Modal } from '../chunk-IAGYPTEJ.js';
1
+ export { ConfirmModal, Modal } from '../chunk-FYINAYAJ.js';
2
2
  import '../chunk-PQADV6P6.js';
3
3
  import '../chunk-OMV5W53A.js';
4
4
  import '../chunk-H5XTJ7GJ.js';
5
5
  import '../chunk-OG6CL3EB.js';
6
- import '../chunk-4FQT6ZAY.js';
6
+ import '../chunk-LACA4JGC.js';
7
7
  import '../chunk-NUZHC6MM.js';
8
8
  import '../chunk-BZFWDIV6.js';
9
9
  import '../chunk-ODEQTPFM.js';
@@ -96,6 +96,12 @@ export interface ObjectHeaderProps {
96
96
  kind: ReactNode;
97
97
  /** A glyph beside the kind. A component, not a name. */
98
98
  icon?: ReactNode;
99
+ /**
100
+ * The object's own mark, drawn large on a plate beside everything else: a
101
+ * vendor's or a product's mark on an integration's page. Decorative, since
102
+ * the title names the object; a header without one keeps its one column.
103
+ */
104
+ mark?: ReactNode;
99
105
  /** The key, handle or id, in the mono face. */
100
106
  identifier?: ReactNode;
101
107
  /**
@@ -141,4 +147,4 @@ export interface ObjectHeaderProps {
141
147
  * the actions wrap onto a line of their own instead of each giving up a few
142
148
  * characters.
143
149
  */
144
- export declare function ObjectHeader({ kind, icon, identifier, within, title, status, facts, description, actions, size, className, }: ObjectHeaderProps): import("react").JSX.Element;
150
+ export declare function ObjectHeader({ kind, icon, mark, identifier, within, title, status, facts, description, actions, size, className, }: ObjectHeaderProps): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- export { FactLine, ObjectHeader, SetByLine } from '../chunk-ODOJJGXH.js';
1
+ export { FactLine, ObjectHeader, SetByLine } from '../chunk-HFQBMEEH.js';
2
2
  import '../chunk-FBSEJO2C.js';
3
3
  import '../chunk-BZFWDIV6.js';
4
4
  import '../chunk-ODEQTPFM.js';
@@ -18,6 +18,56 @@
18
18
  padding: var(--spacing-3) 0 var(--spacing-2);
19
19
  }
20
20
 
21
+ /*
22
+ * A MARKED HEADER: the object's own mark on a plate, the catalogue tile's well
23
+ * at one and a half rows, beside the column the rest of the header keeps. The
24
+ * plate is the one box in the header, so the mark reads as the object's face
25
+ * rather than as one more glyph in the eyebrow.
26
+ */
27
+ .crewlet-object-header--marked {
28
+ flex-direction: row;
29
+ align-items: flex-start;
30
+ gap: var(--spacing-4);
31
+ }
32
+
33
+ .crewlet-object-header__mark {
34
+ display: inline-flex;
35
+ flex: none;
36
+ align-items: center;
37
+ justify-content: center;
38
+ width: calc(var(--size-row-lg) * 1.5);
39
+ height: calc(var(--size-row-lg) * 1.5);
40
+ border-radius: var(--radius-lg);
41
+ background: var(--color-surface-elevated);
42
+ border: 1px solid var(--color-border-default);
43
+ }
44
+
45
+ .crewlet-object-header--peek .crewlet-object-header__mark {
46
+ width: var(--size-row-lg);
47
+ height: var(--size-row-lg);
48
+ border-radius: var(--radius-md);
49
+ }
50
+
51
+ .crewlet-object-header__body {
52
+ display: flex;
53
+ flex: 1 1 auto;
54
+ flex-direction: column;
55
+ gap: var(--spacing-1);
56
+ min-width: 0;
57
+ }
58
+
59
+ @media (width < 640px) {
60
+ .crewlet-object-header--marked {
61
+ gap: var(--spacing-3);
62
+ }
63
+
64
+ .crewlet-object-header--marked .crewlet-object-header__mark {
65
+ width: var(--size-row-lg);
66
+ height: var(--size-row-lg);
67
+ border-radius: var(--radius-md);
68
+ }
69
+ }
70
+
21
71
  .crewlet-object-header__eyebrow {
22
72
  display: flex;
23
73
  align-items: center;
@@ -1,5 +1,5 @@
1
- export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-CFGGE3HO.js';
2
- import '../chunk-3KYVFG47.js';
1
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-XP7EXNKF.js';
2
+ import '../chunk-ON2E46DX.js';
3
3
  import '../chunk-MY374UUD.js';
4
4
  import '../chunk-ONQKKHON.js';
5
5
  import '../chunk-LM3ISVJA.js';
@@ -8,7 +8,7 @@ import '../chunk-PZKHBB7D.js';
8
8
  import '../chunk-TROLVEZY.js';
9
9
  import '../chunk-OMV5W53A.js';
10
10
  import '../chunk-H5XTJ7GJ.js';
11
- import '../chunk-4FQT6ZAY.js';
11
+ import '../chunk-LACA4JGC.js';
12
12
  import '../chunk-NUZHC6MM.js';
13
13
  import '../chunk-BZFWDIV6.js';
14
14
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
- export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from '../chunk-GPWJCP3U.js';
1
+ export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from '../chunk-3RCHEFIL.js';
2
2
  import '../chunk-CENOOTAV.js';
3
3
  import '../chunk-Z7JYG5TF.js';
4
4
  import '../chunk-AYKXMIOR.js';
@@ -6,6 +6,6 @@ import '../chunk-5AQBPHZD.js';
6
6
  import '../chunk-PZKHBB7D.js';
7
7
  import '../chunk-PQADV6P6.js';
8
8
  import '../chunk-OG6CL3EB.js';
9
- import '../chunk-4FQT6ZAY.js';
9
+ import '../chunk-LACA4JGC.js';
10
10
  import '../chunk-BZFWDIV6.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
- export { PinTile } from '../chunk-6MIXD6IW.js';
2
- import '../chunk-4FQT6ZAY.js';
1
+ export { PinTile } from '../chunk-OJCVVCAZ.js';
2
+ import '../chunk-LACA4JGC.js';
3
3
  import '../chunk-BZFWDIV6.js';
4
4
  import '../chunk-ODEQTPFM.js';
@@ -1,11 +1,11 @@
1
- export { PresenterView, formatStopwatch } from '../chunk-UXYEOWG5.js';
2
- import '../chunk-6VOS2GMB.js';
1
+ export { PresenterView, formatStopwatch } from '../chunk-E6HXFFWO.js';
2
+ import '../chunk-RRO7UEYU.js';
3
3
  import '../chunk-RMEBFYL7.js';
4
4
  import '../chunk-RK4XPHVG.js';
5
5
  import '../chunk-OMV5W53A.js';
6
6
  import '../chunk-H5XTJ7GJ.js';
7
7
  import '../chunk-OG6CL3EB.js';
8
- import '../chunk-4FQT6ZAY.js';
8
+ import '../chunk-LACA4JGC.js';
9
9
  import '../chunk-NUZHC6MM.js';
10
10
  import '../chunk-BZFWDIV6.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -1,14 +1,14 @@
1
- export { PrincipalPicker } from '../chunk-D2OL3ZSS.js';
2
- import '../chunk-EAEJ7CDM.js';
1
+ export { PrincipalPicker } from '../chunk-4DIKLY53.js';
2
+ import '../chunk-MVGCZ655.js';
3
3
  import '../chunk-7KHM2FZH.js';
4
4
  import '../chunk-CI3VPIJN.js';
5
5
  import '../chunk-5AQBPHZD.js';
6
6
  import '../chunk-PZKHBB7D.js';
7
- import '../chunk-TYONQSOK.js';
7
+ import '../chunk-ZI5G5RS7.js';
8
8
  import '../chunk-PQADV6P6.js';
9
9
  import '../chunk-H5XTJ7GJ.js';
10
10
  import '../chunk-2YTOOH3A.js';
11
- import '../chunk-4FQT6ZAY.js';
11
+ import '../chunk-LACA4JGC.js';
12
12
  import '../chunk-NUZHC6MM.js';
13
13
  import '../chunk-BZFWDIV6.js';
14
14
  import '../chunk-ODEQTPFM.js';
@@ -1,5 +1,5 @@
1
- export { PropertyList } from '../chunk-T6MXORP5.js';
2
- import '../chunk-ODOJJGXH.js';
1
+ export { PropertyList } from '../chunk-JGCDFMXN.js';
2
+ import '../chunk-HFQBMEEH.js';
3
3
  import '../chunk-FBSEJO2C.js';
4
4
  import '../chunk-MFS6F2P7.js';
5
5
  import '../chunk-EUCC37WY.js';
@@ -1,4 +1,4 @@
1
- export { RichEditor, preloadRichEditor } from '../chunk-PFZOFAQ6.js';
1
+ export { RichEditor, preloadRichEditor } from '../chunk-JF3TJUBU.js';
2
2
  export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
3
3
  import '../chunk-BAKPMH3S.js';
4
4
  import '../chunk-SZZRIHGT.js';