@crewlethq/ui 0.32.0 → 0.34.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 (292) hide show
  1. package/README.md +149 -5
  2. package/dist/AccessDeniedCard/AccessDeniedCard.d.ts +5 -0
  3. package/dist/AccessDeniedCard/index.js +1 -5
  4. package/dist/AccessDeniedCard-QVNDMT46.css +8 -0
  5. package/dist/AppShell/index.js +4 -4
  6. package/dist/{AppShell-GCM4TDVY.css → AppShell-JTSEOA57.css} +3 -1
  7. package/dist/ArrangeGroup/ArrangeGroup.d.ts +16 -1
  8. package/dist/ArrangeGroup/index.d.ts +1 -1
  9. package/dist/ArrangeGroup/index.js +1 -1
  10. package/dist/{ArrangeGroup-GY5YMP6E.css → ArrangeGroup-KRWWOJKR.css} +43 -0
  11. package/dist/ArrangeList/index.js +2 -2
  12. package/dist/ArtifactBar/index.js +14 -12
  13. package/dist/{ArtifactBar-MLMJHWY6.css → ArtifactBar-C462VD4C.css} +8 -3
  14. package/dist/ArtifactCard/ArtifactCard.d.ts +64 -6
  15. package/dist/ArtifactCard/index.d.ts +2 -2
  16. package/dist/ArtifactCard/index.js +6 -4
  17. package/dist/ArtifactCard-XHRLAL7C.css +289 -0
  18. package/dist/ArtifactCover/index.js +8 -6
  19. package/dist/ArtifactIcon/index.js +7 -5
  20. package/dist/ArtifactKindIllustration/ArtifactKindIllustration.d.ts +53 -0
  21. package/dist/ArtifactKindIllustration/index.d.ts +3 -0
  22. package/dist/ArtifactKindIllustration/index.js +3 -0
  23. package/dist/ArtifactKindIllustration-4NG6IE3C.css +211 -0
  24. package/dist/ArtifactPanel/ArtifactPanel.d.ts +6 -2
  25. package/dist/ArtifactPanel/index.js +1 -1
  26. package/dist/{ArtifactPanel-YFXT5O77.css → ArtifactPanel-HW3SU7CP.css} +25 -7
  27. package/dist/Avatar/Avatar.d.ts +6 -4
  28. package/dist/Avatar/index.js +2 -2
  29. package/dist/AvatarPicker/index.js +8 -8
  30. package/dist/Callout/index.js +1 -1
  31. package/dist/{Callout-SXXK4B5R.css → Callout-ZAVG3P66.css} +46 -6
  32. package/dist/Canvas/Canvas.d.ts +33 -2
  33. package/dist/Canvas/index.d.ts +1 -1
  34. package/dist/Canvas/index.js +4 -4
  35. package/dist/{Canvas-LRVNW7XN.css → Canvas-VUG2HLZK.css} +23 -0
  36. package/dist/CanvasBoard/CanvasBoard.d.ts +38 -3
  37. package/dist/CanvasBoard/budget.d.ts +9 -3
  38. package/dist/CanvasBoard/index.d.ts +2 -2
  39. package/dist/CanvasBoard/index.js +7 -7
  40. package/dist/{CanvasBoard-MBZVBWDO.css → CanvasBoard-5NNSKY6A.css} +127 -6
  41. package/dist/CanvasToolbar/index.js +5 -5
  42. package/dist/{CanvasToolbar-AE5MXH7T.css → CanvasToolbar-EM5EVZED.css} +4 -2
  43. package/dist/ChangeMark/index.js +4 -4
  44. package/dist/CharacterPicker/index.js +2 -2
  45. package/dist/Charts/ActivityStrip.d.ts +16 -1
  46. package/dist/Charts/BarList.d.ts +6 -0
  47. package/dist/Charts/ChartEmpty.d.ts +33 -0
  48. package/dist/Charts/Legend.d.ts +6 -0
  49. package/dist/Charts/StackedBar.d.ts +4 -1
  50. package/dist/Charts/StackedColumns.d.ts +14 -3
  51. package/dist/Charts/TimeSeries.d.ts +11 -1
  52. package/dist/Charts/index.d.ts +2 -0
  53. package/dist/Charts/index.js +1 -1
  54. package/dist/{Charts-RY4JN5FC.css → Charts-MBJG72BS.css} +140 -16
  55. package/dist/Checkbox/index.js +1 -1
  56. package/dist/{Checkbox-5UORUG3F.css → Checkbox-ALWG3WV2.css} +11 -0
  57. package/dist/CommandPalette/index.js +3 -3
  58. package/dist/{CommandPalette-HBTNKHZQ.css → CommandPalette-7CFGVBND.css} +4 -0
  59. package/dist/CommentThread/index.js +5 -5
  60. package/dist/Container/index.js +1 -1
  61. package/dist/{Container-3TSKMGNI.css → Container-34BAKG7B.css} +3 -1
  62. package/dist/{DashboardCover-RMINBODB.css → DashboardCover-KYGYMRKW.css} +42 -9
  63. package/dist/DataTable/index.js +5 -5
  64. package/dist/{DataTable-WZK3V62B.css → DataTable-NL2YWAIA.css} +4 -1
  65. package/dist/DataView/index.js +8 -8
  66. package/dist/DateTimePicker/index.js +3 -3
  67. package/dist/DocTabsEditor/DocTabsEditor.d.ts +34 -21
  68. package/dist/DocTabsEditor/index.js +4 -1
  69. package/dist/DocTabsEditor-4M452LNS.css +189 -0
  70. package/dist/Document/Document.d.ts +18 -1
  71. package/dist/Document/index.d.ts +2 -2
  72. package/dist/Document/index.js +1 -1
  73. package/dist/{Document-G3YTZIUL.css → Document-JUGCSQ4L.css} +78 -5
  74. package/dist/EditingStatus/index.js +1 -1
  75. package/dist/{EditingStatus-L6THUAN7.css → EditingStatus-NNA2CKIL.css} +17 -4
  76. package/dist/{Editor-YWBUJAQU.js → Editor-UUZ7XKCU.js} +5 -5
  77. package/dist/EntityChip/index.js +3 -3
  78. package/dist/FactList/index.js +3 -3
  79. package/dist/FollowBanner/index.js +3 -3
  80. package/dist/Fullscreen/index.d.ts +1 -0
  81. package/dist/Fullscreen/index.js +1 -1
  82. package/dist/Fullscreen/useIdle.d.ts +16 -0
  83. package/dist/HuePicker/index.js +3 -3
  84. package/dist/ImageUpload/index.js +3 -3
  85. package/dist/Layer/index.d.ts +1 -1
  86. package/dist/Layer/index.js +1 -1
  87. package/dist/Layer/place.d.ts +18 -0
  88. package/dist/LayersList/LayersList.d.ts +57 -0
  89. package/dist/LayersList/index.d.ts +3 -0
  90. package/dist/LayersList/index.js +3 -0
  91. package/dist/LayersList-NQZEIPZB.css +82 -0
  92. package/dist/LinkInterstitial/index.js +4 -4
  93. package/dist/ListInput/index.js +1 -1
  94. package/dist/LivePreview/LivePreview.d.ts +83 -0
  95. package/dist/LivePreview/budget.d.ts +50 -0
  96. package/dist/LivePreview/index.d.ts +5 -0
  97. package/dist/LivePreview/index.js +2 -0
  98. package/dist/LivePreview-SRO7KHO4.css +65 -0
  99. package/dist/Markdown/index.js +1 -1
  100. package/dist/MarkdownEditor/index.js +5 -5
  101. package/dist/MediaMatch/index.d.ts +1 -0
  102. package/dist/MediaMatch/index.js +1 -0
  103. package/dist/MediaMatch/useMediaMatch.d.ts +19 -0
  104. package/dist/Menu/index.js +2 -2
  105. package/dist/MergeConflicts/index.js +4 -4
  106. package/dist/Modal/index.js +2 -2
  107. package/dist/{Modal-XOSV6FAH.css → Modal-7MWRCWAI.css} +30 -0
  108. package/dist/Note/index.js +1 -1
  109. package/dist/{Note-ONSKKTOA.css → Note-WI5MLZOO.css} +13 -0
  110. package/dist/OrgLabel/index.js +3 -3
  111. package/dist/OrgNode/index.js +4 -4
  112. package/dist/OrgTable/index.js +7 -7
  113. package/dist/PeopleRail/index.js +3 -3
  114. package/dist/Popover/index.js +2 -2
  115. package/dist/PresenceStack/index.js +3 -3
  116. package/dist/{PresenceStack-QSXQJND5.css → PresenceStack-FJJQVH74.css} +11 -3
  117. package/dist/PresenterView/PresenterView.d.ts +3 -0
  118. package/dist/PresenterView/index.js +5 -3
  119. package/dist/PresenterView-T3EXIQ5S.css +147 -0
  120. package/dist/Principal/index.js +3 -3
  121. package/dist/PrincipalPicker/index.js +4 -4
  122. package/dist/RichEditor/index.js +5 -5
  123. package/dist/RichEditor/schema.d.ts +1 -1
  124. package/dist/RichEditorMarkdown/index.js +3 -3
  125. package/dist/SandboxedFrame/SandboxedFrame.d.ts +44 -2
  126. package/dist/SandboxedFrame/index.d.ts +2 -2
  127. package/dist/SandboxedFrame/index.js +3 -3
  128. package/dist/SandboxedFrame-P5NASXB7.css +72 -0
  129. package/dist/Section/index.js +1 -1
  130. package/dist/{Section-QR3ILQVK.css → Section-O5AHGSOG.css} +28 -5
  131. package/dist/SegmentedControl/index.js +3 -3
  132. package/dist/Select/Select.d.ts +10 -0
  133. package/dist/Select/index.d.ts +1 -1
  134. package/dist/Select/index.js +2 -2
  135. package/dist/{Select-2P7AWUE4.css → Select-A54YS5EP.css} +29 -0
  136. package/dist/ShareDialog/ShareDialog.d.ts +10 -0
  137. package/dist/ShareDialog/index.js +9 -9
  138. package/dist/{ShareDialog-YZ4F37MW.css → ShareDialog-4QDCBWMH.css} +12 -0
  139. package/dist/SheetGrid/SheetGrid.d.ts +7 -3
  140. package/dist/SheetGrid/index.js +8 -8
  141. package/dist/{SheetGrid-J3TKKXZL.css → SheetGrid-GDPCCZ4V.css} +154 -14
  142. package/dist/SheetModel/fit.d.ts +34 -0
  143. package/dist/SheetModel/index.d.ts +1 -0
  144. package/dist/SheetModel/index.js +1 -1
  145. package/dist/SheetModel/labels.d.ts +1 -1
  146. package/dist/Shortcut/index.js +1 -1
  147. package/dist/Skeleton/Skeleton.d.ts +2 -1
  148. package/dist/Skeleton/index.js +1 -1
  149. package/dist/SlideCompare/SlideCompare.d.ts +6 -1
  150. package/dist/SlideCompare/index.js +3 -3
  151. package/dist/{SlideCompare-MGM3U2ME.css → SlideCompare-HTCMPQFY.css} +36 -3
  152. package/dist/SlideFilmstrip/SlideFilmstrip.d.ts +14 -3
  153. package/dist/SlideFilmstrip/index.js +3 -3
  154. package/dist/{SlideFilmstrip-BCLNAHFX.css → SlideFilmstrip-5U6Z55GS.css} +63 -2
  155. package/dist/SlideGrid/index.js +3 -3
  156. package/dist/{SlideGrid-RT6QEQEE.css → SlideGrid-S4LTJ4UU.css} +9 -5
  157. package/dist/SlideNav/SlideNav.d.ts +49 -0
  158. package/dist/SlideNav/index.d.ts +3 -0
  159. package/dist/SlideNav/index.js +4 -0
  160. package/dist/SlideNav-BLFJF6AH.css +53 -0
  161. package/dist/SlideStage/SlideStage.d.ts +9 -1
  162. package/dist/SlideStage/index.js +2 -2
  163. package/dist/{SlideStage-KGRRALXR.css → SlideStage-S2FISF4C.css} +23 -0
  164. package/dist/StatCard/StatCard.d.ts +16 -1
  165. package/dist/StatCard/index.js +1 -1
  166. package/dist/{StatCard-KPAFD4E2.css → StatCard-4T7TMWMN.css} +40 -13
  167. package/dist/Switcher/index.js +6 -6
  168. package/dist/TableCells/index.js +3 -3
  169. package/dist/Tabs/Tabs.d.ts +21 -4
  170. package/dist/Tabs/index.js +1 -1
  171. package/dist/{Tabs-CJGO35BH.css → Tabs-MMZXV5EF.css} +9 -8
  172. package/dist/TagsInput/index.js +1 -1
  173. package/dist/ThemeSwitcher/index.js +4 -4
  174. package/dist/TimeWindowPicker/index.js +4 -4
  175. package/dist/Toaster/index.js +2 -2
  176. package/dist/{Toaster-EOOOTSJT.css → Toaster-C6BQ7L6I.css} +10 -1
  177. package/dist/Toolbar/index.js +1 -1
  178. package/dist/Tooltip/Tooltip.d.ts +12 -1
  179. package/dist/Tooltip/index.d.ts +1 -1
  180. package/dist/Tooltip/index.js +2 -2
  181. package/dist/TreeCanvas/index.js +5 -5
  182. package/dist/TreeGrid/index.js +3 -3
  183. package/dist/VersionCompare/index.js +4 -4
  184. package/dist/VersionTimeline/index.js +4 -4
  185. package/dist/WidgetFrame/WidgetFrame.d.ts +8 -1
  186. package/dist/WidgetFrame/index.js +2 -2
  187. package/dist/{WidgetFrame-LRZIL62O.css → WidgetFrame-BTFW3CRK.css} +49 -5
  188. package/dist/{chunk-WJDQ7XQA.js → chunk-2QEDJSJC.js} +1 -1
  189. package/dist/{chunk-VYDFB6PJ.js → chunk-356JNSER.js} +50 -17
  190. package/dist/{chunk-2HIOJ4YZ.js → chunk-3EB2AV3H.js} +2 -3
  191. package/dist/{chunk-ODT5H4MN.js → chunk-3LYWD3BO.js} +2 -2
  192. package/dist/{chunk-OTN35CI4.js → chunk-3P4Y5RX6.js} +18 -6
  193. package/dist/{chunk-FAQGGX2Z.js → chunk-3TFDQLW3.js} +1 -1
  194. package/dist/{chunk-E6EWK5YY.js → chunk-3Y56GQPM.js} +3 -3
  195. package/dist/{chunk-A4E5YLXO.js → chunk-4B6LSFDS.js} +1 -1
  196. package/dist/{chunk-UAN5NE7M.js → chunk-5AQBPHZD.js} +1 -1
  197. package/dist/{chunk-CJKMURZO.js → chunk-5SZGKSGL.js} +1 -1
  198. package/dist/chunk-6VOS2GMB.js +54 -0
  199. package/dist/{chunk-QWOPX2MN.js → chunk-6ZJ3N7QI.js} +7 -5
  200. package/dist/{chunk-3ZAFJ4GK.js → chunk-7Q7WDXHG.js} +4 -4
  201. package/dist/{chunk-QH3AKP2N.js → chunk-AC22RZKC.js} +2 -2
  202. package/dist/{chunk-UZ6MA2V6.js → chunk-AORVEG5V.js} +2 -2
  203. package/dist/{chunk-ZITJKF6Z.js → chunk-AYB6AYNH.js} +1 -1
  204. package/dist/{chunk-FC4YTTFJ.js → chunk-BQ7AKL2N.js} +5 -5
  205. package/dist/{chunk-Y5NQ2LMS.js → chunk-BY4N65PM.js} +1 -1
  206. package/dist/{chunk-YFW4MTK4.js → chunk-C7DKX453.js} +1 -1
  207. package/dist/{chunk-RCQXUT5K.js → chunk-CCAXYHQS.js} +1 -1
  208. package/dist/{chunk-JQLTG4KH.js → chunk-CCLNGVCM.js} +62 -51
  209. package/dist/{chunk-6AH2XJ3Q.js → chunk-CFAJP777.js} +3 -3
  210. package/dist/{chunk-4KP4RC3O.js → chunk-CI3VPIJN.js} +1 -1
  211. package/dist/{chunk-7T42VQQT.js → chunk-CPEPST4S.js} +1 -1
  212. package/dist/{chunk-AAOH2P6Y.js → chunk-DFK5EQTU.js} +5 -3
  213. package/dist/{chunk-V5IGUXMZ.js → chunk-E4NNGC6X.js} +4 -4
  214. package/dist/{chunk-TGYDROIB.js → chunk-EBCHVFCS.js} +4 -4
  215. package/dist/{chunk-LWXRD6L6.js → chunk-EWAFN2IU.js} +118 -27
  216. package/dist/{chunk-YDBC4DNW.js → chunk-FWYHRU7M.js} +1 -1
  217. package/dist/{chunk-HVNTQ36V.js → chunk-GMU6SQ6B.js} +4 -4
  218. package/dist/{chunk-LIXSV5YI.js → chunk-GPHWCK7M.js} +1 -1
  219. package/dist/{chunk-UQHKFF2N.js → chunk-GPWJCP3U.js} +1 -1
  220. package/dist/{chunk-77DRMDXR.js → chunk-HG5VF3TZ.js} +192 -67
  221. package/dist/{chunk-QVE4GJAT.js → chunk-HJO4WCH6.js} +1 -1
  222. package/dist/{chunk-JI5AVQLA.js → chunk-HOIZ6MIS.js} +1 -1
  223. package/dist/{chunk-I3BSQUKN.js → chunk-HUVG2FFT.js} +1 -1
  224. package/dist/{chunk-VS3KOOOL.js → chunk-ILAEBSLJ.js} +3 -3
  225. package/dist/{chunk-P4BOXB6E.js → chunk-IUD5VA2Z.js} +6 -7
  226. package/dist/{chunk-GR55WT4R.js → chunk-IYO2N5ZH.js} +2 -2
  227. package/dist/{chunk-RWA4H2TV.js → chunk-J6ON5SYE.js} +1 -1
  228. package/dist/{chunk-AMNN4WDX.js → chunk-JBUMD6DS.js} +2 -2
  229. package/dist/{chunk-BWRGFKJP.js → chunk-K3IJQNB7.js} +2 -3
  230. package/dist/{chunk-LFNUH4GY.js → chunk-K4VP6ZKE.js} +1 -1
  231. package/dist/{chunk-ZR5VN5IV.js → chunk-KD2IRYCT.js} +2 -2
  232. package/dist/chunk-KF6YGL4B.js +160 -0
  233. package/dist/{chunk-SKOYC2CF.js → chunk-KK5OYNAF.js} +2 -1
  234. package/dist/{chunk-UB7TJEKZ.js → chunk-KV3ODJXH.js} +6 -7
  235. package/dist/chunk-LL5AFXU7.js +96 -0
  236. package/dist/{chunk-VYOKRN2I.js → chunk-LM3ISVJA.js} +1 -1
  237. package/dist/{chunk-E6CR5PEV.js → chunk-LV4APO72.js} +8 -2
  238. package/dist/{chunk-B4EBHPK3.js → chunk-M5KZX5JE.js} +9 -2
  239. package/dist/{chunk-HMPFGIWM.js → chunk-OMV5W53A.js} +10 -1
  240. package/dist/chunk-ONL54WMH.js +55 -0
  241. package/dist/{chunk-AKEZ3G5V.js → chunk-ONQKKHON.js} +1 -1
  242. package/dist/{chunk-LZHLSQYK.js → chunk-OOWPSBIS.js} +2 -2
  243. package/dist/{chunk-4KWOKX2B.js → chunk-OSKJZNBT.js} +1 -1
  244. package/dist/{chunk-4JUKWWUD.js → chunk-PLDUNXAO.js} +1 -1
  245. package/dist/{chunk-EHQTPVV4.js → chunk-PLTCDSTU.js} +1 -1
  246. package/dist/{chunk-5OM447RW.js → chunk-PZKHBB7D.js} +1 -1
  247. package/dist/{chunk-VEB5ERRE.js → chunk-QWNVSR6G.js} +2 -2
  248. package/dist/{chunk-IG75YMUN.js → chunk-RTPQDNW3.js} +1 -1
  249. package/dist/{chunk-YEKYVJQR.js → chunk-SGHIAGPR.js} +2 -2
  250. package/dist/{chunk-SVSCLHHI.js → chunk-SZZRIHGT.js} +1 -1
  251. package/dist/{chunk-EBNI36UQ.js → chunk-T46NR3WP.js} +3 -3
  252. package/dist/{chunk-FPS3JIPQ.js → chunk-TC7DJTXI.js} +1 -1
  253. package/dist/{chunk-W5J7R5EB.js → chunk-TEUQWOWZ.js} +1 -1
  254. package/dist/chunk-THROPJZC.js +115 -0
  255. package/dist/{chunk-IDBHX5SR.js → chunk-TRQCHF2F.js} +1 -1
  256. package/dist/{chunk-M3LUNN7F.js → chunk-TYKQ33CL.js} +13 -2
  257. package/dist/chunk-UDQW6UK7.js +129 -0
  258. package/dist/{chunk-WTNUVQVI.js → chunk-UHJQDFKQ.js} +1 -1
  259. package/dist/{chunk-VVRL27HM.js → chunk-ULPL26BU.js} +2 -2
  260. package/dist/{chunk-EBJREOKS.js → chunk-UXXJDIYE.js} +4 -4
  261. package/dist/{chunk-5LUI3WQP.js → chunk-V43UVX4H.js} +1 -1
  262. package/dist/{chunk-W4XYY73O.js → chunk-VHZ3AXJD.js} +1 -1
  263. package/dist/{chunk-NHBP2XS5.js → chunk-VI5FWDZW.js} +51 -3
  264. package/dist/{chunk-HJEVSQN6.js → chunk-VL6CUNSX.js} +11 -5
  265. package/dist/{chunk-XDTYBF2F.js → chunk-W5XCNEZC.js} +39 -1
  266. package/dist/{chunk-LDJ3J4TQ.js → chunk-WGD2HX2A.js} +1 -1
  267. package/dist/{chunk-FQCLKD7U.js → chunk-WKEPORNM.js} +1 -1
  268. package/dist/{chunk-PJD2KFHX.js → chunk-WPX6A5BV.js} +38 -13
  269. package/dist/{chunk-I3KKZ2O3.js → chunk-XEGZHHRH.js} +45 -36
  270. package/dist/{chunk-IKB6HFGK.js → chunk-XO7PUL4F.js} +6 -4
  271. package/dist/chunk-XTOVADJU.js +170 -0
  272. package/dist/chunk-XV32RKQZ.js +142 -0
  273. package/dist/{chunk-TBMDMXEX.js → chunk-YA3AWELW.js} +1 -1
  274. package/dist/{chunk-HVIX5ECM.js → chunk-YEVG2X5R.js} +1 -1
  275. package/dist/chunk-YZFLH463.js +215 -0
  276. package/dist/generated/index.d.ts +5 -0
  277. package/dist/generated/index.js +112 -108
  278. package/dist/index.js +112 -108
  279. package/dist/styles.css +1982 -228
  280. package/package.json +3 -3
  281. package/dist/AccessDeniedCard-WXM5DBDZ.css +0 -8
  282. package/dist/ArtifactCard-EXVAEBV6.css +0 -109
  283. package/dist/DocTabsEditor-RCOWHX5J.css +0 -78
  284. package/dist/PresenterView-T2C6ZZ3N.css +0 -103
  285. package/dist/SandboxedFrame-L6HBQZCD.css +0 -50
  286. package/dist/chunk-CRKFL423.js +0 -74
  287. package/dist/chunk-GOSQXEZU.js +0 -102
  288. package/dist/chunk-MBNFJSZS.js +0 -107
  289. package/dist/chunk-RV7SZAHR.js +0 -105
  290. package/dist/chunk-UZ7ZUSLH.js +0 -179
  291. package/dist/utils/useMediaMatch.d.ts +0 -12
  292. /package/dist/{chunk-TF2P3OPS.js → chunk-YCARLYI6.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import './Layer.css';
2
2
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer, } from './stack.js';
3
3
  export type { DismissReason, LayerKind, ModalLayer, ModalLayerOptions, PopupLayer, PopupLayerOptions, } from './stack.js';
4
- export { LAYER_GAP, LAYER_REPOSITION_EVENT, outsideBounds, placePopup, viewportBounds } from './place.js';
4
+ export { LAYER_GAP, LAYER_REPOSITION_EVENT, anchorGone, outsideBounds, placePopup, viewportBounds } from './place.js';
5
5
  export type { Placement, PlacementRect, PlacementSize } from './place.js';
6
6
  export { LayerHost, useLayerContainer } from './LayerHost.js';
7
7
  export type { LayerHostProps } from './LayerHost.js';
@@ -1,3 +1,3 @@
1
- export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, outsideBounds, placePopup, useLayerContainer, viewportBounds } from '../chunk-HMPFGIWM.js';
1
+ export { LAYER_GAP, LAYER_REPOSITION_EVENT, LayerHost, anchorGone, outsideBounds, placePopup, useLayerContainer, viewportBounds } from '../chunk-OMV5W53A.js';
2
2
  export { focusables, isComposing, isModalLayerOpen, layerCount, useBodyScrollLock, useModalLayer, usePopupLayer } from '../chunk-R25RGPUB.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -59,5 +59,23 @@ export declare const LAYER_GAP = 4;
59
59
  export declare function placePopup(anchor: PlacementRect, size: PlacementSize, bounds: PlacementRect, gap?: number, prefer?: 'below' | 'above'): Placement;
60
60
  /** The rectangle of the window itself, for a surface with no layer host. */
61
61
  export declare function viewportBounds(): PlacementRect;
62
+ /**
63
+ * Whether an anchor has left its layer: the ANCHOR'S OWN BOX, in the layer's
64
+ * coordinates, carried entirely outside the layer's whole rectangle (not the
65
+ * gap-inset one a surface is placed in, since an anchor in the gap is at the
66
+ * layer's edge, not off it).
67
+ *
68
+ * ASKED OF THE ANCHOR, never of where the aligned surface would start: an
69
+ * end-aligned panel wider than its trigger's right edge starts left of the
70
+ * layer while the trigger is in plain view, and every surface that asked of
71
+ * that start closed on the frame it opened. Placement clamps such a panel
72
+ * inside the bounds instead.
73
+ */
74
+ export declare function anchorGone(anchor: {
75
+ left: number;
76
+ top: number;
77
+ width: number;
78
+ height: number;
79
+ }, host: PlacementRect, inHost: boolean): boolean;
62
80
  /** Whether an anchor has been carried entirely outside its bounds. */
63
81
  export declare function outsideBounds(anchor: PlacementRect, bounds: PlacementRect): boolean;
@@ -0,0 +1,57 @@
1
+ import type { ReactNode } from 'react';
2
+ /** One entry of the list: what it names and the id it is picked by. */
3
+ export interface LayersListItem {
4
+ id: string;
5
+ label: string;
6
+ }
7
+ export interface LayersListLabels {
8
+ /**
9
+ * An entry's accessible name where the list opens entries (`onOpen`), so a
10
+ * reader hears how: "Hero, press Enter or double-click to open".
11
+ */
12
+ openable: (label: string) => string;
13
+ }
14
+ export declare const LAYERS_LIST_LABELS: LayersListLabels;
15
+ export interface LayersListProps {
16
+ /** The list's accessible name, such as "Boards". */
17
+ label: string;
18
+ items: readonly LayersListItem[];
19
+ /** The entry picked on the surface the list stands beside; null or absent is none. */
20
+ selected?: string | null | undefined;
21
+ /** A press picks an entry: a click, or Space on the one with focus. */
22
+ onSelect?: ((id: string) => void) | undefined;
23
+ /** Enter or a double-click opens an entry. Absent, entries are only picked. */
24
+ onOpen?: ((id: string) => void) | undefined;
25
+ /** What stands over the list, such as its count ("14 boards"). It does not scroll. */
26
+ heading?: ReactNode;
27
+ labels?: Partial<LayersListLabels> | undefined;
28
+ className?: string | undefined;
29
+ }
30
+ /**
31
+ * The list of a canvas's items beside it, as a design tool's layers are: a
32
+ * board picked on the canvas is marked here, and one picked here is picked
33
+ * there. The caller holds the selection and hands it to both.
34
+ *
35
+ * QUIET UNTIL IT IS CURRENT. Entries are one line in the secondary ink; the
36
+ * picked one takes the primary ink and the accent edge every current row in
37
+ * the system takes (the document outline's open entry), and the edge is held
38
+ * on every entry in its resting colour, so nothing moves when the pick does.
39
+ * A long name is cut to one line with the whole of it as the native tip: a
40
+ * layer list is scanned down its left edge, and a name that wrapped made its
41
+ * neighbours hard to find.
42
+ *
43
+ * ITS LETTERS STAND ON ITS CONTAINER'S EDGE. The entries' padding and edge
44
+ * hang into the gutter beside the list, so the names line up with whatever
45
+ * stands above the list (a count, a bar) and only an entry's hover and the
46
+ * current entry's mark reach past that line.
47
+ *
48
+ * ONE TAB STOP. The list is one control: Tab passes it, the arrows and Home
49
+ * and End move inside it without picking (manual activation, so a reader can
50
+ * look along the list without moving the canvas), Space or a click picks,
51
+ * and Enter or a double-click opens. The stop is the picked entry, or the
52
+ * one focus last left.
53
+ *
54
+ * IT SCROLLS ON ITS OWN, under a heading that stays, when it holds more
55
+ * entries than the height it is given; it never grows the page.
56
+ */
57
+ export declare function LayersList({ label, items, selected, onSelect, onOpen, heading, labels, className, }: LayersListProps): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import './LayersList.css';
2
+ export { LayersList, LAYERS_LIST_LABELS } from './LayersList.js';
3
+ export type { LayersListItem, LayersListLabels, LayersListProps } from './LayersList.js';
@@ -0,0 +1,3 @@
1
+ export { LAYERS_LIST_LABELS, LayersList } from '../chunk-ONL54WMH.js';
2
+ import '../chunk-RKKO7QHH.js';
3
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,82 @@
1
+ /*
2
+ * A canvas's list of layers (LayersList.tsx): a heading that stays, over one
3
+ * line per entry that scrolls on its own.
4
+ */
5
+
6
+ .crewlet-layers-list {
7
+ display: flex;
8
+ flex-direction: column;
9
+ gap: var(--spacing-2);
10
+ min-width: 0;
11
+ min-height: 0;
12
+ }
13
+
14
+ .crewlet-layers-list__heading {
15
+ flex: none;
16
+ color: var(--color-text-tertiary);
17
+ font-family: var(--font-family-sans);
18
+ font-size: var(--font-size-compact);
19
+ line-height: var(--font-line-height-normal);
20
+ }
21
+
22
+ /*
23
+ * THE ENTRIES HANG INTO THE GUTTER by their own padding and edge, so their
24
+ * letters stand on the list's edge, in line with the heading above them.
25
+ */
26
+ .crewlet-layers-list__items {
27
+ flex: 1 1 auto;
28
+ min-height: 0;
29
+ margin: 0;
30
+ margin-inline-start: calc(-1 * (var(--spacing-2) + 2px));
31
+ padding: 0;
32
+ overflow-y: auto;
33
+ list-style: none;
34
+ }
35
+
36
+ /*
37
+ * The current entry's mark is held on every entry in the resting ink, as the
38
+ * document outline's is, so nothing moves when the pick does. The radius is
39
+ * the control step's on the end the mark does not take.
40
+ */
41
+ .crewlet-layers-list__item {
42
+ display: block;
43
+ box-sizing: border-box;
44
+ width: 100%;
45
+ overflow: hidden;
46
+ margin: 0;
47
+ padding: var(--spacing-1) var(--spacing-2);
48
+ border: none;
49
+ border-inline-start: 2px solid transparent;
50
+ border-start-start-radius: 0;
51
+ border-end-start-radius: 0;
52
+ border-start-end-radius: var(--radius-md);
53
+ border-end-end-radius: var(--radius-md);
54
+ background: transparent;
55
+ color: var(--color-text-secondary);
56
+ font-family: var(--font-family-sans);
57
+ font-size: var(--font-size-compact);
58
+ font-weight: var(--font-weight-regular);
59
+ line-height: var(--font-line-height-normal);
60
+ text-align: start;
61
+ text-overflow: ellipsis;
62
+ white-space: nowrap;
63
+ cursor: pointer;
64
+ }
65
+
66
+ .crewlet-layers-list__item:hover {
67
+ background: var(--color-surface-hover);
68
+ color: var(--color-text-primary);
69
+ }
70
+
71
+ /* The accent edge every current row in the system takes, in the primary ink.
72
+ A border, so forced colours keep it. */
73
+ .crewlet-layers-list__item[aria-current='true'] {
74
+ border-inline-start-color: var(--color-brand-accent);
75
+ color: var(--color-text-primary);
76
+ }
77
+
78
+ /* The ring lies inside the entry, where the scroller beside it cannot cut it. */
79
+ .crewlet-layers-list__item:focus-visible {
80
+ outline: 2px solid var(--color-focus);
81
+ outline-offset: var(--size-focus-ring-inset-offset);
82
+ }
@@ -1,9 +1,9 @@
1
- export { LinkInterstitial, openExternal } from '../chunk-ZR5VN5IV.js';
2
- import '../chunk-I3KKZ2O3.js';
1
+ export { LinkInterstitial, openExternal } from '../chunk-KD2IRYCT.js';
3
2
  import '../chunk-5CLW2CXT.js';
4
- import '../chunk-SVSCLHHI.js';
3
+ import '../chunk-XEGZHHRH.js';
4
+ import '../chunk-SZZRIHGT.js';
5
5
  import '../chunk-PQADV6P6.js';
6
- import '../chunk-HMPFGIWM.js';
6
+ import '../chunk-OMV5W53A.js';
7
7
  import '../chunk-R25RGPUB.js';
8
8
  import '../chunk-OG6CL3EB.js';
9
9
  import '../chunk-4FQT6ZAY.js';
@@ -2,7 +2,7 @@ export { ListInput } from '../chunk-Z6VW6CXX.js';
2
2
  import '../chunk-6QFAK2WV.js';
3
3
  import '../chunk-SMBKXWML.js';
4
4
  import '../chunk-PQADV6P6.js';
5
- import '../chunk-HMPFGIWM.js';
5
+ import '../chunk-OMV5W53A.js';
6
6
  import '../chunk-R25RGPUB.js';
7
7
  import '../chunk-RSAQOKH3.js';
8
8
  import '../chunk-4FQT6ZAY.js';
@@ -0,0 +1,83 @@
1
+ import { type ReactNode } from 'react';
2
+ /**
3
+ * Real content drawn small: a live, scaled-down snapshot of a page, a grid or
4
+ * a frame inside a fixed box, the way a gallery card previews what it opens.
5
+ *
6
+ * LAID OUT AT FULL SIZE, THEN SCALED. The content is given `width` CSS pixels
7
+ * to lay itself out in, exactly as it would on its own page, and the whole is
8
+ * scaled down to the box with a CSS transform, so the preview is the page
9
+ * itself at a smaller size and never a second layout of it. Left out, the
10
+ * content fills the box unscaled (a slide stage that scales itself).
11
+ *
12
+ * DRAWN ONLY WHEN IT CAN BE SEEN, AND ONLY SO MANY AT ONCE. The content is
13
+ * mounted while the box is within `rootMargin` of the viewport and the
14
+ * shared budget (`LivePreviewBudgetProvider`, twelve by default) grants it a
15
+ * slot, and unmounted when it scrolls away, giving the slot back. Until the
16
+ * content says it has drawn (`useLivePreview().ready()`), while it waits for a
17
+ * slot, when it failed (`fail()`) and in a browser with no
18
+ * IntersectionObserver, the box shows `fallback`.
19
+ *
20
+ * NEVER INTERACTIVE, NEVER ANNOUNCED. The live layer is `inert`, takes no
21
+ * pointer and is hidden from assistive technology: nothing in it can be
22
+ * focused or clicked, and whatever surrounds the preview (a card's link)
23
+ * names what it shows. The swap from the stand-in to the content is a short
24
+ * fade, and none under `prefers-reduced-motion`.
25
+ */
26
+ /**
27
+ * How long a box stays near the viewport before its content is asked for: a
28
+ * card a reader scrolls to rests longer than this, and one a fling carries
29
+ * past does not.
30
+ */
31
+ export declare const LIVE_PREVIEW_DWELL_MS = 120;
32
+ /** Gives the previews under it a budget of their own, `max` live at once. */
33
+ export declare function LivePreviewBudgetProvider({ max, children }: {
34
+ max?: number | undefined;
35
+ children: ReactNode;
36
+ }): import("react").JSX.Element;
37
+ export interface LivePreviewSignals {
38
+ /** The content has drawn: the stand-in gives way to it. */
39
+ ready: () => void;
40
+ /** The content has nothing to draw or could not draw: the stand-in stays, and the slot is given back. */
41
+ fail: () => void;
42
+ }
43
+ /** What live content tells the preview around it. Outside one, both do nothing. */
44
+ export declare function useLivePreview(): LivePreviewSignals;
45
+ /** Where a preview is in its life. */
46
+ export type LivePreviewState = 'idle' | 'waiting' | 'live' | 'ready' | 'failed';
47
+ export interface LivePreviewProps {
48
+ /** What is drawn small. Mounted only while the preview is live. */
49
+ children: ReactNode;
50
+ /** The stand-in, drawn whenever the content is not. */
51
+ fallback: ReactNode;
52
+ /** The width, in CSS pixels, the content lays itself out at before it is scaled to the box. */
53
+ width?: number | undefined;
54
+ /** How near the viewport the box comes before its content is mounted. */
55
+ rootMargin?: string | undefined;
56
+ /** Nothing live is drawn: the stand-in only (no content to show, or a host that has turned previews off). */
57
+ disabled?: boolean | undefined;
58
+ /** How long the box stays near the viewport before its content is asked for, in ms. */
59
+ dwellMs?: number | undefined;
60
+ /** Told each time the state moves, for a host that measures. */
61
+ onStateChange?: ((state: LivePreviewState) => void) | undefined;
62
+ className?: string | undefined;
63
+ }
64
+ export declare function LivePreview({ children, fallback, width, rootMargin, disabled, dwellMs, onStateChange, className }: LivePreviewProps): import("react").JSX.Element;
65
+ export interface PreviewScaleProps {
66
+ children: ReactNode;
67
+ /** The width, in CSS pixels, the content is laid out at. */
68
+ width: number;
69
+ /** The height it is laid out at. Left out, as tall as the box allows at the scale its width sets. */
70
+ height?: number | undefined;
71
+ /**
72
+ * `width` scales the content to the box's width from its top (the top of a
73
+ * page); `contain` scales it to fit inside the box whole, centred (a board
74
+ * of its own size).
75
+ */
76
+ fit?: 'width' | 'contain' | undefined;
77
+ }
78
+ /**
79
+ * Content laid out at a size of its own and scaled to the box it is drawn in,
80
+ * with a CSS transform: the layout `LivePreview` gives a page, for content
81
+ * that knows its own size only once it has loaded (a design's board).
82
+ */
83
+ export declare function PreviewScale({ children, width, height, fit }: PreviewScaleProps): import("react").JSX.Element;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * How many live previews draw at once: the budget a gallery's cards share.
3
+ *
4
+ * WHY A BUDGET. A live preview is real content drawn small: a page of prose,
5
+ * a grid of cells, a slide, or a sandboxed frame running a page of its own. A
6
+ * gallery of two hundred artifacts that drew every one would run two hundred
7
+ * of them, most never seen. A preview asks for a slot when it comes near the
8
+ * viewport and gives it back when it leaves; past the cap it waits, drawing
9
+ * its stand-in, and is granted a slot the moment one is free, the oldest ask
10
+ * first.
11
+ *
12
+ * Plain bookkeeping with no layout, so it is tested without a browser.
13
+ */
14
+ /**
15
+ * The most previews live at once by default. A gallery at 1440 shows two or
16
+ * three rows of three cards with a row of margin either side, so twelve keeps
17
+ * everything a reader can scroll to in a moment live, and is the number of
18
+ * pages a design's canvas already runs at once (`CANVAS_BOARD_MAX_LIVE`).
19
+ */
20
+ export declare const LIVE_PREVIEW_MAX = 12;
21
+ export interface LivePreviewBudget {
22
+ /** The most slots granted at once. */
23
+ readonly max: number;
24
+ /**
25
+ * Asks for a slot. `grant` is called once, now or when a slot frees. The
26
+ * answer gives the slot back, or withdraws the ask if it was never granted;
27
+ * calling it again does nothing.
28
+ */
29
+ request(grant: () => void): () => void;
30
+ /** Slots held now, for a test or a measurement. */
31
+ live(): number;
32
+ /** Asks waiting now. */
33
+ waiting(): number;
34
+ }
35
+ /**
36
+ * Runs a grant later, and answers how to call it off. The budget hands out
37
+ * at most one slot per call, so a burst of asks (a fast scroll bringing a
38
+ * whole row near at once) mounts one preview per tick rather than all of them
39
+ * in one long task.
40
+ */
41
+ export type LivePreviewSchedule = (run: () => void) => () => void;
42
+ /** Grants now: for a test, and for a host that paces nothing. */
43
+ export declare const immediately: LivePreviewSchedule;
44
+ /**
45
+ * One grant per animation frame, after the frame's own work: the default in a
46
+ * browser, so mounting a row of previews never costs one frame more than one
47
+ * preview does.
48
+ */
49
+ export declare const perFrame: LivePreviewSchedule;
50
+ export declare function createLivePreviewBudget(max?: number, schedule?: LivePreviewSchedule): LivePreviewBudget;
@@ -0,0 +1,5 @@
1
+ import './LivePreview.css';
2
+ export { LIVE_PREVIEW_DWELL_MS, LivePreview, LivePreviewBudgetProvider, PreviewScale, useLivePreview } from './LivePreview.js';
3
+ export type { LivePreviewProps, LivePreviewSignals, LivePreviewState, PreviewScaleProps } from './LivePreview.js';
4
+ export { createLivePreviewBudget, immediately, LIVE_PREVIEW_MAX, perFrame } from './budget.js';
5
+ export type { LivePreviewBudget, LivePreviewSchedule } from './budget.js';
@@ -0,0 +1,2 @@
1
+ export { LIVE_PREVIEW_DWELL_MS, LIVE_PREVIEW_MAX, LivePreview, LivePreviewBudgetProvider, PreviewScale, createLivePreviewBudget, immediately, perFrame, useLivePreview } from '../chunk-KF6YGL4B.js';
2
+ import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,65 @@
1
+ /*
2
+ * A live preview: the stand-in and the live layer stacked in one box. The box
3
+ * takes its size from its parent (a card's preview area), so it fills it and
4
+ * clips whatever the content lays out past its edge.
5
+ */
6
+
7
+ .crewlet-live-preview {
8
+ position: relative;
9
+ display: block;
10
+ width: 100%;
11
+ height: 100%;
12
+ overflow: hidden;
13
+ contain: layout paint;
14
+ }
15
+
16
+ .crewlet-live-preview__fallback {
17
+ position: absolute;
18
+ inset: 0;
19
+ display: flex;
20
+ transition: opacity var(--motion-duration-base) var(--motion-easing-out);
21
+ }
22
+
23
+ .crewlet-live-preview__live {
24
+ position: absolute;
25
+ inset: 0;
26
+ display: block;
27
+ overflow: hidden;
28
+ opacity: 0;
29
+ pointer-events: none;
30
+ user-select: none;
31
+ transition: opacity var(--motion-duration-base) var(--motion-easing-out);
32
+ }
33
+
34
+ /* LAID OUT AT ITS OWN SIZE from the top left corner, and scaled from there:
35
+ to the box's width, its top left the box's, or whole and centred. */
36
+ .crewlet-preview-scale {
37
+ position: absolute;
38
+ inset: 0;
39
+ display: block;
40
+ overflow: hidden;
41
+ }
42
+
43
+ .crewlet-preview-scale__layer {
44
+ position: absolute;
45
+ top: 0;
46
+ left: 0;
47
+ display: block;
48
+ overflow: hidden;
49
+ transform-origin: 0 0;
50
+ }
51
+
52
+ .crewlet-live-preview[data-state='ready'] > .crewlet-live-preview__live {
53
+ opacity: 1;
54
+ }
55
+
56
+ .crewlet-live-preview[data-state='ready'] > .crewlet-live-preview__fallback {
57
+ opacity: 0;
58
+ }
59
+
60
+ @media (prefers-reduced-motion: reduce) {
61
+ .crewlet-live-preview__fallback,
62
+ .crewlet-live-preview__live {
63
+ transition: none;
64
+ }
65
+ }
@@ -1 +1 @@
1
- export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from '../chunk-SKOYC2CF.js';
1
+ export { MARKDOWN_CALLOUT_NAMES, MARKDOWN_CALLOUT_TONES, markdownBreaks, markdownClosesFence, markdownCodeText, markdownFenceOf, markdownHeadingOf, markdownInline, markdownLines, parseMarkdown, parseMarkdownSpans, safeHref } from '../chunk-KK5OYNAF.js';
@@ -1,11 +1,11 @@
1
- export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-LZHLSQYK.js';
1
+ export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-OOWPSBIS.js';
2
2
  import '../chunk-PGRPNDWM.js';
3
- import '../chunk-FQCLKD7U.js';
4
- import '../chunk-RCQXUT5K.js';
5
- import '../chunk-HJEVSQN6.js';
3
+ import '../chunk-WKEPORNM.js';
4
+ import '../chunk-CCAXYHQS.js';
5
+ import '../chunk-VL6CUNSX.js';
6
6
  import '../chunk-RKKO7QHH.js';
7
7
  import '../chunk-BHHIIK3M.js';
8
- import '../chunk-HMPFGIWM.js';
8
+ import '../chunk-OMV5W53A.js';
9
9
  import '../chunk-R25RGPUB.js';
10
10
  import '../chunk-4FQT6ZAY.js';
11
11
  import '../chunk-BZFWDIV6.js';
@@ -0,0 +1 @@
1
+ export { useMediaMatch } from './useMediaMatch.js';
@@ -0,0 +1 @@
1
+ export { useMediaMatch } from '../chunk-RTPQDNW3.js';
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Whether a media query matches now, and again whenever that changes.
3
+ *
4
+ * ONE COPY FOR EVERY CONSUMER. The shell reads it to decide where its rail
5
+ * goes, the switcher whether it opens as a sheet, and an application the one
6
+ * layout decision a stylesheet cannot make (which element a phone draws, not
7
+ * how it is styled); two copies of the subscription would be two answers to
8
+ * "is this a phone" that can disagree for a frame while a window is resized.
9
+ * Anything a media query in a stylesheet CAN decide belongs there instead: a
10
+ * width written in both places is a width that can disagree with itself.
11
+ *
12
+ * READ DURING RENDER, through `useSyncExternalStore`, so the first render
13
+ * already has the answer: a layout decided in an effect paints the wrong
14
+ * shape for a frame and then moves.
15
+ *
16
+ * On the server, and in a browser without `matchMedia`, the answer is `false`:
17
+ * the wide layout is the one that needs no JavaScript to be usable.
18
+ */
19
+ export declare function useMediaMatch(query: string): boolean;
@@ -1,5 +1,5 @@
1
- export { Menu } from '../chunk-2HIOJ4YZ.js';
2
- import '../chunk-HMPFGIWM.js';
1
+ export { Menu } from '../chunk-3EB2AV3H.js';
2
+ import '../chunk-OMV5W53A.js';
3
3
  import '../chunk-R25RGPUB.js';
4
4
  import '../chunk-OG6CL3EB.js';
5
5
  import '../chunk-4FQT6ZAY.js';
@@ -1,7 +1,7 @@
1
- export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-RWA4H2TV.js';
2
- import '../chunk-FQCLKD7U.js';
3
- import '../chunk-RCQXUT5K.js';
4
- import '../chunk-HJEVSQN6.js';
1
+ export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-J6ON5SYE.js';
2
+ import '../chunk-WKEPORNM.js';
3
+ import '../chunk-CCAXYHQS.js';
4
+ import '../chunk-VL6CUNSX.js';
5
5
  import '../chunk-RKKO7QHH.js';
6
6
  import '../chunk-BHHIIK3M.js';
7
7
  import '../chunk-OG6CL3EB.js';
@@ -1,6 +1,6 @@
1
- export { ConfirmModal, Modal } from '../chunk-I3KKZ2O3.js';
1
+ export { ConfirmModal, Modal } from '../chunk-XEGZHHRH.js';
2
2
  import '../chunk-PQADV6P6.js';
3
- import '../chunk-HMPFGIWM.js';
3
+ import '../chunk-OMV5W53A.js';
4
4
  import '../chunk-R25RGPUB.js';
5
5
  import '../chunk-OG6CL3EB.js';
6
6
  import '../chunk-4FQT6ZAY.js';
@@ -284,6 +284,36 @@
284
284
  border-bottom: 1px solid var(--color-border-default);
285
285
  }
286
286
 
287
+ /*
288
+ * WITH A SUBTITLE, THE HEAD'S CONTROLS SIT ON THE TITLE'S LINE. Centred on
289
+ * the whole head, the mark, the actions and the close control floated beside
290
+ * the description, belonging to neither line; top-aligned, they hung from the
291
+ * head's top edge, a few pixels above the title they belong to. So the row
292
+ * aligns to the top and each control is centred on the title's first line:
293
+ * the mark and the actions in a box one title line tall (what is taller
294
+ * overflows it evenly, into the head's padding), and a lone control by the
295
+ * margin that puts its centre there. A dialog with no subtitle keeps the
296
+ * centring above, where the two are the same thing.
297
+ *
298
+ * DIALOGS ONLY. A sheet's head is a bar at the shell's top-bar height and
299
+ * centres what it holds on the bar, as the bar behind it does.
300
+ */
301
+ .crewlet-modal__header--subtitled {
302
+ --crewlet-modal-title-line: calc(var(--font-size-sm) * var(--font-line-height-tight));
303
+ align-items: flex-start;
304
+ }
305
+
306
+ .crewlet-modal__header--subtitled > .crewlet-modal__icon,
307
+ .crewlet-modal__header--subtitled > .crewlet-modal__actions {
308
+ align-items: center;
309
+ height: var(--crewlet-modal-title-line);
310
+ }
311
+
312
+ .crewlet-modal__header--subtitled > .crewlet-modal__close,
313
+ .crewlet-modal__header--subtitled > .crewlet-modal__back {
314
+ margin-block: calc((var(--crewlet-modal-title-line) - var(--size-control-md)) / 2);
315
+ }
316
+
287
317
  /*
288
318
  * A SHEET IS COMMITTED FROM ITS HEAD, so its head is the taller band, not the
289
319
  * tighter one. It stands at the shell's own top-bar height, which is what puts
@@ -1,2 +1,2 @@
1
- export { Note } from '../chunk-CJKMURZO.js';
1
+ export { Note } from '../chunk-5SZGKSGL.js';
2
2
  import '../chunk-ODEQTPFM.js';
@@ -60,6 +60,19 @@
60
60
  text-decoration: underline;
61
61
  text-underline-offset: 2px;
62
62
  }
63
+ /*
64
+ * PARAGRAPHS STAND APART, by the step a note's heading stands from its words.
65
+ * A host that resets a paragraph's margins (as an application's base sheet
66
+ * does) ran two paragraphs into what read as one that wrapped early.
67
+ */
68
+ .crewlet-note :is(p, ul, ol) {
69
+ margin-block: 0;
70
+ }
71
+
72
+ .crewlet-note :is(p, ul, ol) + :is(p, ul, ol) {
73
+ margin-block-start: var(--spacing-2);
74
+ }
75
+
63
76
  .crewlet-note > :first-child {
64
77
  margin-top: 0;
65
78
  }
@@ -1,4 +1,4 @@
1
- export { OrgLabel } from '../chunk-AKEZ3G5V.js';
2
- import '../chunk-UAN5NE7M.js';
3
- import '../chunk-5OM447RW.js';
1
+ export { OrgLabel } from '../chunk-ONQKKHON.js';
2
+ import '../chunk-5AQBPHZD.js';
3
+ import '../chunk-PZKHBB7D.js';
4
4
  import '../chunk-ODEQTPFM.js';
@@ -1,5 +1,5 @@
1
- export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from '../chunk-TBMDMXEX.js';
2
- import '../chunk-AKEZ3G5V.js';
3
- import '../chunk-UAN5NE7M.js';
4
- import '../chunk-5OM447RW.js';
1
+ export { OrgNodeDisclosure, OrgNodeLabel, OrgNodeLead } from '../chunk-YA3AWELW.js';
2
+ import '../chunk-ONQKKHON.js';
3
+ import '../chunk-5AQBPHZD.js';
4
+ import '../chunk-PZKHBB7D.js';
5
5
  import '../chunk-ODEQTPFM.js';
@@ -1,12 +1,12 @@
1
- export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-AMNN4WDX.js';
2
- import '../chunk-VEB5ERRE.js';
1
+ export { OrgTable, OrgTableActions, OrgTableAdd, OrgTableName } from '../chunk-JBUMD6DS.js';
2
+ import '../chunk-QWNVSR6G.js';
3
3
  import '../chunk-MY374UUD.js';
4
- import '../chunk-AKEZ3G5V.js';
5
- import '../chunk-VYOKRN2I.js';
6
- import '../chunk-UAN5NE7M.js';
7
- import '../chunk-5OM447RW.js';
4
+ import '../chunk-ONQKKHON.js';
5
+ import '../chunk-LM3ISVJA.js';
6
+ import '../chunk-5AQBPHZD.js';
7
+ import '../chunk-PZKHBB7D.js';
8
8
  import '../chunk-TROLVEZY.js';
9
- import '../chunk-HMPFGIWM.js';
9
+ import '../chunk-OMV5W53A.js';
10
10
  import '../chunk-R25RGPUB.js';
11
11
  import '../chunk-4FQT6ZAY.js';
12
12
  import '../chunk-BZFWDIV6.js';
@@ -1,9 +1,9 @@
1
- export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from '../chunk-UQHKFF2N.js';
1
+ export { PEOPLE_RAIL_LABELS, PeopleRail, peopleRailKey } from '../chunk-GPWJCP3U.js';
2
2
  import '../chunk-CENOOTAV.js';
3
3
  import '../chunk-Z7JYG5TF.js';
4
4
  import '../chunk-AYKXMIOR.js';
5
- import '../chunk-UAN5NE7M.js';
6
- import '../chunk-5OM447RW.js';
5
+ import '../chunk-5AQBPHZD.js';
6
+ import '../chunk-PZKHBB7D.js';
7
7
  import '../chunk-PQADV6P6.js';
8
8
  import '../chunk-OG6CL3EB.js';
9
9
  import '../chunk-4FQT6ZAY.js';
@@ -1,4 +1,4 @@
1
- export { Popover } from '../chunk-BWRGFKJP.js';
2
- import '../chunk-HMPFGIWM.js';
1
+ export { Popover } from '../chunk-K3IJQNB7.js';
2
+ import '../chunk-OMV5W53A.js';
3
3
  import '../chunk-R25RGPUB.js';
4
4
  import '../chunk-ODEQTPFM.js';
@@ -1,9 +1,9 @@
1
- export { PresenceStack } from '../chunk-ODT5H4MN.js';
1
+ export { PresenceStack } from '../chunk-3LYWD3BO.js';
2
2
  import '../chunk-CENOOTAV.js';
3
3
  import '../chunk-I6POAB4V.js';
4
4
  import '../chunk-Z7JYG5TF.js';
5
5
  import '../chunk-AYKXMIOR.js';
6
- import '../chunk-UAN5NE7M.js';
7
- import '../chunk-5OM447RW.js';
6
+ import '../chunk-5AQBPHZD.js';
7
+ import '../chunk-PZKHBB7D.js';
8
8
  import '../chunk-BZFWDIV6.js';
9
9
  import '../chunk-ODEQTPFM.js';