@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
@@ -26,31 +26,46 @@
26
26
  .crewlet-app-shell {
27
27
  --crewlet-app-shell-rail: var(--size-shell-rail);
28
28
  --crewlet-app-shell-topbar: var(--size-shell-topbar);
29
+ /* THE SHEET'S SIDE INSET, ONE LENGTH: the bar's, the content column's, and
30
+ the inset a box that reaches past the column to the sheet's edge keeps
31
+ inside itself (a `ListDetail` on a fill screen), one step narrower on a
32
+ narrow window. */
33
+ --crewlet-app-shell-inset: var(--spacing-5);
29
34
  /* What stands on the frame to the sheet's left: the rail's column, or
30
- nothing where there is no rail or the rail is a drawer. The aside's cap
31
- below subtracts it, so it is one name for both. */
35
+ nothing where there is no rail or the rail is a drawer. */
32
36
  --crewlet-app-shell-beside: var(--crewlet-app-shell-rail);
33
- /* THE ASIDE'S TRACK, while it is a column: the panel's width and the inset
34
- it is held off the window's edge by, capped so the sheet keeps the
35
- host's floor (`--crewlet-app-shell-aside-reserve`, the page's sheet with
36
- its own inset and hairlines). The host publishes both widths on this
37
- element; with no reserve the panel takes the width it was given. */
38
- --crewlet-app-shell-aside-track: calc(
39
- min(
40
- var(--crewlet-app-shell-aside),
41
- max(
42
- 0px,
43
- 100% - var(--crewlet-app-shell-beside) - var(--crewlet-app-shell-aside-reserve, 0px) - var(--size-shell-inset)
44
- )
45
- ) +
46
- var(--size-shell-inset)
37
+ /*
38
+ * THE ASIDE'S TRACK, while it is a column: the inset it is held off the
39
+ * window's edge by at least, and the panel's width and that inset at most.
40
+ * THE CAP IS THE GRID'S. The page's sheet takes the host's floor as its
41
+ * own track's minimum (`--crewlet-app-shell-aside-reserve`, the page's sheet
42
+ * with its own inset and hairlines), and the grid hands the aside what is
43
+ * left once the rail and that floor have theirs, up to its width. The rail's
44
+ * track is the rail's live width, so while the rail eases between its
45
+ * shapes the cap eases with it: a cap computed from the rail's VARIABLE
46
+ * named the shape drawn, and jumped at both ends of a fold. With no reserve
47
+ * the panel takes the width it was given, as far as the window holds it.
48
+ */
49
+ --crewlet-app-shell-aside-track: minmax(
50
+ var(--size-shell-inset),
51
+ calc(var(--crewlet-app-shell-aside) + var(--size-shell-inset))
52
+ );
53
+ /* The page's floor beside an aside column, never more than the window
54
+ leaves it: on a window too narrow for the floor, the page gives way rather
55
+ than the shell growing past the window's edge. */
56
+ --crewlet-app-shell-sheet-floor: min(
57
+ var(--crewlet-app-shell-aside-reserve, 0px),
58
+ max(0px, 100% - var(--crewlet-app-shell-beside) - var(--size-shell-inset))
47
59
  );
48
60
  /* Where the drawer's veil sits while it is open. The shell replaces it with
49
61
  the surface's own place in the layer band; this default only has to clear
50
62
  the page chrome for the moment before that lands. */
51
63
  --crewlet-app-shell-drawer-z: var(--z-index-overlay);
52
64
  display: grid;
53
- grid-template-columns: var(--crewlet-app-shell-rail) minmax(0, 1fr);
65
+ /* The rail's track is the rail's own width (`auto`), and the rail takes
66
+ `--crewlet-app-shell-rail` itself, so the track follows it while it eases
67
+ between its two shapes (see the rail's motion, below). */
68
+ grid-template-columns: auto minmax(0, 1fr);
54
69
  /* One row, the viewport's height less nothing: the sheet's own margin is
55
70
  what holds it off the frame's edges, and a row sized by its content would
56
71
  let a tall screen push the sheet's bottom edge off the window. */
@@ -89,11 +104,11 @@
89
104
  keeps its column and is only narrower, so nothing under the bar moves but
90
105
  its end edge. */
91
106
  .crewlet-app-shell[data-aside='column'] {
92
- grid-template-columns: var(--crewlet-app-shell-rail) minmax(0, 1fr) var(--crewlet-app-shell-aside-track);
107
+ grid-template-columns: auto minmax(var(--crewlet-app-shell-sheet-floor), 1fr) var(--crewlet-app-shell-aside-track);
93
108
  }
94
109
 
95
110
  .crewlet-app-shell--no-rail[data-aside='column'] {
96
- grid-template-columns: minmax(0, 1fr) var(--crewlet-app-shell-aside-track);
111
+ grid-template-columns: minmax(var(--crewlet-app-shell-sheet-floor), 1fr) var(--crewlet-app-shell-aside-track);
97
112
  }
98
113
 
99
114
  /* The skip link, drawn only while it holds focus, over everything. */
@@ -139,14 +154,25 @@
139
154
  position: relative;
140
155
  display: flex;
141
156
  flex-direction: column;
157
+ width: var(--crewlet-app-shell-rail);
142
158
  min-height: 0;
143
159
  min-width: 0;
160
+ /* THE MOVING EDGE CUTS WHAT IT PASSES. While the rail eases between its
161
+ shapes its content keeps the width of the shape drawn (below), and the
162
+ edge clips it rather than squeezing it. Across only: a ring or a badge
163
+ at a row's top or bottom is never cut. */
164
+ overflow-x: clip;
144
165
  background: var(--color-surface-frame);
166
+ transition: width var(--motion-duration-slow) var(--motion-easing-emphasized);
145
167
  }
146
168
 
169
+ /* THE CONTENT IS LAID OUT AT ITS SHAPE'S WIDTH, never at a width between the
170
+ two, so no word in the rail rewraps while it moves and nothing drifts with
171
+ the edge: the column stands still and the edge travels over it. */
147
172
  .crewlet-app-shell__rail-inner {
148
173
  display: flex;
149
174
  flex-direction: column;
175
+ width: var(--crewlet-app-shell-rail);
150
176
  min-height: 0;
151
177
  height: 100%;
152
178
  }
@@ -607,7 +633,8 @@
607
633
  gap: var(--spacing-3);
608
634
  flex: none;
609
635
  height: var(--crewlet-app-shell-topbar);
610
- padding: 0 calc(var(--spacing-5) + var(--crewlet-app-shell-gutter, 0px)) 0 var(--spacing-5);
636
+ padding: 0 calc(var(--crewlet-app-shell-inset) + var(--crewlet-app-shell-gutter, 0px)) 0
637
+ var(--crewlet-app-shell-inset);
611
638
  border-bottom: 1px solid var(--color-border-default);
612
639
  background: var(--color-surface-background);
613
640
  }
@@ -697,46 +724,76 @@
697
724
  gap: var(--spacing-5);
698
725
  max-width: var(--size-content-max);
699
726
  margin: 0 auto;
700
- padding: var(--spacing-5) var(--spacing-5);
727
+ padding: var(--crewlet-app-shell-inset);
701
728
  padding-bottom: var(--crewlet-app-shell-content-end);
702
729
  min-width: 0;
703
730
  }
704
731
 
705
- /* A screen that draws to the bottom of the window: the scroller stops
706
- scrolling and the content column takes the height that is left.
707
-
708
- IT KEEPS THE GUTTER RESERVED, like every other screen. The top bar's end
709
- inset counts the scroller's gutter (`--crewlet-app-shell-gutter`, measured
710
- by the shell), so a fill screen that reserved none put the bar's controls
711
- one gutter further out than on the screen beside it: with classic
712
- scrollbars, Add seat moved 11px between an org chart and its roster, two
713
- tabs of one page. A strip at the end edge of a full-screen canvas is the
714
- smaller cost than a bar that moves under the pointer. */
732
+ /*
733
+ * A screen that draws to the bottom of the window: the scroller stops
734
+ * scrolling and the content column takes the height that is left, and the
735
+ * whole width, since a screen that fills the window is a frame for panes
736
+ * rather than a page of prose (prose inside it keeps its own measure).
737
+ *
738
+ * THE SCROLLER RESERVES NO GUTTER; THE COLUMN PADS BY IT INSTEAD. Nothing
739
+ * scrolls here, so the strip a scrolling screen keeps for its scrollbar is
740
+ * only there to hold the content where the bar's controls expect it (the
741
+ * bar's end inset counts the gutter). A reserved strip did that, and also
742
+ * stood between the sheet's edge and every pane that scrolls on its own: a
743
+ * list's detail drew its scrollbar 31px inside the sheet, beside an empty
744
+ * strip, and nothing in the screen could paint over a reserved gutter. The
745
+ * same length as padding holds the content exactly where it stood, and a box
746
+ * standing in the column can reach past padding: the column publishes it as
747
+ * `--crewlet-app-shell-bleed-end`, and a `ListDetail` takes it back so its
748
+ * scrollbar is the sheet's last pixel. The scrollbar's width is read off the
749
+ * shell's gauge here (AppShell.tsx), so the bar keeps its place between a
750
+ * fill screen and a scrolling one.
751
+ */
715
752
  .crewlet-app-shell--fill .crewlet-app-shell__main {
716
753
  overflow: hidden;
754
+ scrollbar-gutter: auto;
717
755
  }
718
756
 
719
757
  .crewlet-app-shell--fill .crewlet-app-shell__content {
720
758
  --crewlet-app-shell-content-end: var(--spacing-5);
759
+ --crewlet-app-shell-bleed-end: calc(var(--crewlet-app-shell-inset) + var(--crewlet-app-shell-gutter, 0px));
721
760
 
722
761
  height: 100%;
762
+ max-width: none;
763
+ padding-right: var(--crewlet-app-shell-bleed-end);
723
764
  }
724
765
 
725
766
  /*
726
- * A FLUSH SCREEN draws its own frame to the sheet's edges: the column gives up
727
- * its pad, its measure and its gap, and the scroller reserves no gutter, since
728
- * nothing in it scrolls and a strip at its end would cut the screen's own
729
- * edge. The column is the containing block for a `LayerHost` the screen
730
- * keeps, so its layers fill the screen rather than the window.
767
+ * THE GAUGE: an empty scroller, never seen, that always draws its scrollbar,
768
+ * so the shell can read the scrollbar's width on a fill screen, where the
769
+ * screen's own scroller reserves none. It is a row of no height in the
770
+ * sheet's column, clipped, so it takes no room and moves nothing; the ruler
771
+ * inside it has a height of its own, because a scroller of no height draws
772
+ * no scrollbar in Firefox and measured 0 there.
731
773
  */
732
- .crewlet-app-shell--fill-flush .crewlet-app-shell__main {
733
- scrollbar-gutter: auto;
774
+ .crewlet-app-shell__gauge {
775
+ flex: none;
776
+ height: 0;
777
+ overflow: hidden;
778
+ visibility: hidden;
779
+ }
780
+
781
+ .crewlet-app-shell__gauge-ruler {
782
+ height: var(--size-target-min);
783
+ overflow-y: scroll;
734
784
  }
735
785
 
786
+ /*
787
+ * A FLUSH SCREEN draws its own frame to the sheet's edges: the column gives up
788
+ * its pad and its gap as well, so there is nothing for a box in it to reach
789
+ * past. The column is the containing block for a `LayerHost` the screen
790
+ * keeps, so its layers fill the screen rather than the window.
791
+ */
736
792
  .crewlet-app-shell--fill-flush .crewlet-app-shell__content {
793
+ --crewlet-app-shell-bleed-end: 0px;
794
+
737
795
  position: relative;
738
796
  gap: 0;
739
- max-width: none;
740
797
  padding: 0;
741
798
  }
742
799
 
@@ -890,7 +947,7 @@
890
947
  }
891
948
 
892
949
  /*
893
- * THE COMPACT RAIL: the same track, narrowed to the compact column. One
950
+ * THE COMPACT RAIL: the same rail, narrowed to the compact column. One
894
951
  * variable is the rail's width for the grid, the aside's cap and the drawer
895
952
  * alike, so folding the rail is this one declaration. The shell writes the
896
953
  * attribute only where the layout is wide: the drawer under the step is
@@ -901,21 +958,33 @@
901
958
  }
902
959
 
903
960
  /*
904
- * THE FOLD CONTROL stands over the compact column's centre, in the row under
905
- * the head, in both shapes, so it never moves under the pointer that pressed
906
- * it. Quiet until the rail is pointed at: the tertiary ink, which holds 3:1
907
- * on the frame, then the secondary, and the ghost's own primary under the
908
- * pointer.
961
+ * THE FOLD CONTROL stands on the head's row, before the brand's mark, in both
962
+ * shapes, so it never moves under the pointer that pressed it: chevrons
963
+ * pointing left to fold the rail and right to unfold it.
964
+ *
965
+ * THE CONTROL AND THE MARK ARE ONE PAIR: the control at the target floor
966
+ * (`--size-target-min`, at every density), a step (`--spacing-1`), then the
967
+ * mark, which is a target's size too, the pair centred in the compact column
968
+ * so the 76px column holds both (12 + 24 + 4 + 24 + 12). The control is
969
+ * centred on the bar's line as the mark is: the inset, then half of what the
970
+ * bar leaves round it. The mark's inset below is the same arithmetic from the
971
+ * other side.
972
+ *
973
+ * Quiet until the rail is pointed at: the tertiary ink, which holds 3:1 on
974
+ * the frame, then the secondary, and the ghost's own primary under the
975
+ * pointer. Its ring is drawn inside its own box, clear of the mark beside it.
909
976
  */
910
977
  .crewlet-app-shell__fold {
911
978
  position: absolute;
912
- top: calc(var(--size-shell-inset) + var(--crewlet-app-shell-topbar));
913
- left: calc((var(--size-shell-rail-compact) - var(--size-control-sm)) / 2);
979
+ top: calc(var(--size-shell-inset) + (var(--crewlet-app-shell-topbar) - var(--size-target-min)) / 2);
980
+ left: calc((var(--size-shell-rail-compact) - 2 * var(--size-target-min) - var(--spacing-1)) / 2);
914
981
  z-index: 1;
915
982
  display: inline-flex;
916
983
  }
917
984
 
918
985
  .crewlet-app-shell__fold > .crewlet-icon-btn {
986
+ width: var(--size-target-min);
987
+ height: var(--size-target-min);
919
988
  color: var(--color-text-tertiary);
920
989
  }
921
990
 
@@ -923,14 +992,25 @@
923
992
  color: var(--color-text-secondary);
924
993
  }
925
994
 
995
+ .crewlet-app-shell__fold > .crewlet-icon-btn:focus-visible {
996
+ outline-offset: var(--size-focus-ring-inset-offset);
997
+ }
998
+
926
999
  /*
927
- * THE MARK STANDS WHERE THE COMPACT RAIL'S DOES, in both shapes: centred over
928
- * the compact column, in the head. Full, the name follows it; compact, the
929
- * name is not drawn (the link keeps it as its name and title).
1000
+ * THE MARK STANDS WHERE THE COMPACT RAIL'S DOES, in both shapes. With no fold
1001
+ * control it is centred over the compact column; beside the fold control it
1002
+ * is the second of the pair (above), a step after the control, which is half
1003
+ * the column and half the step in. Full, the name follows it; compact, the
1004
+ * name is not drawn (the link keeps it as its name and title), and the
1005
+ * lockup's end inset is given up, so the mark is all the column holds.
930
1006
  */
931
- .crewlet-app-shell--foldable .crewlet-app-shell__rail-head > .crewlet-brand,
932
1007
  .crewlet-app-shell[data-rail='compact'] .crewlet-app-shell__rail-head > .crewlet-brand {
933
1008
  padding-left: calc((var(--size-shell-rail-compact) - var(--crewlet-brand-mark)) / 2);
1009
+ padding-right: 0;
1010
+ }
1011
+
1012
+ .crewlet-app-shell--foldable[data-rail] .crewlet-app-shell__rail-head > .crewlet-brand {
1013
+ padding-left: calc((var(--size-shell-rail-compact) + var(--spacing-1)) / 2);
934
1014
  }
935
1015
 
936
1016
  .crewlet-app-shell[data-rail='compact'] .crewlet-brand__name,
@@ -939,30 +1019,16 @@
939
1019
  }
940
1020
 
941
1021
  /*
942
- * FULL, THE FIELD STARTS AFTER THE FOLD CONTROL, a step off it, on the row
943
- * the control stands in. The field holds its place at the top of the rail's
944
- * middle while the rows scroll under it, on the frame's own ground, so the
945
- * control beside it is always beside it.
1022
+ * COMPACT, THE STATUS HAS A ROW OF ITS OWN under the mark, a small control
1023
+ * step tall, its dot and its count centred in the column: the first thing
1024
+ * under the head, before the places, where the fold control stood before it
1025
+ * moved to the corner.
946
1026
  */
947
- /* The middle is a stacking context of its own, so the field pinned in it
948
- stands over the rows scrolling under it and the whole middle stands under
949
- the fold control, which is painted a step above the rail. */
950
- .crewlet-app-shell--foldable .crewlet-app-shell__rail-body {
951
- isolation: isolate;
952
- }
953
-
954
- .crewlet-app-shell--foldable[data-rail='full'] .crewlet-app-shell__rail-search {
955
- position: sticky;
956
- top: 0;
957
- z-index: 1;
958
- padding-left: calc((var(--size-shell-rail-compact) + var(--size-control-sm)) / 2 + var(--spacing-2));
959
- background: var(--color-surface-frame);
960
- }
961
-
962
- /* COMPACT, THE FOLD CONTROL HAS A ROW OF ITS OWN under the mark, which the
963
- head leaves room for, and the column of tiles starts under it. */
964
- .crewlet-app-shell--foldable[data-rail='compact'] .crewlet-app-shell__rail-head {
965
- margin-bottom: var(--size-control-sm);
1027
+ .crewlet-app-shell[data-rail='compact'] .crewlet-app-shell__rail-inner > .crewlet-app-shell__rail-status {
1028
+ justify-content: center;
1029
+ min-width: 0;
1030
+ min-height: var(--size-control-sm);
1031
+ margin: 0;
966
1032
  }
967
1033
 
968
1034
  .crewlet-app-shell[data-rail='compact'] .crewlet-app-shell__rail-body {
@@ -972,7 +1038,7 @@
972
1038
 
973
1039
  /*
974
1040
  * The compact foot: what the full foot holds, centred in the column, a step
975
- * apart: the status's dot, a Settings tile, the reader's face.
1041
+ * apart: a Settings tile, the reader's face.
976
1042
  */
977
1043
  .crewlet-app-shell[data-rail='compact'] .crewlet-app-shell__rail-foot {
978
1044
  align-items: center;
@@ -984,15 +1050,93 @@
984
1050
  align-self: stretch;
985
1051
  }
986
1052
 
987
- .crewlet-app-shell[data-rail='compact'] .crewlet-app-shell__rail-foot > .crewlet-app-shell__rail-status {
988
- justify-content: center;
989
- min-width: 0;
990
- margin: 0;
1053
+ /*
1054
+ * THE COMPACT FACE IS CENTRED ON THE TILES' LINE. It gives up the full row's
1055
+ * badge column and the step after it (above): kept, the step stood the face
1056
+ * 4px left of the column's centre, in a box 8px wider than the face, so the
1057
+ * face sat off the line every tile above it is centred on.
1058
+ */
1059
+ .crewlet-app-shell__rail-foot .crewlet-account-row--compact .crewlet-account-row__avatar {
1060
+ width: auto;
1061
+ margin-inline-end: 0;
1062
+ }
1063
+
1064
+ /*
1065
+ * THE RAIL'S MOTION (railMotion.ts). The rail's width eases between the two
1066
+ * shapes on the slow step with the emphasized curve, the motion a
1067
+ * `DockColumn` opens and closes by, so a column of the frame and a column of
1068
+ * a screen move as one. What the rail holds keeps the width of the shape
1069
+ * drawn, so the moving edge clips the words rather than squeezing them.
1070
+ *
1071
+ * FOLDING, the full rail stays drawn, inert, while the edge narrows to the
1072
+ * compact column, and its words fade out on the base step; the compact column
1073
+ * is drawn when the rail's motion has ended, and fades in on the fast step.
1074
+ * UNFOLDING, the full rail is drawn at once and fades in while the edge
1075
+ * uncovers it. The brand's mark and the fold control are in the same place in
1076
+ * both shapes, so neither fades.
1077
+ *
1078
+ * THE WORDS LEAVE BY A TRANSITION and arrive by keyframes. A fold takes their
1079
+ * opacity to nothing; a fold pressed again mid way (`reverse`) declares
1080
+ * nothing of its own, so the same transition takes the opacity back from
1081
+ * wherever it had reached. Faded out by keyframes instead, a reversal could
1082
+ * only start an entrance from nothing, and the words blinked out and back.
1083
+ * The transition is declared only while the rail moves, so nothing else that
1084
+ * sets these parts' opacity is eased.
1085
+ */
1086
+ .crewlet-app-shell[data-rail-motion='fold'] > .crewlet-app-shell__rail {
1087
+ width: var(--size-shell-rail-compact);
1088
+ }
1089
+
1090
+ /* Two names for one entrance, so an unfold pressed while the compact column
1091
+ is still arriving starts the full rail's entrance afresh. */
1092
+ @keyframes crewlet-app-shell-rail-unfold {
1093
+ from {
1094
+ opacity: 0;
1095
+ }
1096
+ }
1097
+
1098
+ @keyframes crewlet-app-shell-rail-settle {
1099
+ from {
1100
+ opacity: 0;
1101
+ }
1102
+ }
1103
+
1104
+ .crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-body,
1105
+ .crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-foot,
1106
+ .crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-status,
1107
+ .crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-head .crewlet-brand__name,
1108
+ .crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-head .crewlet-brand__context {
1109
+ transition: opacity var(--motion-duration-base) var(--motion-easing-out);
1110
+ }
1111
+
1112
+ .crewlet-app-shell[data-rail-motion='fold'] .crewlet-app-shell__rail-body,
1113
+ .crewlet-app-shell[data-rail-motion='fold'] .crewlet-app-shell__rail-foot,
1114
+ .crewlet-app-shell[data-rail-motion='fold'] .crewlet-app-shell__rail-status,
1115
+ .crewlet-app-shell[data-rail-motion='fold'] .crewlet-app-shell__rail-head .crewlet-brand__name,
1116
+ .crewlet-app-shell[data-rail-motion='fold'] .crewlet-app-shell__rail-head .crewlet-brand__context {
1117
+ opacity: 0;
1118
+ }
1119
+
1120
+ .crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-body,
1121
+ .crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-foot,
1122
+ .crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-status,
1123
+ .crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-head .crewlet-brand__name,
1124
+ .crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-head .crewlet-brand__context {
1125
+ animation: crewlet-app-shell-rail-unfold var(--motion-duration-slow) var(--motion-easing-out);
1126
+ }
1127
+
1128
+ .crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-body,
1129
+ .crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-foot,
1130
+ .crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-status {
1131
+ animation: crewlet-app-shell-rail-settle var(--motion-duration-fast) var(--motion-easing-out);
991
1132
  }
992
1133
 
993
1134
  @media (width < 1024px) {
994
1135
  .crewlet-app-shell {
995
1136
  --crewlet-app-shell-beside: 0px;
1137
+ /* 16px: the content's 12px stood every page's first line 4px left of
1138
+ the bar's title and the controls over it. */
1139
+ --crewlet-app-shell-inset: var(--spacing-4);
996
1140
  grid-template-columns: minmax(0, 1fr);
997
1141
  }
998
1142
 
@@ -1000,7 +1144,7 @@
1000
1144
  step is still a column; the rail is a drawer here and takes no track. */
1001
1145
  .crewlet-app-shell[data-aside='column'],
1002
1146
  .crewlet-app-shell--no-rail[data-aside='column'] {
1003
- grid-template-columns: minmax(0, 1fr) var(--crewlet-app-shell-aside-track);
1147
+ grid-template-columns: minmax(var(--crewlet-app-shell-sheet-floor), 1fr) var(--crewlet-app-shell-aside-track);
1004
1148
  }
1005
1149
 
1006
1150
  .crewlet-app-shell--no-rail {
@@ -1065,22 +1209,18 @@
1065
1209
  transition: transform var(--motion-duration-slow) var(--motion-easing-emphasized);
1066
1210
  }
1067
1211
 
1068
- .crewlet-app-shell__toggle {
1069
- display: inline-flex;
1212
+ /* The drawer never changes shape, and on a window narrower than the rail
1213
+ it is the window's width: its content fills it rather than being cut. */
1214
+ .crewlet-app-shell__rail-inner {
1215
+ width: auto;
1070
1216
  }
1071
1217
 
1072
- /* THE TOP BAR'S GUTTER, 16px: the content's 12px stood every page's first
1073
- line 4px left of the title and the controls over it. The bar and the
1074
- content take it together. */
1075
- .crewlet-app-shell__topbar {
1076
- padding: 0 calc(var(--spacing-4) + var(--crewlet-app-shell-gutter, 0px)) 0 var(--spacing-4);
1218
+ .crewlet-app-shell__toggle {
1219
+ display: inline-flex;
1077
1220
  }
1078
1221
 
1079
1222
  .crewlet-app-shell__content {
1080
1223
  --crewlet-app-shell-content-end: var(--spacing-9);
1081
-
1082
- padding: var(--spacing-4) var(--spacing-4);
1083
- padding-bottom: var(--crewlet-app-shell-content-end);
1084
1224
  }
1085
1225
  }
1086
1226
 
@@ -1099,6 +1239,27 @@
1099
1239
  .crewlet-app-shell__aside[data-shape='sheet'] {
1100
1240
  animation: none;
1101
1241
  }
1242
+
1243
+ /* Under reduced motion the shell draws the new shape at once
1244
+ (`usePresence`), so no phase starts; these hold even if one did. */
1245
+ .crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-body,
1246
+ .crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-foot,
1247
+ .crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-status,
1248
+ .crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-head .crewlet-brand__name,
1249
+ .crewlet-app-shell[data-rail-motion] .crewlet-app-shell__rail-head .crewlet-brand__context {
1250
+ transition: none;
1251
+ }
1252
+
1253
+ .crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-body,
1254
+ .crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-foot,
1255
+ .crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-status,
1256
+ .crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-head .crewlet-brand__name,
1257
+ .crewlet-app-shell[data-rail-motion='unfold'] .crewlet-app-shell__rail-head .crewlet-brand__context,
1258
+ .crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-body,
1259
+ .crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-foot,
1260
+ .crewlet-app-shell[data-rail-motion='folded'] .crewlet-app-shell__rail-status {
1261
+ animation: none;
1262
+ }
1102
1263
  }
1103
1264
 
1104
1265
  /* ── the account row ───────────────────────────────────────────────────── */
@@ -1,7 +1,8 @@
1
- export { ArrangeList, DEFAULT_ARRANGE_LABELS } from '../chunk-WT3B76MG.js';
1
+ export { ArrangeList, DEFAULT_ARRANGE_LABELS } from '../chunk-XTJHMP3W.js';
2
2
  import '../chunk-3XDT5ZWL.js';
3
- import '../chunk-MPVMB2DV.js';
3
+ import '../chunk-BVML4UVB.js';
4
4
  import '../chunk-YQ7Q52XU.js';
5
+ import '../chunk-YJQXESOJ.js';
5
6
  import '../chunk-O7N6W52M.js';
6
7
  import '../chunk-PGCLHYVP.js';
7
8
  import '../chunk-TUEM2XIW.js';
@@ -1,13 +1,15 @@
1
- export { ARTIFACT_BAR_LABELS, ArtifactBar, ArtifactVersionChip } from '../chunk-XY4O2XMR.js';
1
+ export { ARTIFACT_BAR_LABELS, ArtifactBar, ArtifactVersionChip } from '../chunk-HKUZ2GYX.js';
2
2
  import '../chunk-36WK24AI.js';
3
- import '../chunk-GZVAZ3LL.js';
4
- import '../chunk-HCUECVZ3.js';
3
+ import '../chunk-AZYE7NR4.js';
4
+ import '../chunk-MVKUE4FI.js';
5
5
  import '../chunk-EGMQURBR.js';
6
6
  import '../chunk-CYQBDZ6M.js';
7
7
  import '../chunk-AVL52EME.js';
8
8
  import '../chunk-RSKW25Y5.js';
9
- import '../chunk-3QQIGMY3.js';
10
- import '../chunk-YOJAGKTS.js';
9
+ import '../chunk-7ZSEUO5Q.js';
10
+ import '../chunk-HTS5RJ7S.js';
11
+ import '../chunk-TGGYSQRD.js';
12
+ import '../chunk-L72URIHR.js';
11
13
  import '../chunk-CMAZZY2I.js';
12
14
  import '../chunk-DGXZ635L.js';
13
15
  import '../chunk-XSPCITPN.js';
@@ -1,4 +1,4 @@
1
- export { ArtifactCard, ArtifactCardSkeleton, ArtifactPreviewGlyph } from '../chunk-2H6YDUR5.js';
1
+ export { ArtifactCard, ArtifactCardSkeleton, ArtifactPreviewGlyph } from '../chunk-C4JTX25K.js';
2
2
  import '../chunk-I4IUX3JF.js';
3
3
  import '../chunk-HF5L56YQ.js';
4
4
  import '../chunk-EJNJMHQG.js';
@@ -7,9 +7,9 @@ import '../chunk-U2IQNDDR.js';
7
7
  import '../chunk-AV2DXAEL.js';
8
8
  import '../chunk-IRONPJB4.js';
9
9
  import '../chunk-XZY6S3UC.js';
10
- import '../chunk-ZB3E2Z4Y.js';
11
- import '../chunk-DOY3KC6I.js';
10
+ import '../chunk-J5T5TDM2.js';
12
11
  import '../chunk-YQ7Q52XU.js';
12
+ import '../chunk-DOY3KC6I.js';
13
13
  export { ARTIFACT_KINDS, ArtifactKindGlyph } from '../chunk-RSKW25Y5.js';
14
14
  import '../chunk-O7N6W52M.js';
15
15
  import '../chunk-PGCLHYVP.js';
@@ -1,3 +1,3 @@
1
- export { ArtifactKindGround, ArtifactKindIllustration, ArtifactKindTile } from '../chunk-ZB3E2Z4Y.js';
1
+ export { ArtifactKindGround, ArtifactKindIllustration, ArtifactKindTile } from '../chunk-J5T5TDM2.js';
2
2
  import '../chunk-UT6CW3C7.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -9,10 +9,10 @@
9
9
  * its own, imported by each surface that tints, because the glyph's module
10
10
  * carries no stylesheet (a frame that draws one glyph takes nothing else).
11
11
  */
12
- .crewlet-kind--doc { --crewlet-kind-hue: var(--color-artifact-kind-doc); --crewlet-kind-fill: var(--color-artifact-kind-doc-fill); --crewlet-kind-line: var(--color-artifact-kind-doc-line); --crewlet-kind-ink: var(--color-artifact-kind-doc-ink); --crewlet-kind-ground: var(--color-artifact-kind-doc-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-doc-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-doc-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-doc-glow); }
13
- .crewlet-kind--slides { --crewlet-kind-hue: var(--color-artifact-kind-slides); --crewlet-kind-fill: var(--color-artifact-kind-slides-fill); --crewlet-kind-line: var(--color-artifact-kind-slides-line); --crewlet-kind-ink: var(--color-artifact-kind-slides-ink); --crewlet-kind-ground: var(--color-artifact-kind-slides-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-slides-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-slides-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-slides-glow); }
14
- .crewlet-kind--design { --crewlet-kind-hue: var(--color-artifact-kind-design); --crewlet-kind-fill: var(--color-artifact-kind-design-fill); --crewlet-kind-line: var(--color-artifact-kind-design-line); --crewlet-kind-ink: var(--color-artifact-kind-design-ink); --crewlet-kind-ground: var(--color-artifact-kind-design-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-design-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-design-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-design-glow); }
15
- .crewlet-kind--dashboard { --crewlet-kind-hue: var(--color-artifact-kind-dashboard); --crewlet-kind-fill: var(--color-artifact-kind-dashboard-fill); --crewlet-kind-line: var(--color-artifact-kind-dashboard-line); --crewlet-kind-ink: var(--color-artifact-kind-dashboard-ink); --crewlet-kind-ground: var(--color-artifact-kind-dashboard-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-dashboard-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-dashboard-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-dashboard-glow); }
16
- .crewlet-kind--html { --crewlet-kind-hue: var(--color-artifact-kind-html); --crewlet-kind-fill: var(--color-artifact-kind-html-fill); --crewlet-kind-line: var(--color-artifact-kind-html-line); --crewlet-kind-ink: var(--color-artifact-kind-html-ink); --crewlet-kind-ground: var(--color-artifact-kind-html-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-html-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-html-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-html-glow); }
17
- .crewlet-kind--brand { --crewlet-kind-hue: var(--color-artifact-kind-brand); --crewlet-kind-fill: var(--color-artifact-kind-brand-fill); --crewlet-kind-line: var(--color-artifact-kind-brand-line); --crewlet-kind-ink: var(--color-artifact-kind-brand-ink); --crewlet-kind-ground: var(--color-artifact-kind-brand-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-brand-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-brand-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-brand-glow); }
18
- .crewlet-kind--sheet { --crewlet-kind-hue: var(--color-artifact-kind-sheet); --crewlet-kind-fill: var(--color-artifact-kind-sheet-fill); --crewlet-kind-line: var(--color-artifact-kind-sheet-line); --crewlet-kind-ink: var(--color-artifact-kind-sheet-ink); --crewlet-kind-ground: var(--color-artifact-kind-sheet-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-sheet-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-sheet-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-sheet-glow); }
12
+ .crewlet-kind--doc { --crewlet-kind-hue: var(--color-artifact-kind-doc); --crewlet-kind-fill: var(--color-artifact-kind-doc-fill); --crewlet-kind-line: var(--color-artifact-kind-doc-line); --crewlet-kind-ink: var(--color-artifact-kind-doc-ink); --crewlet-kind-ground: var(--color-artifact-kind-doc-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-doc-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-doc-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-doc-glow); --crewlet-kind-edge: var(--color-artifact-kind-doc-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-doc-edge-strong); }
13
+ .crewlet-kind--slides { --crewlet-kind-hue: var(--color-artifact-kind-slides); --crewlet-kind-fill: var(--color-artifact-kind-slides-fill); --crewlet-kind-line: var(--color-artifact-kind-slides-line); --crewlet-kind-ink: var(--color-artifact-kind-slides-ink); --crewlet-kind-ground: var(--color-artifact-kind-slides-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-slides-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-slides-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-slides-glow); --crewlet-kind-edge: var(--color-artifact-kind-slides-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-slides-edge-strong); }
14
+ .crewlet-kind--design { --crewlet-kind-hue: var(--color-artifact-kind-design); --crewlet-kind-fill: var(--color-artifact-kind-design-fill); --crewlet-kind-line: var(--color-artifact-kind-design-line); --crewlet-kind-ink: var(--color-artifact-kind-design-ink); --crewlet-kind-ground: var(--color-artifact-kind-design-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-design-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-design-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-design-glow); --crewlet-kind-edge: var(--color-artifact-kind-design-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-design-edge-strong); }
15
+ .crewlet-kind--dashboard { --crewlet-kind-hue: var(--color-artifact-kind-dashboard); --crewlet-kind-fill: var(--color-artifact-kind-dashboard-fill); --crewlet-kind-line: var(--color-artifact-kind-dashboard-line); --crewlet-kind-ink: var(--color-artifact-kind-dashboard-ink); --crewlet-kind-ground: var(--color-artifact-kind-dashboard-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-dashboard-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-dashboard-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-dashboard-glow); --crewlet-kind-edge: var(--color-artifact-kind-dashboard-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-dashboard-edge-strong); }
16
+ .crewlet-kind--html { --crewlet-kind-hue: var(--color-artifact-kind-html); --crewlet-kind-fill: var(--color-artifact-kind-html-fill); --crewlet-kind-line: var(--color-artifact-kind-html-line); --crewlet-kind-ink: var(--color-artifact-kind-html-ink); --crewlet-kind-ground: var(--color-artifact-kind-html-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-html-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-html-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-html-glow); --crewlet-kind-edge: var(--color-artifact-kind-html-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-html-edge-strong); }
17
+ .crewlet-kind--brand { --crewlet-kind-hue: var(--color-artifact-kind-brand); --crewlet-kind-fill: var(--color-artifact-kind-brand-fill); --crewlet-kind-line: var(--color-artifact-kind-brand-line); --crewlet-kind-ink: var(--color-artifact-kind-brand-ink); --crewlet-kind-ground: var(--color-artifact-kind-brand-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-brand-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-brand-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-brand-glow); --crewlet-kind-edge: var(--color-artifact-kind-brand-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-brand-edge-strong); }
18
+ .crewlet-kind--sheet { --crewlet-kind-hue: var(--color-artifact-kind-sheet); --crewlet-kind-fill: var(--color-artifact-kind-sheet-fill); --crewlet-kind-line: var(--color-artifact-kind-sheet-line); --crewlet-kind-ink: var(--color-artifact-kind-sheet-ink); --crewlet-kind-ground: var(--color-artifact-kind-sheet-ground); --crewlet-kind-ground-strong: var(--color-artifact-kind-sheet-ground-strong); --crewlet-kind-ground-end: var(--color-artifact-kind-sheet-ground-end); --crewlet-kind-glow: var(--color-artifact-kind-sheet-glow); --crewlet-kind-edge: var(--color-artifact-kind-sheet-edge); --crewlet-kind-edge-strong: var(--color-artifact-kind-sheet-edge-strong); }
@@ -1,4 +1,4 @@
1
- export { ArtifactMakeRow } from '../chunk-MVMVMHYI.js';
1
+ export { ArtifactMakeRow } from '../chunk-HDEKHP65.js';
2
2
  import '../chunk-RSKW25Y5.js';
3
3
  import '../chunk-2YTOOH3A.js';
4
4
  import '../chunk-UT6CW3C7.js';
@@ -1,4 +1,4 @@
1
- export { ArtifactNameCell } from '../chunk-C46DDVTK.js';
1
+ export { ArtifactNameCell } from '../chunk-LTD7KLOU.js';
2
2
  import '../chunk-RSKW25Y5.js';
3
3
  import '../chunk-UT6CW3C7.js';
4
4
  import '../chunk-ODEQTPFM.js';
@@ -1,8 +1,8 @@
1
- export { AuthLayout } from '../chunk-6IOQWMYJ.js';
2
- import '../chunk-GVPUCEWH.js';
1
+ export { AuthLayout } from '../chunk-BN5FEJL5.js';
2
+ import '../chunk-KXWJJWBD.js';
3
3
  import '../chunk-U2IQNDDR.js';
4
4
  import '../chunk-AV2DXAEL.js';
5
- import '../chunk-ISQANI6Q.js';
5
+ import '../chunk-JLOESTT2.js';
6
6
  import '../chunk-D2GT3CR4.js';
7
7
  import '../chunk-PQADV6P6.js';
8
8
  import '../chunk-UT6CW3C7.js';
@@ -1,14 +1,15 @@
1
- export { AvatarPicker } from '../chunk-KJR5X4II.js';
2
- import '../chunk-LSOR77RZ.js';
3
- import '../chunk-SM4P2SHB.js';
1
+ export { AvatarPicker } from '../chunk-22CU7V4J.js';
2
+ import '../chunk-SHH7UD5U.js';
3
+ import '../chunk-EC6EUIAD.js';
4
4
  import '../chunk-AYKXMIOR.js';
5
5
  import '../chunk-LNQSNXGJ.js';
6
6
  import '../chunk-XZY6S3UC.js';
7
- import '../chunk-GZVAZ3LL.js';
8
- import '../chunk-HCUECVZ3.js';
7
+ import '../chunk-AZYE7NR4.js';
8
+ import '../chunk-MVKUE4FI.js';
9
9
  import '../chunk-EGMQURBR.js';
10
10
  import '../chunk-CYQBDZ6M.js';
11
- import '../chunk-YOJAGKTS.js';
11
+ import '../chunk-TGGYSQRD.js';
12
+ import '../chunk-L72URIHR.js';
12
13
  import '../chunk-DGXZ635L.js';
13
14
  import '../chunk-XSPCITPN.js';
14
15
  import '../chunk-OMV5W53A.js';