@crewlethq/ui 0.82.0 → 0.84.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 (185) hide show
  1. package/README.md +63 -1
  2. package/dist/ActionCard/ActionCard.d.ts +7 -7
  3. package/dist/ActionCard/index.js +1 -1
  4. package/dist/ActionCard-YZKL3CKR.css +130 -0
  5. package/dist/AppShell/AccountRow.d.ts +6 -1
  6. package/dist/AppShell/AppShell.d.ts +25 -13
  7. package/dist/AppShell/index.d.ts +1 -1
  8. package/dist/AppShell/index.js +8 -5
  9. package/dist/AppShell/railMotion.d.ts +60 -0
  10. package/dist/AppShell/railShape.d.ts +5 -0
  11. package/dist/{AppShell-F7RID4P4.css → AppShell-NX5HCD4O.css} +251 -90
  12. package/dist/ArrangeList/index.js +3 -2
  13. package/dist/ArtifactBar/index.js +7 -5
  14. package/dist/ArtifactCard/index.js +3 -3
  15. package/dist/ArtifactKindIllustration/index.js +1 -1
  16. package/dist/{ArtifactKinds-3EH4KR3F.css → ArtifactKinds-27TE3KJL.css} +7 -7
  17. package/dist/ArtifactMakeRow/index.js +1 -1
  18. package/dist/ArtifactNameCell/index.js +1 -1
  19. package/dist/AuthLayout/index.js +3 -3
  20. package/dist/AvatarPicker/index.js +7 -6
  21. package/dist/BrandLockup/index.js +2 -2
  22. package/dist/BriefCard/index.js +2 -1
  23. package/dist/Canvas/index.js +4 -2
  24. package/dist/CanvasBoard/index.js +6 -4
  25. package/dist/CanvasToolbar/index.js +5 -3
  26. package/dist/CatalogTile/CatalogTile.d.ts +23 -5
  27. package/dist/CatalogTile/index.d.ts +1 -1
  28. package/dist/CatalogTile/index.js +2 -1
  29. package/dist/{CatalogTile-6VF36JWA.css → CatalogTile-TMOSGSV3.css} +4 -3
  30. package/dist/ChangeMark/index.js +4 -2
  31. package/dist/ChatThread/index.js +2 -2
  32. package/dist/CommandPalette/index.js +3 -2
  33. package/dist/CompactNav/CompactNav.d.ts +10 -6
  34. package/dist/CompactNav/index.js +2 -1
  35. package/dist/ContrastHelp/index.js +3 -2
  36. package/dist/DataGrid/index.js +2 -2
  37. package/dist/DataTable/index.js +4 -3
  38. package/dist/DataView/index.js +8 -7
  39. package/dist/DateTimePicker/index.js +3 -2
  40. package/dist/DeepWorkCard/index.js +2 -2
  41. package/dist/DirectoryList/index.js +1 -1
  42. package/dist/{DirectoryList-XZOWYOA3.css → DirectoryList-IXQIMNFS.css} +8 -1
  43. package/dist/DocTabsEditor/index.js +5 -3
  44. package/dist/DockColumn/DockColumn.d.ts +68 -0
  45. package/dist/DockColumn/index.d.ts +3 -0
  46. package/dist/DockColumn/index.js +6 -0
  47. package/dist/DockColumn-SMJCXHS4.css +61 -0
  48. package/dist/{Editor-7EQWP3RN.js → Editor-VGNB35NJ.js} +2 -1
  49. package/dist/EmojiPicker/index.js +5 -3
  50. package/dist/FactList/index.js +4 -2
  51. package/dist/HuePicker/index.js +5 -4
  52. package/dist/InboxList/InboxList.d.ts +28 -2
  53. package/dist/InboxList/index.d.ts +1 -1
  54. package/dist/InboxList/index.js +6 -1
  55. package/dist/{InboxList-OFGSX5IH.css → InboxList-X5Q5WWAI.css} +63 -2
  56. package/dist/LinkInterstitial/index.js +3 -2
  57. package/dist/ListDetail/ListDetail.d.ts +6 -0
  58. package/dist/ListDetail/index.js +1 -1
  59. package/dist/{ListDetail-N3L7PB46.css → ListDetail-JGESKTR7.css} +38 -0
  60. package/dist/ListInput/index.js +3 -2
  61. package/dist/MarkdownEditor/index.js +5 -4
  62. package/dist/MediaMatch/index.d.ts +1 -1
  63. package/dist/MediaMatch/index.js +1 -1
  64. package/dist/MediaMatch/useMediaMatch.d.ts +14 -0
  65. package/dist/Menu/index.js +2 -1
  66. package/dist/MergeConflicts/index.js +5 -4
  67. package/dist/MessageActions/index.js +6 -4
  68. package/dist/Modal/index.js +2 -1
  69. package/dist/OpenInAppCard/index.js +2 -2
  70. package/dist/Outline/index.js +2 -1
  71. package/dist/Popover/index.js +2 -1
  72. package/dist/Presence/index.d.ts +2 -0
  73. package/dist/Presence/index.js +4 -0
  74. package/dist/Presence/usePresence.d.ts +109 -0
  75. package/dist/ReactionBar/index.js +6 -4
  76. package/dist/ReadingPane/ReadingPane.d.ts +17 -1
  77. package/dist/ReadingPane/index.d.ts +1 -1
  78. package/dist/ReadingPane/index.js +2 -1
  79. package/dist/{ReadingPane-VLYOWMCM.css → ReadingPane-VFTRDPC5.css} +19 -0
  80. package/dist/RecordChip/index.js +3 -2
  81. package/dist/Reorder/index.js +2 -1
  82. package/dist/RichEditor/index.js +1 -1
  83. package/dist/SectionFrame/index.js +2 -2
  84. package/dist/SegmentedControl/index.js +4 -3
  85. package/dist/SetupWizard/index.js +2 -2
  86. package/dist/ShareDialog/index.js +5 -4
  87. package/dist/SheetColumnEditor/index.js +6 -5
  88. package/dist/SheetGrid/index.js +8 -6
  89. package/dist/SidebarNav/SidebarNav.d.ts +18 -2
  90. package/dist/SidebarNav/index.d.ts +1 -1
  91. package/dist/SidebarNav/index.js +1 -1
  92. package/dist/{SidebarNav-E7PZGGA6.css → SidebarNav-IKBKGXW4.css} +20 -0
  93. package/dist/SlideFilmstrip/index.js +5 -3
  94. package/dist/Switcher/index.js +5 -4
  95. package/dist/Tabs/index.js +3 -2
  96. package/dist/ThemeSwitcher/index.js +5 -4
  97. package/dist/TimeRangePicker/index.js +6 -5
  98. package/dist/TimeWindowPicker/index.js +3 -2
  99. package/dist/Tooltip/index.js +3 -1
  100. package/dist/TreeCanvas/index.js +6 -3
  101. package/dist/VersionCompare/index.js +5 -4
  102. package/dist/{chunk-KJR5X4II.js → chunk-22CU7V4J.js} +2 -2
  103. package/dist/{chunk-4RYELYWG.js → chunk-2SVQBQAD.js} +2 -2
  104. package/dist/{chunk-N2T7Y5KR.js → chunk-3AMWXJQX.js} +1 -1
  105. package/dist/{chunk-HQFOZJQ4.js → chunk-46FIBJCV.js} +4 -4
  106. package/dist/{chunk-LQRN2XZK.js → chunk-4DEKONVJ.js} +2 -2
  107. package/dist/chunk-5JPOFAVN.js +58 -0
  108. package/dist/{chunk-C7UHDM7Y.js → chunk-5V6GW6HK.js} +1 -1
  109. package/dist/{chunk-Q7N2ATMC.js → chunk-64JNKLLP.js} +57 -9
  110. package/dist/chunk-6C7GQOBV.js +10 -0
  111. package/dist/{chunk-YRNNUCQP.js → chunk-7BDBO2NP.js} +1 -1
  112. package/dist/{chunk-XGLMPPDW.js → chunk-7K6LVM5I.js} +1 -1
  113. package/dist/{chunk-FKAJBN6G.js → chunk-7M7WKYOV.js} +3 -3
  114. package/dist/{chunk-A5YKNRG6.js → chunk-7QCSISHM.js} +2 -1
  115. package/dist/{chunk-3QQIGMY3.js → chunk-7ZSEUO5Q.js} +6 -30
  116. package/dist/{chunk-57BFL323.js → chunk-ABRWL5FJ.js} +1 -1
  117. package/dist/{chunk-HFOTRZFU.js → chunk-AQNP3KQU.js} +2 -2
  118. package/dist/{chunk-GZVAZ3LL.js → chunk-AZYE7NR4.js} +1 -1
  119. package/dist/{chunk-6IOQWMYJ.js → chunk-BN5FEJL5.js} +1 -1
  120. package/dist/{chunk-25JQNHTC.js → chunk-BRK3HXGZ.js} +8 -2
  121. package/dist/{chunk-MPVMB2DV.js → chunk-BVML4UVB.js} +3 -2
  122. package/dist/{chunk-OAHRMR4U.js → chunk-C42XW5YP.js} +1 -1
  123. package/dist/{chunk-2H6YDUR5.js → chunk-C4JTX25K.js} +3 -3
  124. package/dist/{chunk-QE4OIE3Q.js → chunk-DJIWCW5Z.js} +6 -4
  125. package/dist/{chunk-HA2PL7PA.js → chunk-DRFOTWJE.js} +1 -1
  126. package/dist/{chunk-SM4P2SHB.js → chunk-EC6EUIAD.js} +7 -4
  127. package/dist/{chunk-QPHD4UUG.js → chunk-F6ZUM66S.js} +160 -25
  128. package/dist/{chunk-AMUXSJ2A.js → chunk-FPU7AA3X.js} +4 -15
  129. package/dist/{chunk-KLAVEJIO.js → chunk-GLKQHN7G.js} +1 -1
  130. package/dist/{chunk-MVMVMHYI.js → chunk-HDEKHP65.js} +1 -1
  131. package/dist/{chunk-XY4O2XMR.js → chunk-HKUZ2GYX.js} +4 -4
  132. package/dist/chunk-HTS5RJ7S.js +6 -0
  133. package/dist/{chunk-ZB3E2Z4Y.js → chunk-J5T5TDM2.js} +1 -1
  134. package/dist/{chunk-ISQANI6Q.js → chunk-JLOESTT2.js} +2 -1
  135. package/dist/{chunk-C75WZMXG.js → chunk-K6RWEQ6P.js} +1 -1
  136. package/dist/{chunk-GVPUCEWH.js → chunk-KXWJJWBD.js} +1 -1
  137. package/dist/chunk-L72URIHR.js +36 -0
  138. package/dist/{chunk-2TOGGCDM.js → chunk-LT44RL62.js} +2 -2
  139. package/dist/{chunk-C46DDVTK.js → chunk-LTD7KLOU.js} +1 -1
  140. package/dist/{chunk-HCUECVZ3.js → chunk-MVKUE4FI.js} +1 -1
  141. package/dist/{chunk-6YBBQAEM.js → chunk-MYAARF4Z.js} +1 -1
  142. package/dist/{chunk-SEKO6P3Y.js → chunk-NCUSI4ZU.js} +1 -1
  143. package/dist/{chunk-YBC2CYPD.js → chunk-O4VTQMEF.js} +1 -1
  144. package/dist/{chunk-HTBTAIH6.js → chunk-OM2LABPS.js} +2 -2
  145. package/dist/{chunk-T4IEESXN.js → chunk-ORONAXSF.js} +91 -25
  146. package/dist/chunk-PCAT2EFB.js +104 -0
  147. package/dist/{chunk-GP5TNTZH.js → chunk-QWRAWKB2.js} +53 -14
  148. package/dist/{chunk-TGCGLKD4.js → chunk-RBQRTGXX.js} +1 -1
  149. package/dist/{chunk-B3X4DHRB.js → chunk-RDIQB5ZE.js} +2 -2
  150. package/dist/{chunk-SRDNGGZE.js → chunk-RKIJAXQA.js} +1 -1
  151. package/dist/{chunk-T7WESRZF.js → chunk-RO5JU6SN.js} +2 -2
  152. package/dist/{chunk-IUWP2LSE.js → chunk-SGMWLUYQ.js} +2 -2
  153. package/dist/{chunk-LSOR77RZ.js → chunk-SHH7UD5U.js} +1 -1
  154. package/dist/{chunk-JV6JM6W6.js → chunk-SNQ7PH3D.js} +1 -1
  155. package/dist/{chunk-MPYRC3GO.js → chunk-SPNTUQBV.js} +2 -2
  156. package/dist/{chunk-YM77TZ7Q.js → chunk-T3S3D4FC.js} +1 -1
  157. package/dist/{chunk-YOJAGKTS.js → chunk-TGGYSQRD.js} +3 -4
  158. package/dist/{chunk-2KJCUCVE.js → chunk-TQKQRS2J.js} +2 -2
  159. package/dist/{chunk-ONNXUS5Y.js → chunk-VB3FVKNI.js} +1 -1
  160. package/dist/{chunk-JHQGNFN3.js → chunk-VONEKR3J.js} +2 -2
  161. package/dist/{chunk-P6F3PE4V.js → chunk-WANKINXG.js} +2 -2
  162. package/dist/{chunk-PXLS6JKL.js → chunk-WMO722J2.js} +1 -1
  163. package/dist/{chunk-SYVQXMLO.js → chunk-XRWHDW6F.js} +4 -4
  164. package/dist/{chunk-WT3B76MG.js → chunk-XTJHMP3W.js} +1 -1
  165. package/dist/{chunk-CF4M6N6A.js → chunk-XYSSFI5C.js} +1 -7
  166. package/dist/{chunk-RTPQDNW3.js → chunk-YJQXESOJ.js} +5 -1
  167. package/dist/{chunk-VGOWSOUA.js → chunk-YXKSUILG.js} +1 -1
  168. package/dist/{chunk-G6ZFSUIH.js → chunk-ZJVLGYE3.js} +2 -2
  169. package/dist/{chunk-BSAU7QRW.js → chunk-ZPTKAYJK.js} +1 -1
  170. package/dist/{chunk-XXDB6KPV.js → chunk-ZXXZESCD.js} +3 -4
  171. package/dist/generated/index.d.ts +2 -0
  172. package/dist/generated/index.js +108 -103
  173. package/dist/index.js +108 -103
  174. package/dist/styles.css +525 -134
  175. package/dist/utils/composedRef.d.ts +39 -0
  176. package/dist/utils/developing.d.ts +10 -0
  177. package/dist/utils/index.d.ts +2 -0
  178. package/dist/utils/index.js +3 -1
  179. package/dist/utils/tokenMs.d.ts +6 -0
  180. package/package.json +5 -5
  181. package/dist/ActionCard-47WSZ2O5.css +0 -110
  182. package/dist/{chunk-IYI6HWKN.js → chunk-CV2LU2T2.js} +1 -1
  183. package/dist/{chunk-FVZPSTL2.js → chunk-G4EHZHKM.js} +1 -1
  184. /package/dist/{chunk-FEJANUZK.js → chunk-KBSD476L.js} +0 -0
  185. /package/dist/{chunk-KLWWNV25.js → chunk-REEZQCML.js} +0 -0
@@ -1,3 +1,3 @@
1
- export { BrandLockup } from '../chunk-GVPUCEWH.js';
2
- import '../chunk-ISQANI6Q.js';
1
+ export { BrandLockup } from '../chunk-KXWJJWBD.js';
2
+ import '../chunk-JLOESTT2.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -1,5 +1,6 @@
1
- export { BRIEF_CARD_LABELS, BRIEF_CARD_MAX_FOLLOW_UPS, BRIEF_CARD_MAX_NEEDS, BRIEF_CARD_MAX_POINTS, BriefCard } from '../chunk-CF4M6N6A.js';
1
+ export { BRIEF_CARD_LABELS, BRIEF_CARD_MAX_FOLLOW_UPS, BRIEF_CARD_MAX_NEEDS, BRIEF_CARD_MAX_POINTS, BriefCard } from '../chunk-XYSSFI5C.js';
2
2
  import '../chunk-Y7PVLEZJ.js';
3
+ import '../chunk-6C7GQOBV.js';
3
4
  import '../chunk-FLW5U7YS.js';
4
5
  import '../chunk-LBGKLYBY.js';
5
6
  import '../chunk-U2IQNDDR.js';
@@ -1,6 +1,8 @@
1
- export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-SEKO6P3Y.js';
1
+ export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-NCUSI4ZU.js';
2
2
  import '../chunk-LM3ISVJA.js';
3
- import '../chunk-3QQIGMY3.js';
3
+ import '../chunk-7ZSEUO5Q.js';
4
+ import '../chunk-HTS5RJ7S.js';
5
+ import '../chunk-L72URIHR.js';
4
6
  import '../chunk-CMAZZY2I.js';
5
7
  import '../chunk-DGXZ635L.js';
6
8
  import '../chunk-XSPCITPN.js';
@@ -1,10 +1,12 @@
1
- export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from '../chunk-4RYELYWG.js';
1
+ export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from '../chunk-2SVQBQAD.js';
2
2
  import '../chunk-5SZGKSGL.js';
3
- import '../chunk-HA2PL7PA.js';
3
+ import '../chunk-DRFOTWJE.js';
4
4
  import '../chunk-NXFTCPF6.js';
5
- import '../chunk-SEKO6P3Y.js';
5
+ import '../chunk-NCUSI4ZU.js';
6
6
  import '../chunk-LM3ISVJA.js';
7
- import '../chunk-3QQIGMY3.js';
7
+ import '../chunk-7ZSEUO5Q.js';
8
+ import '../chunk-HTS5RJ7S.js';
9
+ import '../chunk-L72URIHR.js';
8
10
  import '../chunk-CMAZZY2I.js';
9
11
  import '../chunk-DGXZ635L.js';
10
12
  import '../chunk-XSPCITPN.js';
@@ -1,8 +1,10 @@
1
- export { CanvasToolbar, toolForKey } from '../chunk-HA2PL7PA.js';
1
+ export { CanvasToolbar, toolForKey } from '../chunk-DRFOTWJE.js';
2
2
  import '../chunk-NXFTCPF6.js';
3
- import '../chunk-SEKO6P3Y.js';
3
+ import '../chunk-NCUSI4ZU.js';
4
4
  import '../chunk-LM3ISVJA.js';
5
- import '../chunk-3QQIGMY3.js';
5
+ import '../chunk-7ZSEUO5Q.js';
6
+ import '../chunk-HTS5RJ7S.js';
7
+ import '../chunk-L72URIHR.js';
6
8
  import '../chunk-CMAZZY2I.js';
7
9
  import '../chunk-DGXZ635L.js';
8
10
  import '../chunk-XSPCITPN.js';
@@ -1,5 +1,6 @@
1
1
  import { type HTMLAttributes, type ReactNode } from 'react';
2
2
  import { type HeadingLevel } from '../utils/headingLevel.js';
3
+ import type { Tone } from '../utils/tone.js';
3
4
  export type CatalogTileElement = 'article' | 'li' | 'div';
4
5
  /**
5
6
  * How much room a tile takes. `comfortable` (the default) is the catalogue's
@@ -10,6 +11,23 @@ export type CatalogTileElement = 'article' | 'li' | 'div';
10
11
  * already in use rather than offers a choice.
11
12
  */
12
13
  export type CatalogTileDensity = 'comfortable' | 'compact';
14
+ /**
15
+ * An entry's state, as data: the tile draws it, the same way on every tile.
16
+ *
17
+ * ONE PRESENTATION, NOT A SLOT. Taken as any node, a service's In use came as
18
+ * a soft pill and an app's Connected as a dot and a word, so one row of tiles
19
+ * drew its states two ways and at two heights. A tone and a word cannot be
20
+ * drawn two ways.
21
+ */
22
+ export interface CatalogTileStatus {
23
+ /**
24
+ * What the state is: `success` for in use or connected, `warning` for
25
+ * something owed, `danger` for broken, `neutral` for coming soon.
26
+ */
27
+ tone: Tone;
28
+ /** The state in a word or two: In use, Connected, Needs attention. */
29
+ label: string;
30
+ }
13
31
  export interface CatalogTileProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
14
32
  /** The element the tile is: an `li` in a `TileGrid as="ul"`. */
15
33
  as?: CatalogTileElement | undefined;
@@ -24,12 +42,12 @@ export interface CatalogTileProps extends Omit<HTMLAttributes<HTMLElement>, 'tit
24
42
  /** Overrides the level the name is rendered at. */
25
43
  headingLevel?: HeadingLevel | undefined;
26
44
  /**
27
- * The entry's state, as a `Tag`, ONLY when the state is worth reading: On,
28
- * Connected, Needs attention, Coming soon. An entry in its resting state
29
- * (available, not set up) carries none, and its name stands centred beside
30
- * its mark; a pill under every name is a column a reader learns to skip.
45
+ * The entry's state, drawn as its tone's dot and its word, ONLY when the
46
+ * state is worth reading: In use, Connected, Needs attention, Coming soon.
47
+ * An entry in its resting state (available, not set up) carries none; a
48
+ * state under every name is a column a reader learns to skip.
31
49
  */
32
- status?: ReactNode;
50
+ status?: CatalogTileStatus | undefined;
33
51
  /** One sentence: what the entry is for, or what is owed when something is. */
34
52
  description?: ReactNode;
35
53
  /** A quiet fact at the foot (`2 agents · 14 deliveries`). */
@@ -1,3 +1,3 @@
1
1
  import './CatalogTile.css';
2
2
  export { CatalogTile } from './CatalogTile.js';
3
- export type { CatalogTileDensity, CatalogTileElement, CatalogTileProps } from './CatalogTile.js';
3
+ export type { CatalogTileDensity, CatalogTileElement, CatalogTileProps, CatalogTileStatus } from './CatalogTile.js';
@@ -1,3 +1,4 @@
1
- export { CatalogTile } from '../chunk-QE4OIE3Q.js';
1
+ export { CatalogTile } from '../chunk-DJIWCW5Z.js';
2
+ import '../chunk-CYQBDZ6M.js';
2
3
  import '../chunk-PQADV6P6.js';
3
4
  import '../chunk-ODEQTPFM.js';
@@ -79,9 +79,10 @@
79
79
  overflow-wrap: anywhere;
80
80
  }
81
81
 
82
- /* A state in words (a StatusDot's label) at a Tag's caption step, so a row
83
- reads the same whichever one a tile carries. It inherited the page's size,
84
- and on a 16px page "Connected" stood taller than the name before it. */
82
+ /* THE STATE, the tone's dot and its word, at the caption step the fact
83
+ beside it takes, so a compact tile's line reads name, state, fact at one
84
+ height. It inherited the page's size, and on a 16px page "Connected" stood
85
+ taller than the name before it. */
85
86
  .crewlet-catalog-tile__status {
86
87
  display: inline-flex;
87
88
  font-size: var(--font-size-xs);
@@ -1,8 +1,10 @@
1
- export { ChangeMark } from '../chunk-ONNXUS5Y.js';
1
+ export { ChangeMark } from '../chunk-VB3FVKNI.js';
2
2
  import '../chunk-LFSIKGRQ.js';
3
3
  import '../chunk-Z7JYG5TF.js';
4
4
  import '../chunk-AYKXMIOR.js';
5
- import '../chunk-3QQIGMY3.js';
5
+ import '../chunk-7ZSEUO5Q.js';
6
+ import '../chunk-HTS5RJ7S.js';
7
+ import '../chunk-L72URIHR.js';
6
8
  import '../chunk-OMV5W53A.js';
7
9
  import '../chunk-TUEM2XIW.js';
8
10
  import '../chunk-4ITETIGZ.js';
@@ -1,5 +1,5 @@
1
- export { CHAT_THREAD_FOLLOW_WITHIN, CHAT_THREAD_LABELS, ChatThread } from '../chunk-JHQGNFN3.js';
2
- import '../chunk-RTPQDNW3.js';
1
+ export { CHAT_THREAD_FOLLOW_WITHIN, CHAT_THREAD_LABELS, ChatThread } from '../chunk-VONEKR3J.js';
2
+ import '../chunk-YJQXESOJ.js';
3
3
  import '../chunk-DGXZ635L.js';
4
4
  import '../chunk-XSPCITPN.js';
5
5
  import '../chunk-UT6CW3C7.js';
@@ -1,6 +1,7 @@
1
- export { CommandPalette } from '../chunk-VGOWSOUA.js';
2
- import '../chunk-XXDB6KPV.js';
1
+ export { CommandPalette } from '../chunk-YXKSUILG.js';
2
+ import '../chunk-ZXXZESCD.js';
3
3
  import '../chunk-YGRTX67J.js';
4
+ import '../chunk-L72URIHR.js';
4
5
  import '../chunk-O7N6W52M.js';
5
6
  import '../chunk-PGCLHYVP.js';
6
7
  import '../chunk-CMAZZY2I.js';
@@ -24,7 +24,7 @@
24
24
  */
25
25
  import { type MouseEventHandler, type ReactNode } from 'react';
26
26
  import { type PlacementRect } from '../Layer/index.js';
27
- import type { NavFigure, NavLinkProps } from '../SidebarNav/index.js';
27
+ import type { NavBadge, NavFigure, NavLinkProps } from '../SidebarNav/index.js';
28
28
  export interface CompactNavProps {
29
29
  /** Names the navigation region, as `SidebarNav`'s label does. */
30
30
  label: string;
@@ -45,9 +45,11 @@ interface CompactPlace {
45
45
  current?: boolean | undefined;
46
46
  /**
47
47
  * How many things here are waiting on the reader: the accent figure on the
48
- * tile's corner, as `SidebarNav.Item`'s badge.
48
+ * tile's corner, as `SidebarNav.Item`'s badge. `tone: 'quiet'` draws it as
49
+ * the quiet figure, as the full rail's quiet badge, and keeps it out of a
50
+ * group's sum.
49
51
  */
50
- badge?: NavFigure | undefined;
52
+ badge?: NavBadge | undefined;
51
53
  /** How many of something the place holds: the quiet figure, as `SidebarNav.Item`'s count. */
52
54
  count?: NavFigure | undefined;
53
55
  /**
@@ -123,7 +125,8 @@ export interface CompactNavGroupProps {
123
125
  * badge's own value with a `+`, since there is more than it says.
124
126
  *
125
127
  * The quiet counts are not carried: a count says how much a place holds, and
126
- * a sum of how much six places hold is a figure about nothing.
128
+ * a sum of how much six places hold is a figure about nothing. Nor is a quiet
129
+ * badge: the group's figure is the accent, and only what calls is added to it.
127
130
  */
128
131
  export declare function groupBadge(links: readonly Pick<CompactNavLink, 'badge'>[]): (number | string) | undefined;
129
132
  /**
@@ -157,8 +160,9 @@ lift?: number): {
157
160
  * whatever came next in the document.
158
161
  *
159
162
  * EVERY PLACE IS A REAL LINK, so a modified press opens a tab as it does in
160
- * the full rail; choosing one closes the flyout and, where the keyboard chose
161
- * it, hands focus back to the tile.
163
+ * the full rail; choosing one closes the flyout, and focus follows the
164
+ * navigation: where the page it opened took focus it stays there, and where
165
+ * it is still in the flyout it goes back to the tile, by a press as by a key.
162
166
  *
163
167
  * WHAT OPENED IT DECIDES WHAT CLOSES IT. Opened by the pointer resting on the
164
168
  * tile, it closes when the pointer leaves both; opened by a press or the keys,
@@ -1,5 +1,6 @@
1
- export { CompactNav, CompactNavGroup, CompactNavItem, CompactNavSeparator, groupBadge, placeFlyout } from '../chunk-GP5TNTZH.js';
1
+ export { CompactNav, CompactNavGroup, CompactNavItem, CompactNavSeparator, groupBadge, placeFlyout } from '../chunk-QWRAWKB2.js';
2
2
  import '../chunk-TEV5REGB.js';
3
+ import '../chunk-HTS5RJ7S.js';
3
4
  import '../chunk-OMV5W53A.js';
4
5
  import '../chunk-2YTOOH3A.js';
5
6
  import '../chunk-TUEM2XIW.js';
@@ -1,9 +1,10 @@
1
- export { ContrastHelp } from '../chunk-PXLS6JKL.js';
1
+ export { ContrastHelp } from '../chunk-WMO722J2.js';
2
2
  import '../chunk-2ZSCHQOA.js';
3
- import '../chunk-SM4P2SHB.js';
4
3
  import '../chunk-LBGKLYBY.js';
4
+ import '../chunk-EC6EUIAD.js';
5
5
  import '../chunk-7W3LYIOC.js';
6
6
  import '../chunk-CYQBDZ6M.js';
7
+ import '../chunk-L72URIHR.js';
7
8
  import '../chunk-OMV5W53A.js';
8
9
  import '../chunk-TUEM2XIW.js';
9
10
  import '../chunk-4ITETIGZ.js';
@@ -1,6 +1,6 @@
1
- export { ChooserList, ColumnChooser, DATA_GRID_ICON_TRACK, DataGrid, columnChoicesOf, countDataGridRows, fitGridColumns, nextGridSort, parseGridSort, useAnyDataGridDriving, useDataGridDriving } from '../chunk-57BFL323.js';
2
- import '../chunk-RTPQDNW3.js';
1
+ export { ChooserList, ColumnChooser, DATA_GRID_ICON_TRACK, DataGrid, columnChoicesOf, countDataGridRows, fitGridColumns, nextGridSort, parseGridSort, useAnyDataGridDriving, useDataGridDriving } from '../chunk-ABRWL5FJ.js';
3
2
  import '../chunk-YQ7Q52XU.js';
3
+ import '../chunk-YJQXESOJ.js';
4
4
  import '../chunk-PPUR46MK.js';
5
5
  import '../chunk-O7N6W52M.js';
6
6
  import '../chunk-PGCLHYVP.js';
@@ -1,11 +1,12 @@
1
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-P6F3PE4V.js';
2
- import '../chunk-XXDB6KPV.js';
1
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-WANKINXG.js';
2
+ import '../chunk-ZXXZESCD.js';
3
3
  import '../chunk-STJ7QBC3.js';
4
4
  import '../chunk-DTIW4CHZ.js';
5
5
  import '../chunk-RE3FBGQQ.js';
6
6
  import '../chunk-AV2DXAEL.js';
7
7
  import '../chunk-YQ7Q52XU.js';
8
- import '../chunk-YOJAGKTS.js';
8
+ import '../chunk-TGGYSQRD.js';
9
+ import '../chunk-L72URIHR.js';
9
10
  import '../chunk-O7N6W52M.js';
10
11
  import '../chunk-PGCLHYVP.js';
11
12
  import '../chunk-DGXZ635L.js';
@@ -1,20 +1,21 @@
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-SYVQXMLO.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-XRWHDW6F.js';
2
2
  import '../chunk-FPDIHEM4.js';
3
3
  import '../chunk-K4LZXSKZ.js';
4
- import '../chunk-XGLMPPDW.js';
5
- import '../chunk-P6F3PE4V.js';
6
- import '../chunk-XXDB6KPV.js';
4
+ import '../chunk-7K6LVM5I.js';
5
+ import '../chunk-WANKINXG.js';
6
+ import '../chunk-ZXXZESCD.js';
7
+ import '../chunk-YGRTX67J.js';
7
8
  import '../chunk-STJ7QBC3.js';
8
9
  import '../chunk-DTIW4CHZ.js';
9
- import '../chunk-YGRTX67J.js';
10
10
  import '../chunk-EE3DJMSQ.js';
11
11
  import '../chunk-NXFTCPF6.js';
12
- import '../chunk-SM4P2SHB.js';
12
+ import '../chunk-EC6EUIAD.js';
13
13
  import '../chunk-EJNJMHQG.js';
14
14
  import '../chunk-RE3FBGQQ.js';
15
15
  import '../chunk-AV2DXAEL.js';
16
16
  import '../chunk-YQ7Q52XU.js';
17
- import '../chunk-YOJAGKTS.js';
17
+ import '../chunk-TGGYSQRD.js';
18
+ import '../chunk-L72URIHR.js';
18
19
  import '../chunk-O7N6W52M.js';
19
20
  import '../chunk-PGCLHYVP.js';
20
21
  import '../chunk-CMAZZY2I.js';
@@ -1,6 +1,7 @@
1
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-XGLMPPDW.js';
1
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-7K6LVM5I.js';
2
2
  import '../chunk-EE3DJMSQ.js';
3
- import '../chunk-SM4P2SHB.js';
3
+ import '../chunk-EC6EUIAD.js';
4
+ import '../chunk-L72URIHR.js';
4
5
  import '../chunk-DGXZ635L.js';
5
6
  import '../chunk-XSPCITPN.js';
6
7
  import '../chunk-OMV5W53A.js';
@@ -1,7 +1,7 @@
1
- export { DEEP_WORK_CARD_LABELS, DEEP_WORK_STATES, DEEP_WORK_STATE_LABELS, DeepWorkCard } from '../chunk-IYI6HWKN.js';
1
+ export { DEEP_WORK_CARD_LABELS, DEEP_WORK_STATES, DEEP_WORK_STATE_LABELS, DeepWorkCard } from '../chunk-CV2LU2T2.js';
2
2
  import '../chunk-RJWO2PC5.js';
3
- import '../chunk-RQFRRPV6.js';
4
3
  import '../chunk-ZWCK4N4L.js';
4
+ import '../chunk-RQFRRPV6.js';
5
5
  import '../chunk-FLW5U7YS.js';
6
6
  import '../chunk-LBGKLYBY.js';
7
7
  import '../chunk-U2IQNDDR.js';
@@ -1,3 +1,3 @@
1
- export { DirectoryList } from '../chunk-SRDNGGZE.js';
1
+ export { DirectoryList } from '../chunk-RKIJAXQA.js';
2
2
  import '../chunk-PQADV6P6.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -17,7 +17,12 @@
17
17
  font-family: var(--font-family-sans);
18
18
  }
19
19
 
20
- /* The groups take the room and scroll on their own, so the foot stays put. */
20
+ /* The groups take the room and scroll on their own, so the foot stays put.
21
+
22
+ THEIR INSET IS INSIDE THE SCROLLER. The gutter is reserved whether or not
23
+ they scroll, and the lines end a step before it: a line's state pill stood
24
+ against the scrollbar, and moved by its width when the list grew long
25
+ enough to scroll. */
21
26
  .crewlet-directory__groups {
22
27
  display: flex;
23
28
  flex: 1 1 auto;
@@ -26,7 +31,9 @@
26
31
  under it rather than a band between two runs of them. */
27
32
  gap: var(--spacing-3);
28
33
  min-height: 0;
34
+ padding-right: var(--spacing-2);
29
35
  overflow-y: auto;
36
+ scrollbar-gutter: stable;
30
37
  }
31
38
 
32
39
  .crewlet-directory__group {
@@ -1,6 +1,8 @@
1
- export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-B3X4DHRB.js';
2
- import '../chunk-MPVMB2DV.js';
3
- import '../chunk-YOJAGKTS.js';
1
+ export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-RDIQB5ZE.js';
2
+ import '../chunk-BVML4UVB.js';
3
+ import '../chunk-YJQXESOJ.js';
4
+ import '../chunk-TGGYSQRD.js';
5
+ import '../chunk-L72URIHR.js';
4
6
  import '../chunk-O7N6W52M.js';
5
7
  import '../chunk-PGCLHYVP.js';
6
8
  import '../chunk-DGXZ635L.js';
@@ -0,0 +1,68 @@
1
+ /**
2
+ * A column a host docks beside its content and takes away again: a list of
3
+ * rooms pinned beside a conversation.
4
+ *
5
+ * THE COLUMN IS ALWAYS THERE, as wide as its panel while it is open and as
6
+ * wide as nothing while it is not, and it eases between the two. It stands in
7
+ * the host's own `auto` grid track (or as a flex item that does not grow), so
8
+ * its width IS the track, and the content beside it narrows and widens with
9
+ * it frame by frame rather than jumping by the panel's width in one.
10
+ * Swapping the host's grid template between two track lists instead is what
11
+ * made the content jump: a template is not a length, and it does not ease.
12
+ *
13
+ * THE PANEL KEEPS ITS OWN WIDTH, clipped by the column and held to the
14
+ * column's edge that faces the content, so it slides in from the outer edge
15
+ * and back out to it, the way a sheet does, and nothing in it reflows on the
16
+ * way.
17
+ *
18
+ * AND IT LEAVES INERT. Closed, the panel stays drawn until the column has
19
+ * closed over it (`usePresence`), and `inert` all the while, so nothing in a
20
+ * panel on its way out takes focus or a press; opened again on the way out,
21
+ * it is live again where it is. Under reduced motion it simply is or is not.
22
+ *
23
+ * FOCUS LEAVES WITH IT. A reader who closes the dock from inside it (an Unpin
24
+ * in its own head) is handed to `focusOnClose`, the control that docks it
25
+ * again, as the panel starts to leave, and never left in a panel that takes
26
+ * nothing; with no such control focus is taken off the panel.
27
+ *
28
+ * A PLAIN COLUMN, NOT A LANDMARK: what it holds names itself (a navigation
29
+ * named Rooms), and a column named the same as the region inside it is two
30
+ * landmarks of one name a screen reader cannot tell apart.
31
+ */
32
+ import { type HTMLAttributes, type ReactNode } from 'react';
33
+ /** The edge of the content the column stands at, in the inline direction. */
34
+ export type DockColumnSide = 'start' | 'end';
35
+ export interface DockColumnProps extends HTMLAttributes<HTMLDivElement> {
36
+ /** Whether the panel is docked. The column eases open and shut on a change. */
37
+ open: boolean;
38
+ /**
39
+ * The panel's width, and the column's while it is open: a number of px, or
40
+ * any CSS length (`var(--rooms-dock)`), so a host keeps the one value its
41
+ * own layout arithmetic reads.
42
+ */
43
+ width: number | string;
44
+ /**
45
+ * Which side of the content the column stands on. `start` (the default) is
46
+ * before it, and its panel slides in from the start edge; `end` is after
47
+ * it, and slides in from the end edge.
48
+ */
49
+ side?: DockColumnSide | undefined;
50
+ /**
51
+ * A hairline on the panel's edge that faces the content. On by default; a
52
+ * panel whose content draws its own edge turns it off.
53
+ */
54
+ divider?: boolean | undefined;
55
+ /**
56
+ * Where focus goes when the dock closes while focus is inside it: the
57
+ * control that docks it again. Asked as the panel starts to leave. Left
58
+ * out, or answering nothing, focus is taken off the panel.
59
+ */
60
+ focusOnClose?: (() => HTMLElement | null | undefined) | undefined;
61
+ /**
62
+ * The panel. Its ground is the column's `--crewlet-dock-column-ground`,
63
+ * which a host sets on its own class (`var(--color-surface-subtle)`), and
64
+ * none by default.
65
+ */
66
+ children?: ReactNode;
67
+ }
68
+ export declare function DockColumn({ open, width, side, divider, focusOnClose, className, style, children, ...rest }: DockColumnProps): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './DockColumn.css';
2
+ export { DockColumn } from './DockColumn.js';
3
+ export type { DockColumnProps, DockColumnSide } from './DockColumn.js';
@@ -0,0 +1,6 @@
1
+ export { DockColumn } from '../chunk-5JPOFAVN.js';
2
+ import '../chunk-PCAT2EFB.js';
3
+ import '../chunk-YJQXESOJ.js';
4
+ import '../chunk-HTS5RJ7S.js';
5
+ import '../chunk-4ITETIGZ.js';
6
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,61 @@
1
+ /*
2
+ * A column docked beside the content (DockColumn.tsx).
3
+ *
4
+ * THE COLUMN EASES ITS WIDTH between none and its panel's, on the slow step
5
+ * with the emphasized curve: the motion the application rail folds by,
6
+ * so a column of the frame and a column of a screen open and close as one
7
+ * movement. The host gives it an `auto` track, so its width is the track.
8
+ * Clipped rather than hidden, so it is never a scroll container a focus or a
9
+ * scrollIntoView could scroll.
10
+ *
11
+ * THE PANEL KEEPS ITS WIDTH and is held to the column's edge that faces the
12
+ * content: before the content (`start`) it is held to the column's end, so
13
+ * the moving edge uncovers it from the start edge, and after the content
14
+ * (`end`) the other way round.
15
+ *
16
+ * Tokens only. The width is the component's own variable, set from the
17
+ * `width` prop, so the column and the panel read one value.
18
+ */
19
+
20
+ .crewlet-dock-column {
21
+ display: flex;
22
+ justify-content: flex-end;
23
+ width: 0;
24
+ min-width: 0;
25
+ min-height: 0;
26
+ overflow: clip;
27
+ transition: width var(--motion-duration-slow) var(--motion-easing-emphasized);
28
+ }
29
+
30
+ .crewlet-dock-column[data-side='end'] {
31
+ justify-content: flex-start;
32
+ }
33
+
34
+ .crewlet-dock-column[data-open] {
35
+ width: var(--crewlet-dock-column-width);
36
+ }
37
+
38
+ .crewlet-dock-column__panel {
39
+ display: flex;
40
+ flex: none;
41
+ flex-direction: column;
42
+ box-sizing: border-box;
43
+ width: var(--crewlet-dock-column-width);
44
+ min-height: 0;
45
+ background: var(--crewlet-dock-column-ground, transparent);
46
+ }
47
+
48
+ /* The hairline on the panel's edge that faces the content. */
49
+ .crewlet-dock-column--divider[data-side='start'] > .crewlet-dock-column__panel {
50
+ border-inline-end: 1px solid var(--color-border-default);
51
+ }
52
+
53
+ .crewlet-dock-column--divider[data-side='end'] > .crewlet-dock-column__panel {
54
+ border-inline-start: 1px solid var(--color-border-default);
55
+ }
56
+
57
+ @media (prefers-reduced-motion: reduce) {
58
+ .crewlet-dock-column {
59
+ transition: none;
60
+ }
61
+ }
@@ -3,7 +3,8 @@ import { schema, readMarkdown, writeMarkdown } from './chunk-7CSTEH5I.js';
3
3
  import './chunk-KOJPDCGQ.js';
4
4
  import { safeHref, MARKDOWN_CALLOUT_TONES } from './chunk-KBZO4B33.js';
5
5
  import { Toolbar } from './chunk-NXFTCPF6.js';
6
- import { Menu } from './chunk-YOJAGKTS.js';
6
+ import { Menu } from './chunk-TGGYSQRD.js';
7
+ import './chunk-L72URIHR.js';
7
8
  import { FormField, Input } from './chunk-O7N6W52M.js';
8
9
  import './chunk-PGCLHYVP.js';
9
10
  import { Button } from './chunk-DGXZ635L.js';
@@ -1,6 +1,8 @@
1
- export { EMOJI_GROUPS, EMOJI_PICKER_COLUMNS, EMOJI_PICKER_LABELS, EmojiPicker, emojiName, searchEmoji } from '../chunk-MPYRC3GO.js';
2
- import '../chunk-SM4P2SHB.js';
3
- import '../chunk-3QQIGMY3.js';
1
+ export { EMOJI_GROUPS, EMOJI_PICKER_COLUMNS, EMOJI_PICKER_LABELS, EmojiPicker, emojiName, searchEmoji } from '../chunk-SPNTUQBV.js';
2
+ import '../chunk-EC6EUIAD.js';
3
+ import '../chunk-7ZSEUO5Q.js';
4
+ import '../chunk-HTS5RJ7S.js';
5
+ import '../chunk-L72URIHR.js';
4
6
  import '../chunk-O7N6W52M.js';
5
7
  import '../chunk-PGCLHYVP.js';
6
8
  import '../chunk-OMV5W53A.js';
@@ -1,5 +1,7 @@
1
- export { FactList } from '../chunk-JV6JM6W6.js';
2
- import '../chunk-3QQIGMY3.js';
1
+ export { FactList } from '../chunk-SNQ7PH3D.js';
2
+ import '../chunk-7ZSEUO5Q.js';
3
+ import '../chunk-HTS5RJ7S.js';
4
+ import '../chunk-L72URIHR.js';
3
5
  import '../chunk-OMV5W53A.js';
4
6
  import '../chunk-TUEM2XIW.js';
5
7
  import '../chunk-4ITETIGZ.js';
@@ -1,11 +1,12 @@
1
1
  import '../chunk-FFMCMSJB.js';
2
- export { HuePicker, HueSwatch } from '../chunk-LSOR77RZ.js';
2
+ export { HuePicker, HueSwatch } from '../chunk-SHH7UD5U.js';
3
3
  import '../chunk-AYKXMIOR.js';
4
- import '../chunk-GZVAZ3LL.js';
5
- import '../chunk-HCUECVZ3.js';
4
+ import '../chunk-AZYE7NR4.js';
5
+ import '../chunk-MVKUE4FI.js';
6
6
  import '../chunk-EGMQURBR.js';
7
7
  import '../chunk-CYQBDZ6M.js';
8
- import '../chunk-YOJAGKTS.js';
8
+ import '../chunk-TGGYSQRD.js';
9
+ import '../chunk-L72URIHR.js';
9
10
  import '../chunk-DGXZ635L.js';
10
11
  import '../chunk-XSPCITPN.js';
11
12
  import '../chunk-OMV5W53A.js';
@@ -48,13 +48,27 @@ export interface InboxGroupProps extends Omit<HTMLAttributes<HTMLElement>, 'titl
48
48
  /** Whether a collapsible group starts open, when the group holds it. */
49
49
  defaultOpen?: boolean | undefined;
50
50
  onOpenChange?: ((open: boolean) => void) | undefined;
51
+ /**
52
+ * The latest row to arrive in the group, as a token (the row's key): each
53
+ * new value plays a brief wash of the accent over the group's label and
54
+ * count, so a row that lands in a closed group (Answered) is seen to land.
55
+ * Pass it only for a row that has just arrived, never on a first draw.
56
+ */
57
+ arrived?: string | number | undefined;
51
58
  }
59
+ /**
60
+ * The motion a leaving row waits for: its height closing, a transition of the
61
+ * row's own `grid-template-rows` (InboxList.css). A suite fakes exactly this.
62
+ */
63
+ export declare const INBOX_ROW_LEAVE: {
64
+ readonly transitions: readonly ["grid-template-rows"];
65
+ };
52
66
  /**
53
67
  * A labelled run of rows. The label is a heading set in the micro-label
54
68
  * register, so a reader navigating by heading lands on each group and a
55
69
  * reader scanning sees where one ends.
56
70
  */
57
- export declare function InboxGroup({ label, hideLabel, headingLevel, count, collapsible, open: controlledOpen, defaultOpen, onOpenChange, className, children, ...rest }: InboxGroupProps): import("react").JSX.Element;
71
+ export declare function InboxGroup({ label, hideLabel, headingLevel, count, collapsible, open: controlledOpen, defaultOpen, onOpenChange, arrived, className, children, ...rest }: InboxGroupProps): import("react").JSX.Element;
58
72
  export type InboxRowTone = 'default' | 'danger';
59
73
  export interface InboxRowProps extends Omit<LiHTMLAttributes<HTMLLIElement>, 'onClick' | 'title'> {
60
74
  /** Who the row is from: a seat's or a person's name. */
@@ -114,6 +128,18 @@ export interface InboxRowProps extends Omit<LiHTMLAttributes<HTMLLIElement>, 'on
114
128
  * open the link in a tab.
115
129
  */
116
130
  onClick?: ((event: MouseEvent<HTMLElement>) => void) | undefined;
131
+ /**
132
+ * On its way out: the row stays drawn, inert, while its height closes, so
133
+ * the rows under it slide up rather than jump, and is drawn no more once it
134
+ * has closed. An `InboxGroup` does this itself for a keyed row that leaves
135
+ * its children, and a wrapper the host draws its rows through forwards
136
+ * this and `onLeft` to its `InboxRow`; pass it for a list of your own.
137
+ */
138
+ leaving?: boolean | undefined;
139
+ /** Runs once a leaving row has closed and is drawn no more, once for each leave. */
140
+ onLeft?: (() => void) | undefined;
141
+ /** Just arrived: a brief wash of the accent that fades back to the row's own ground. */
142
+ arrived?: boolean | undefined;
117
143
  }
118
144
  /**
119
145
  * One row: WHO, then WHAT in up to three lines, then the task it is about.
@@ -137,7 +163,7 @@ export interface InboxRowProps extends Omit<LiHTMLAttributes<HTMLLIElement>, 'on
137
163
  * the words take up to three lines before they stop, so a row says what it is
138
164
  * rather than its first few words.
139
165
  */
140
- export declare function InboxRow({ title, qualifier, qualifierTone, meta, leading, excerpt, aside, selected, unread, unreadLabel, actionable, done, doneLabel, status, outcome, outcomeIcon, outcomeTone, href, onClick, className, children, ...rest }: InboxRowProps): import("react").JSX.Element;
166
+ export declare function InboxRow({ title, qualifier, qualifierTone, meta, leading, excerpt, aside, selected, unread, unreadLabel, actionable, done, doneLabel, status, outcome, outcomeIcon, outcomeTone, href, onClick, leaving, onLeft, arrived, className, children, ...rest }: InboxRowProps): import("react").JSX.Element | null;
141
167
  export type InboxMoreProps = HTMLAttributes<HTMLDivElement>;
142
168
  /**
143
169
  * The end of the list: the quiet toggles that open what is not in it by
@@ -1,3 +1,3 @@
1
1
  import './InboxList.css';
2
- export { InboxList, InboxGroup, InboxRow, InboxMore, InboxToggle } from './InboxList.js';
2
+ export { InboxList, InboxGroup, InboxRow, InboxMore, InboxToggle, INBOX_ROW_LEAVE } from './InboxList.js';
3
3
  export type { InboxListProps, InboxGroupProps, InboxRowProps, InboxRowTone, InboxMoreProps, InboxToggleProps, } from './InboxList.js';