@crewlethq/ui 0.37.0 → 0.38.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 (210) hide show
  1. package/README.md +58 -0
  2. package/dist/Accordion/index.js +1 -1
  3. package/dist/AgentHandoffPanel/index.js +5 -5
  4. package/dist/AppShell/index.d.ts +1 -0
  5. package/dist/AppShell/index.js +5 -3
  6. package/dist/{AppShell-JTSEOA57.css → AppShell-NDU4XMGF.css} +51 -6
  7. package/dist/ArrangeList/index.js +4 -4
  8. package/dist/ArtifactBar/index.js +9 -7
  9. package/dist/ArtifactCard/index.js +2 -2
  10. package/dist/ArtifactCover/index.js +3 -3
  11. package/dist/ArtifactMakeRow/ArtifactMakeRow.d.ts +3 -1
  12. package/dist/ArtifactMakeRow/index.d.ts +1 -0
  13. package/dist/ArtifactMakeRow/index.js +2 -1
  14. package/dist/{ArtifactMakeRow-XBA2MPSY.css → ArtifactMakeRow-6UX2LTF7.css} +49 -6
  15. package/dist/AuthLayout/index.js +2 -2
  16. package/dist/AvatarPicker/index.js +8 -6
  17. package/dist/Canvas/index.js +4 -3
  18. package/dist/CanvasBoard/index.js +7 -6
  19. package/dist/CanvasToolbar/index.js +6 -5
  20. package/dist/Card/index.js +1 -1
  21. package/dist/{Card-QOVASQNU.css → Card-G2ZGT5Z6.css} +43 -0
  22. package/dist/ChangeMark/index.js +4 -3
  23. package/dist/Checkbox/index.js +3 -3
  24. package/dist/ChoiceList/index.d.ts +1 -0
  25. package/dist/ChoiceList/index.js +2 -1
  26. package/dist/{ChoiceList-EA2W6MOS.css → ChoiceList-KFYFAECP.css} +26 -4
  27. package/dist/Combobox/index.d.ts +1 -0
  28. package/dist/Combobox/index.js +6 -5
  29. package/dist/{Combobox-4FUVYIE7.css → Combobox-YDONYDTM.css} +2 -1
  30. package/dist/CommandPalette/index.d.ts +1 -0
  31. package/dist/CommandPalette/index.js +7 -6
  32. package/dist/{CommandPalette-7CFGVBND.css → CommandPalette-TOZYLWLE.css} +5 -1
  33. package/dist/CommentThread/index.js +5 -5
  34. package/dist/Composer/index.js +3 -3
  35. package/dist/{Composer-PXITWNEK.css → Composer-TXULCPPV.css} +1 -1
  36. package/dist/ConfirmField/index.js +3 -3
  37. package/dist/DataTable/index.js +7 -7
  38. package/dist/DataView/index.js +12 -12
  39. package/dist/DatasetSource/index.d.ts +1 -0
  40. package/dist/DatasetSource/index.js +3 -2
  41. package/dist/{DatasetSource-SMGX4PS5.css → DatasetSource-FFKTD3ZU.css} +16 -1
  42. package/dist/DateTimePicker/index.js +4 -4
  43. package/dist/{DateTimePicker-2IVTKFV2.css → DateTimePicker-3A7JIIVL.css} +3 -3
  44. package/dist/DescriptionList/DescriptionList.d.ts +12 -1
  45. package/dist/DescriptionList/index.js +1 -1
  46. package/dist/{DescriptionList-IXMRCSMK.css → DescriptionList-DEZISDLQ.css} +8 -1
  47. package/dist/Disclosure/index.js +1 -1
  48. package/dist/{Disclosure-VKBJJIZ7.css → Disclosure-P4FH3C35.css} +28 -2
  49. package/dist/DocTabsEditor/index.js +6 -6
  50. package/dist/Document/index.js +2 -2
  51. package/dist/{Document-YFWTWXJP.css → Document-TZ2NBLOR.css} +2 -2
  52. package/dist/{Editor-HORWMUM3.js → Editor-QV4JP242.js} +6 -6
  53. package/dist/FactList/index.js +4 -3
  54. package/dist/FollowBanner/index.js +3 -2
  55. package/dist/HitArea/hitArea.d.ts +7 -0
  56. package/dist/HitArea/index.d.ts +2 -0
  57. package/dist/HitArea/index.js +2 -0
  58. package/dist/HitArea-QUOS6ZDJ.css +35 -0
  59. package/dist/HuePicker/index.js +4 -3
  60. package/dist/Input/index.js +2 -2
  61. package/dist/{Input-ABGOFENS.css → Input-OQZBCRX5.css} +9 -4
  62. package/dist/Layer/index.js +2 -1
  63. package/dist/LinkInterstitial/index.js +4 -3
  64. package/dist/ListInput/index.js +5 -5
  65. package/dist/Listbox/index.js +3 -2
  66. package/dist/{Listbox-6WJNJQVQ.css → Listbox-NQV6E3FS.css} +3 -0
  67. package/dist/LivePreview/index.js +1 -1
  68. package/dist/{LivePreview-BROGKR4N.css → LivePreview-KQEDMQCY.css} +13 -0
  69. package/dist/MarkdownEditor/index.js +8 -6
  70. package/dist/Menu/index.js +3 -2
  71. package/dist/MergeConflicts/index.js +5 -4
  72. package/dist/Modal/index.js +3 -2
  73. package/dist/OrgTable/index.js +4 -3
  74. package/dist/Popover/index.js +3 -2
  75. package/dist/PresenterView/index.js +4 -3
  76. package/dist/PricingCard/index.js +2 -2
  77. package/dist/PrincipalPicker/index.js +7 -6
  78. package/dist/RichEditor/index.js +1 -1
  79. package/dist/SegmentedControl/index.d.ts +1 -0
  80. package/dist/SegmentedControl/index.js +4 -3
  81. package/dist/{SegmentedControl-FLI45IOW.css → SegmentedControl-B7XCUOML.css} +9 -2
  82. package/dist/Select/index.d.ts +1 -0
  83. package/dist/Select/index.js +5 -4
  84. package/dist/{Select-W3CHTZXP.css → Select-F526HLNR.css} +5 -4
  85. package/dist/ShareDialog/index.js +7 -6
  86. package/dist/SheetColumnEditor/index.js +12 -11
  87. package/dist/SheetGrid/index.js +9 -8
  88. package/dist/{SheetGrid-YRDXTIIZ.css → SheetGrid-XK7T7M34.css} +9 -4
  89. package/dist/Shortcut/index.js +3 -2
  90. package/dist/SidebarNav/index.d.ts +1 -0
  91. package/dist/SidebarNav/index.js +2 -1
  92. package/dist/{SidebarNav-KF66MLOM.css → SidebarNav-7SGUZYKK.css} +21 -2
  93. package/dist/SlideCompare/index.js +4 -3
  94. package/dist/SlideFilmstrip/index.js +6 -5
  95. package/dist/SlideGrid/index.js +4 -3
  96. package/dist/SlideStage/index.js +3 -2
  97. package/dist/SourceEditor/index.js +2 -2
  98. package/dist/{SourceEditor-QAYE2JS6.css → SourceEditor-OKPWPFXK.css} +1 -1
  99. package/dist/StatGroup/StatGroup.d.ts +11 -7
  100. package/dist/StatGroup/index.js +1 -1
  101. package/dist/StatGroup-DOFHX5QJ.css +168 -0
  102. package/dist/Switcher/index.js +8 -8
  103. package/dist/TableCells/index.js +2 -2
  104. package/dist/Tabs/index.d.ts +1 -0
  105. package/dist/Tabs/index.js +2 -1
  106. package/dist/{Tabs-MMZXV5EF.css → Tabs-WIF7457H.css} +20 -3
  107. package/dist/Tag/index.js +1 -1
  108. package/dist/{Tag-SRGTK5KI.css → Tag-2DQOVE6W.css} +15 -5
  109. package/dist/TagsInput/index.js +6 -6
  110. package/dist/{TagsInput-7EGBBXHS.css → TagsInput-CLFHP6I2.css} +1 -1
  111. package/dist/ThemeGallery/index.js +4 -3
  112. package/dist/ThemeSwitcher/index.js +5 -4
  113. package/dist/TimeWindowPicker/index.js +8 -7
  114. package/dist/{TimeWindowPicker-DEFDV77Z.css → TimeWindowPicker-I3HXC74I.css} +3 -3
  115. package/dist/Toaster/index.js +2 -1
  116. package/dist/Toolbar/index.js +3 -2
  117. package/dist/Tooltip/index.js +3 -2
  118. package/dist/TreeCanvas/index.js +5 -4
  119. package/dist/TreeGrid/index.js +3 -2
  120. package/dist/VersionCompare/index.js +5 -4
  121. package/dist/{chunk-CCAXYHQS.js → chunk-2QZ2VPHR.js} +3 -1
  122. package/dist/chunk-2YTOOH3A.js +4 -0
  123. package/dist/{chunk-QWNVSR6G.js → chunk-3KYVFG47.js} +1 -1
  124. package/dist/{chunk-H5NOLRGH.js → chunk-3V5T5K5H.js} +1 -1
  125. package/dist/{chunk-BIQDJOJZ.js → chunk-3ZUINC7C.js} +2 -2
  126. package/dist/{chunk-K4VP6ZKE.js → chunk-4BJK7FE5.js} +1 -1
  127. package/dist/chunk-4ISUIS6F.js +3 -0
  128. package/dist/{chunk-FG4O64DV.js → chunk-4L2BWSHR.js} +5 -5
  129. package/dist/{chunk-PLTCDSTU.js → chunk-4LRAJXHL.js} +1 -1
  130. package/dist/{chunk-4ZJLOKSS.js → chunk-5BUOMF6N.js} +2 -2
  131. package/dist/{chunk-47JQAGRV.js → chunk-66X5WDKE.js} +1 -1
  132. package/dist/{chunk-66NGUD5S.js → chunk-6NNY5WBF.js} +8 -7
  133. package/dist/{chunk-5RT5O4JR.js → chunk-7CGPPAYR.js} +1 -1
  134. package/dist/{chunk-F73MC7EZ.js → chunk-7KHM2FZH.js} +2 -2
  135. package/dist/{chunk-VL6CUNSX.js → chunk-7SDUKCNW.js} +4 -1
  136. package/dist/{chunk-JML75PGJ.js → chunk-A23KDROH.js} +3 -3
  137. package/dist/{chunk-PJIPUEJ3.js → chunk-AXS6MBNH.js} +1 -1
  138. package/dist/{chunk-2FPENTCF.js → chunk-AYHIF6DH.js} +1 -1
  139. package/dist/{chunk-J6ON5SYE.js → chunk-B5J23C73.js} +1 -1
  140. package/dist/{chunk-7VAUGG6B.js → chunk-B5UHX5UC.js} +2 -2
  141. package/dist/{chunk-AOLCZDZ6.js → chunk-BH52LIY6.js} +5 -5
  142. package/dist/{chunk-WX2NIG4G.js → chunk-BJI3RFXG.js} +1 -1
  143. package/dist/{chunk-JXRI5YD2.js → chunk-BT5H2THK.js} +2 -1
  144. package/dist/{chunk-FHHYXZSP.js → chunk-C7OKDYBH.js} +2 -2
  145. package/dist/{chunk-JBUMD6DS.js → chunk-CFGGE3HO.js} +1 -1
  146. package/dist/{chunk-WYKWXRJ4.js → chunk-CQFQGAZI.js} +1 -1
  147. package/dist/{chunk-GMLAKNFY.js → chunk-D2OL3ZSS.js} +1 -1
  148. package/dist/{chunk-D7GNNID2.js → chunk-D3EJSLCL.js} +2 -2
  149. package/dist/{chunk-BUVCV3WI.js → chunk-D6FEHY5G.js} +3 -2
  150. package/dist/{chunk-4BYHAOHH.js → chunk-DAERKOOG.js} +3 -2
  151. package/dist/{chunk-PGZ2R3ON.js → chunk-DYB66CNM.js} +23 -7
  152. package/dist/{chunk-PPFX6GRK.js → chunk-EAEJ7CDM.js} +6 -3
  153. package/dist/{chunk-WZGYIVYH.js → chunk-EAQLI2SO.js} +4 -2
  154. package/dist/{chunk-GYBDPCRC.js → chunk-ECGGQX2H.js} +2 -2
  155. package/dist/{chunk-RH2NCQBZ.js → chunk-ETVEGR2Y.js} +2 -2
  156. package/dist/{chunk-SUXP4OBT.js → chunk-F4LPQA4E.js} +1 -1
  157. package/dist/{chunk-KYZMN6I6.js → chunk-FBW3Q2OY.js} +2 -2
  158. package/dist/{chunk-JQLS3MZB.js → chunk-FWBKMPNR.js} +1 -1
  159. package/dist/{chunk-OOWPSBIS.js → chunk-GMW4ZHST.js} +3 -3
  160. package/dist/{chunk-R25RGPUB.js → chunk-H5XTJ7GJ.js} +2 -3
  161. package/dist/{chunk-6ZJ3N7QI.js → chunk-I33UIUZD.js} +1 -1
  162. package/dist/{chunk-GRYZ5EP3.js → chunk-IPWU6ERC.js} +14 -3
  163. package/dist/{chunk-W3HYWD63.js → chunk-JZPK4IXR.js} +16 -9
  164. package/dist/{chunk-K3IJQNB7.js → chunk-KHJIEPZV.js} +3 -2
  165. package/dist/{chunk-GFV4LJHH.js → chunk-KYIAFNU7.js} +1 -1
  166. package/dist/{chunk-F2XSYBKH.js → chunk-MFS6F2P7.js} +4 -1
  167. package/dist/chunk-MICRGE3J.js +1 -0
  168. package/dist/{chunk-PGRPNDWM.js → chunk-NR4CPM4T.js} +1 -1
  169. package/dist/{chunk-5WDXPHEW.js → chunk-NRBAXRWE.js} +1 -1
  170. package/dist/{chunk-YSGLEHND.js → chunk-NUZHC6MM.js} +14 -2
  171. package/dist/{chunk-WGD2HX2A.js → chunk-OED6LUWE.js} +1 -1
  172. package/dist/{chunk-MICH6QSJ.js → chunk-OGXHZHRX.js} +1 -1
  173. package/dist/{chunk-OHA6WSAG.js → chunk-OTCXRJ7D.js} +1 -1
  174. package/dist/{chunk-N5SKHIAP.js → chunk-PAQXOP2M.js} +8 -6
  175. package/dist/{chunk-KJW2AS57.js → chunk-PEUGPAKH.js} +1 -1
  176. package/dist/{chunk-IPAU6FLH.js → chunk-PPHTIKZO.js} +1 -1
  177. package/dist/{chunk-44WJLPQS.js → chunk-PT6WKXKW.js} +2 -2
  178. package/dist/{chunk-P6WFZDKS.js → chunk-PWG3VHRQ.js} +2 -2
  179. package/dist/{chunk-EAKC24BW.js → chunk-R2IBCEU6.js} +16 -4
  180. package/dist/{chunk-HOIZ6MIS.js → chunk-RLJXVFEH.js} +1 -1
  181. package/dist/{chunk-NQGPD6NX.js → chunk-RMEBFYL7.js} +1 -1
  182. package/dist/{chunk-APDKUGSH.js → chunk-S27UBCVX.js} +5 -4
  183. package/dist/{chunk-XEGZHHRH.js → chunk-SVGARBDY.js} +1 -1
  184. package/dist/{chunk-UWGUKMBK.js → chunk-SYBYFQTY.js} +2 -2
  185. package/dist/{chunk-IUYUS2SO.js → chunk-TYONQSOK.js} +2 -2
  186. package/dist/{chunk-DQSXWQMJ.js → chunk-U3ILLCR2.js} +1 -1
  187. package/dist/{chunk-L4WZSVMT.js → chunk-UB6MLXUL.js} +3 -3
  188. package/dist/{chunk-EARDAJQY.js → chunk-UWRBD2YO.js} +2 -2
  189. package/dist/{chunk-F23N4MVU.js → chunk-UXYEOWG5.js} +1 -1
  190. package/dist/{chunk-UCCC7YVZ.js → chunk-W7PAIVAP.js} +4 -2
  191. package/dist/{chunk-T5RQGI6O.js → chunk-X3UYTAOG.js} +1 -1
  192. package/dist/{chunk-EOQFPZEE.js → chunk-XBURIXHO.js} +2 -2
  193. package/dist/{chunk-VKKUGZ3G.js → chunk-XQZ6EWOE.js} +8 -5
  194. package/dist/{chunk-TVRBQMIX.js → chunk-YPMGP2X4.js} +6 -6
  195. package/dist/{chunk-GS7ZTHPF.js → chunk-YQG4PZGC.js} +7 -7
  196. package/dist/{chunk-5QXRI35B.js → chunk-ZK3VYY7L.js} +1 -1
  197. package/dist/{chunk-2QEDJSJC.js → chunk-ZMDYQ2HH.js} +1 -1
  198. package/dist/{chunk-27GD7LVR.js → chunk-ZMWXE4GT.js} +1 -1
  199. package/dist/{chunk-RIAZM6L3.js → chunk-ZNOXQACX.js} +1 -1
  200. package/dist/generated/index.d.ts +1 -0
  201. package/dist/generated/index.js +106 -104
  202. package/dist/index.js +106 -104
  203. package/dist/styles.css +508 -102
  204. package/dist/utils/focusModality.d.ts +17 -1
  205. package/dist/utils/index.d.ts +1 -1
  206. package/dist/utils/index.js +1 -1
  207. package/package.json +3 -3
  208. package/dist/StatGroup-PADTJCUQ.css +0 -86
  209. package/dist/chunk-WKEPORNM.js +0 -2
  210. /package/dist/{chunk-PNNYVN52.js → chunk-4QQ3MND5.js} +0 -0
@@ -8,8 +8,10 @@
8
8
  .crewlet-choice-list {
9
9
  /* The platform's radio, sized here so a panel can line up with the text beside it. */
10
10
  --crewlet-choice-list-radio-size: 13px;
11
+ /* The step between two answers. Every row's pointer target reaches half of it. */
12
+ --crewlet-choice-list-gap: var(--spacing-1);
11
13
  display: grid;
12
- gap: var(--spacing-1);
14
+ gap: var(--crewlet-choice-list-gap);
13
15
  padding: var(--spacing-1);
14
16
  border: 1px solid var(--color-border-strong);
15
17
  border-radius: var(--radius-md);
@@ -22,21 +24,24 @@
22
24
 
23
25
  .crewlet-choice-list__group {
24
26
  display: grid;
25
- gap: var(--spacing-1);
27
+ gap: var(--crewlet-choice-list-gap);
26
28
  }
27
29
 
28
30
  .crewlet-choice-list__item {
29
31
  display: grid;
30
- gap: var(--spacing-1);
32
+ gap: var(--crewlet-choice-list-gap);
31
33
  }
32
34
 
33
35
  /* The "Something else" a list ends with, set apart by a dashed rule. */
34
36
  .crewlet-choice-list__item.is-separated {
35
- padding-top: var(--spacing-1);
37
+ --crewlet-choice-list-rule-pad: var(--spacing-1);
38
+ padding-top: var(--crewlet-choice-list-rule-pad);
36
39
  border-top: 1px dashed var(--color-border-strong);
37
40
  }
38
41
 
39
42
  .crewlet-choice-list__row {
43
+ /* Half the step to each neighbour, so the targets meet (HitArea.css). */
44
+ --crewlet-hit-area-block: calc(var(--crewlet-choice-list-gap) / 2);
40
45
  display: grid;
41
46
  grid-template-columns: auto minmax(0, 1fr) auto;
42
47
  align-items: start;
@@ -47,6 +52,23 @@
47
52
  transition: background-color var(--motion-duration-fast) var(--motion-easing-default);
48
53
  }
49
54
 
55
+ /*
56
+ * THE ANSWER AFTER THE RULE reaches up across it, so the pointer leaving the
57
+ * row above lands on this one rather than on the rule: the dashed line sets
58
+ * the answer apart for the eye, and is no gap for the hand.
59
+ */
60
+ .crewlet-choice-list__item.is-separated > .crewlet-choice-list__row {
61
+ --crewlet-hit-area-block-start: calc(var(--crewlet-choice-list-gap) / 2 + var(--crewlet-choice-list-rule-pad) + 1px);
62
+ }
63
+
64
+ /*
65
+ * A ROW WITH ITS PANEL OPEN reaches nothing downward: the panel is part of the
66
+ * answer and holds controls of its own, which the row must not cover.
67
+ */
68
+ .crewlet-choice-list__item:has(> .crewlet-choice-list__panel) > .crewlet-choice-list__row {
69
+ --crewlet-hit-area-block-end: 0px;
70
+ }
71
+
50
72
  /* A choice with a picture: the radio, the picture, the words, the tag. The
51
73
  picture centres on the label and its detail together. */
52
74
  .crewlet-choice-list__row.has-media {
@@ -1,3 +1,4 @@
1
+ import '../HitArea/HitArea.css';
1
2
  import './Combobox.css';
2
3
  export { Combobox } from './Combobox.js';
3
4
  export type { ComboboxListRender, ComboboxOption, ComboboxProps } from './Combobox.js';
@@ -1,9 +1,10 @@
1
- export { Combobox } from '../chunk-PPFX6GRK.js';
2
- import '../chunk-F73MC7EZ.js';
3
- import '../chunk-IUYUS2SO.js';
4
- import '../chunk-YSGLEHND.js';
1
+ export { Combobox } from '../chunk-EAEJ7CDM.js';
2
+ import '../chunk-7KHM2FZH.js';
3
+ import '../chunk-TYONQSOK.js';
5
4
  import '../chunk-PQADV6P6.js';
6
- import '../chunk-R25RGPUB.js';
5
+ import '../chunk-H5XTJ7GJ.js';
6
+ import '../chunk-2YTOOH3A.js';
7
7
  import '../chunk-4FQT6ZAY.js';
8
+ import '../chunk-NUZHC6MM.js';
8
9
  import '../chunk-BZFWDIV6.js';
9
10
  import '../chunk-ODEQTPFM.js';
@@ -24,9 +24,10 @@
24
24
  overflow-y: auto;
25
25
  overscroll-behavior: contain;
26
26
  padding: var(--spacing-1);
27
+ --crewlet-listbox-gap: 1px;
27
28
  display: flex;
28
29
  flex-direction: column;
29
- gap: 1px;
30
+ gap: var(--crewlet-listbox-gap);
30
31
  /*
31
32
  * OPAQUE, and the product's own panel surface: a translucent list over a
32
33
  * form puts two sets of words in the same place, and the words underneath
@@ -1,3 +1,4 @@
1
+ import '../HitArea/HitArea.css';
1
2
  import './CommandPalette.css';
2
3
  export { CommandPalette } from './CommandPalette.js';
3
4
  export type { CommandPaletteGroup, CommandPaletteItem, CommandPaletteProps, CommandPaletteScope, CommandPaletteScopeProps, } from './CommandPalette.js';
@@ -1,14 +1,15 @@
1
- export { CommandPalette } from '../chunk-N5SKHIAP.js';
2
- import '../chunk-XEGZHHRH.js';
3
- import '../chunk-F73MC7EZ.js';
4
- import '../chunk-IUYUS2SO.js';
5
- import '../chunk-YSGLEHND.js';
1
+ export { CommandPalette } from '../chunk-PAQXOP2M.js';
2
+ import '../chunk-SVGARBDY.js';
3
+ import '../chunk-7KHM2FZH.js';
6
4
  import '../chunk-SMBKXWML.js';
5
+ import '../chunk-TYONQSOK.js';
7
6
  import '../chunk-BHHIIK3M.js';
8
7
  import '../chunk-PQADV6P6.js';
9
8
  import '../chunk-OMV5W53A.js';
10
- import '../chunk-R25RGPUB.js';
9
+ import '../chunk-H5XTJ7GJ.js';
10
+ import '../chunk-2YTOOH3A.js';
11
11
  import '../chunk-OG6CL3EB.js';
12
12
  import '../chunk-4FQT6ZAY.js';
13
+ import '../chunk-NUZHC6MM.js';
13
14
  import '../chunk-BZFWDIV6.js';
14
15
  import '../chunk-ODEQTPFM.js';
@@ -163,10 +163,11 @@
163
163
  * draw and no slider to measure, and the bar is each tab's own edge.
164
164
  */
165
165
  .crewlet-palette__scopes {
166
+ --crewlet-palette-scope-gap: var(--spacing-4);
166
167
  flex-shrink: 0;
167
168
  display: flex;
168
169
  align-items: stretch;
169
- gap: var(--spacing-4);
170
+ gap: var(--crewlet-palette-scope-gap);
170
171
  min-height: var(--size-row-md);
171
172
  padding-inline: var(--spacing-4);
172
173
  border-bottom: 1px solid var(--color-border-default);
@@ -195,6 +196,9 @@
195
196
  font-weight: var(--font-weight-medium);
196
197
  white-space: nowrap;
197
198
  cursor: pointer;
199
+ /* Half the gap to each neighbour, so the scopes' targets meet (HitArea.css).
200
+ The row's own inline padding holds the reach at either end. */
201
+ --crewlet-hit-area-inline: calc(var(--crewlet-palette-scope-gap) / 2);
198
202
  }
199
203
 
200
204
  .crewlet-palette__scope:hover,
@@ -1,17 +1,17 @@
1
- export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-44WJLPQS.js';
2
- import '../chunk-P6WFZDKS.js';
1
+ export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-PT6WKXKW.js';
3
2
  import '../chunk-CI3VPIJN.js';
4
3
  import '../chunk-3CZ7XAVY.js';
5
4
  import '../chunk-EUCC37WY.js';
6
5
  import '../chunk-5AQBPHZD.js';
7
6
  import '../chunk-PZKHBB7D.js';
8
- import '../chunk-RH2NCQBZ.js';
9
- import '../chunk-IUYUS2SO.js';
10
- import '../chunk-YSGLEHND.js';
7
+ import '../chunk-PWG3VHRQ.js';
8
+ import '../chunk-ETVEGR2Y.js';
11
9
  import '../chunk-SMBKXWML.js';
10
+ import '../chunk-TYONQSOK.js';
12
11
  import '../chunk-BHHIIK3M.js';
13
12
  import '../chunk-PQADV6P6.js';
14
13
  import '../chunk-OG6CL3EB.js';
15
14
  import '../chunk-4FQT6ZAY.js';
15
+ import '../chunk-NUZHC6MM.js';
16
16
  import '../chunk-BZFWDIV6.js';
17
17
  import '../chunk-ODEQTPFM.js';
@@ -1,8 +1,8 @@
1
- export { COMPOSER_COUNTER_AT, Composer } from '../chunk-RH2NCQBZ.js';
2
- import '../chunk-IUYUS2SO.js';
3
- import '../chunk-YSGLEHND.js';
1
+ export { COMPOSER_COUNTER_AT, Composer } from '../chunk-ETVEGR2Y.js';
4
2
  import '../chunk-SMBKXWML.js';
3
+ import '../chunk-TYONQSOK.js';
5
4
  import '../chunk-PQADV6P6.js';
6
5
  import '../chunk-4FQT6ZAY.js';
6
+ import '../chunk-NUZHC6MM.js';
7
7
  import '../chunk-BZFWDIV6.js';
8
8
  import '../chunk-ODEQTPFM.js';
@@ -27,7 +27,7 @@
27
27
  outline-offset: -1px;
28
28
  }
29
29
 
30
- :root[data-crewlet-focus='pointer'] .crewlet-composer:has(.crewlet-composer__field:focus-visible) {
30
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-composer:has(.crewlet-composer__field:focus-visible) {
31
31
  outline-width: 1px;
32
32
  outline-color: var(--color-border-selected);
33
33
  }
@@ -1,8 +1,8 @@
1
- export { ConfirmField, confirmMatches } from '../chunk-KJW2AS57.js';
1
+ export { ConfirmField, confirmMatches } from '../chunk-PEUGPAKH.js';
2
2
  import '../chunk-5CLW2CXT.js';
3
- import '../chunk-IUYUS2SO.js';
4
- import '../chunk-YSGLEHND.js';
3
+ import '../chunk-TYONQSOK.js';
5
4
  import '../chunk-PQADV6P6.js';
6
5
  import '../chunk-4FQT6ZAY.js';
6
+ import '../chunk-NUZHC6MM.js';
7
7
  import '../chunk-BZFWDIV6.js';
8
8
  import '../chunk-ODEQTPFM.js';
@@ -1,17 +1,17 @@
1
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-JML75PGJ.js';
1
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-A23KDROH.js';
2
2
  import '../chunk-STJ7QBC3.js';
3
3
  import '../chunk-DTIW4CHZ.js';
4
- import '../chunk-XEGZHHRH.js';
5
- import '../chunk-PJIPUEJ3.js';
4
+ import '../chunk-SVGARBDY.js';
5
+ import '../chunk-AXS6MBNH.js';
6
6
  import '../chunk-EUCC37WY.js';
7
7
  import '../chunk-AV2DXAEL.js';
8
- import '../chunk-IUYUS2SO.js';
9
- import '../chunk-YSGLEHND.js';
8
+ import '../chunk-TYONQSOK.js';
10
9
  import '../chunk-PQADV6P6.js';
11
- import '../chunk-BUVCV3WI.js';
10
+ import '../chunk-D6FEHY5G.js';
12
11
  import '../chunk-OMV5W53A.js';
13
- import '../chunk-R25RGPUB.js';
12
+ import '../chunk-H5XTJ7GJ.js';
14
13
  import '../chunk-OG6CL3EB.js';
15
14
  import '../chunk-4FQT6ZAY.js';
15
+ import '../chunk-NUZHC6MM.js';
16
16
  import '../chunk-BZFWDIV6.js';
17
17
  import '../chunk-ODEQTPFM.js';
@@ -1,27 +1,27 @@
1
- export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-GS7ZTHPF.js';
1
+ export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-YQG4PZGC.js';
2
2
  import '../chunk-HOXGBLEY.js';
3
- import '../chunk-JML75PGJ.js';
4
- import '../chunk-L4WZSVMT.js';
3
+ import '../chunk-A23KDROH.js';
4
+ import '../chunk-UB6MLXUL.js';
5
5
  import '../chunk-STJ7QBC3.js';
6
6
  import '../chunk-DTIW4CHZ.js';
7
- import '../chunk-XEGZHHRH.js';
8
- import '../chunk-F73MC7EZ.js';
7
+ import '../chunk-SVGARBDY.js';
8
+ import '../chunk-7KHM2FZH.js';
9
+ import '../chunk-KHJIEPZV.js';
9
10
  import '../chunk-GXQ3B46I.js';
10
- import '../chunk-PGRPNDWM.js';
11
- import '../chunk-K3IJQNB7.js';
12
- import '../chunk-PJIPUEJ3.js';
11
+ import '../chunk-NR4CPM4T.js';
12
+ import '../chunk-AXS6MBNH.js';
13
13
  import '../chunk-3CZ7XAVY.js';
14
14
  import '../chunk-EUCC37WY.js';
15
15
  import '../chunk-AV2DXAEL.js';
16
- import '../chunk-IUYUS2SO.js';
17
- import '../chunk-YSGLEHND.js';
18
16
  import '../chunk-SMBKXWML.js';
17
+ import '../chunk-TYONQSOK.js';
19
18
  import '../chunk-BHHIIK3M.js';
20
19
  import '../chunk-PQADV6P6.js';
21
- import '../chunk-BUVCV3WI.js';
20
+ import '../chunk-D6FEHY5G.js';
22
21
  import '../chunk-OMV5W53A.js';
23
- import '../chunk-R25RGPUB.js';
22
+ import '../chunk-H5XTJ7GJ.js';
24
23
  import '../chunk-OG6CL3EB.js';
25
24
  import '../chunk-4FQT6ZAY.js';
25
+ import '../chunk-NUZHC6MM.js';
26
26
  import '../chunk-BZFWDIV6.js';
27
27
  import '../chunk-ODEQTPFM.js';
@@ -1,3 +1,4 @@
1
+ import '../HitArea/HitArea.css';
1
2
  import './DatasetSource.css';
2
3
  export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from './DatasetSource.js';
3
4
  export type { DatasetSourceKind, DatasetSourceLabels, DatasetSourceListProps, DatasetSourceProps, } from './DatasetSource.js';
@@ -1,7 +1,8 @@
1
- export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-GRYZ5EP3.js';
2
- import '../chunk-GFV4LJHH.js';
1
+ export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-IPWU6ERC.js';
2
+ import '../chunk-KYIAFNU7.js';
3
3
  import '../chunk-WIATRXEJ.js';
4
4
  import '../chunk-3CZ7XAVY.js';
5
5
  import '../chunk-EUCC37WY.js';
6
+ import '../chunk-2YTOOH3A.js';
6
7
  import '../chunk-BZFWDIV6.js';
7
8
  import '../chunk-ODEQTPFM.js';
@@ -33,6 +33,20 @@
33
33
 
34
34
  button.crewlet-dataset-source__summary {
35
35
  cursor: pointer;
36
+ /* Half the list's gap to each neighbour, so the entries' targets meet
37
+ (HitArea.css), across the entry's 1px boundary and the summary's own. */
38
+ --crewlet-hit-area-block: calc(var(--crewlet-dataset-source-list-gap, 0px) / 2 + 2px);
39
+ }
40
+
41
+ /* The list has no padding, so its first and last entries reach nothing past
42
+ it; and an open entry's preview holds controls the summary must not cover. */
43
+ .crewlet-dataset-source-list__item:first-child button.crewlet-dataset-source__summary {
44
+ --crewlet-hit-area-block-start: 0px;
45
+ }
46
+
47
+ .crewlet-dataset-source-list__item:last-child button.crewlet-dataset-source__summary,
48
+ .crewlet-dataset-source--open > button.crewlet-dataset-source__summary {
49
+ --crewlet-hit-area-block-end: 0px;
36
50
  }
37
51
 
38
52
  button.crewlet-dataset-source__summary:hover {
@@ -158,9 +172,10 @@ button.crewlet-dataset-source__summary:focus-visible {
158
172
  }
159
173
 
160
174
  .crewlet-dataset-source-list {
175
+ --crewlet-dataset-source-list-gap: var(--spacing-1);
161
176
  display: flex;
162
177
  flex-direction: column;
163
- gap: var(--spacing-1);
178
+ gap: var(--crewlet-dataset-source-list-gap);
164
179
  margin: 0;
165
180
  padding: 0;
166
181
  list-style: none;
@@ -1,10 +1,10 @@
1
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-L4WZSVMT.js';
1
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-UB6MLXUL.js';
2
+ import '../chunk-KHJIEPZV.js';
2
3
  import '../chunk-GXQ3B46I.js';
3
- import '../chunk-K3IJQNB7.js';
4
- import '../chunk-YSGLEHND.js';
5
4
  import '../chunk-OMV5W53A.js';
6
- import '../chunk-R25RGPUB.js';
5
+ import '../chunk-H5XTJ7GJ.js';
7
6
  import '../chunk-OG6CL3EB.js';
8
7
  import '../chunk-4FQT6ZAY.js';
8
+ import '../chunk-NUZHC6MM.js';
9
9
  import '../chunk-BZFWDIV6.js';
10
10
  import '../chunk-ODEQTPFM.js';
@@ -56,8 +56,8 @@
56
56
  }
57
57
 
58
58
  /* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
59
- :root[data-crewlet-focus='pointer'] .crewlet-datetime:focus-visible,
60
- :root[data-crewlet-focus='pointer'] .crewlet-datetime.is-open {
59
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-datetime:focus-visible,
60
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-datetime.is-open {
61
61
  outline-width: 1px;
62
62
  outline-color: var(--color-border-selected);
63
63
  }
@@ -189,7 +189,7 @@ svg.crewlet-datetime__chevron {
189
189
  }
190
190
 
191
191
  /* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
192
- :root[data-crewlet-focus='pointer'] .crewlet-datetime__time-input:focus-visible {
192
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-datetime__time-input:focus-visible {
193
193
  outline-width: 1px;
194
194
  outline-color: var(--color-border-selected);
195
195
  }
@@ -12,6 +12,17 @@ export interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {
12
12
  * space after "Up" and stacks a list the panel had room to lay side by side.
13
13
  */
14
14
  fit?: boolean | undefined;
15
+ /**
16
+ * The term column's width, as a CSS track: `12rem`, or
17
+ * `minmax(120px, 14rem)`. For lists that have to line up with each other,
18
+ * stacked cards of settings on one page, where each list sizing the column
19
+ * to its own longest term starts its values somewhere else. The same track
20
+ * can be set once for a whole page as `--crewlet-description-list-term`,
21
+ * which every list under it inherits. Ignored with `fit`, whose column is
22
+ * its own longest term by definition, and under the narrow step, where a
23
+ * term stands over its detail.
24
+ */
25
+ termWidth?: string | undefined;
15
26
  /**
16
27
  * The pairs. Given as tuples so a caller can build them from a record
17
28
  * without inventing a key for each one; `DescriptionList.Item` children are
@@ -32,7 +43,7 @@ export interface DescriptionListProps extends HTMLAttributes<HTMLDListElement> {
32
43
  * Each pair is wrapped in a `div`, which HTML allows inside a `dl` and which
33
44
  * is what lets one pair be one grid row.
34
45
  */
35
- export declare function DescriptionList({ dense, fit, items, className, children, ...rest }: DescriptionListProps): import("react").JSX.Element;
46
+ export declare function DescriptionList({ dense, fit, termWidth, items, className, style, children, ...rest }: DescriptionListProps): import("react").JSX.Element;
36
47
  export declare namespace DescriptionList {
37
48
  var Item: typeof DescriptionListItem;
38
49
  }
@@ -1,2 +1,2 @@
1
- export { DescriptionList, DescriptionListItem } from '../chunk-F2XSYBKH.js';
1
+ export { DescriptionList, DescriptionListItem } from '../chunk-MFS6F2P7.js';
2
2
  import '../chunk-ODEQTPFM.js';
@@ -4,11 +4,18 @@
4
4
  * The term track is `minmax(120px, max-content)`: wide enough that short terms
5
5
  * line up with each other, and free to grow for a long one rather than
6
6
  * wrapping it into two lines beside a one-word value.
7
+ *
8
+ * ONE LIST'S TRACK IS ITS OWN, which is wrong for a page of them. Four cards
9
+ * of limits stacked on one page each sized the column to their own longest
10
+ * term, so their values started at four different places and the cards did
11
+ * not read as one table. `--crewlet-description-list-term` names the track
12
+ * instead, and it is inherited: set once on the page (or passed to each list
13
+ * as `termWidth`), every list under it shares one column.
7
14
  */
8
15
 
9
16
  .crewlet-description-list {
10
17
  display: grid;
11
- grid-template-columns: minmax(120px, max-content) 1fr;
18
+ grid-template-columns: var(--crewlet-description-list-term, minmax(120px, max-content)) 1fr;
12
19
  gap: var(--spacing-2) var(--spacing-4);
13
20
  margin: 0;
14
21
  font-size: var(--font-size-compact);
@@ -1,4 +1,4 @@
1
- export { Disclosure } from '../chunk-MICH6QSJ.js';
1
+ export { Disclosure } from '../chunk-OGXHZHRX.js';
2
2
  export { DisclosureAnatomy } from '../chunk-FZVJDJFN.js';
3
3
  import '../chunk-BHHIIK3M.js';
4
4
  import '../chunk-PQADV6P6.js';
@@ -115,9 +115,35 @@
115
115
  font-variant-ligatures: none;
116
116
  }
117
117
 
118
- /* A fact inside the button: quieter than the title it belongs to. */
118
+ /*
119
+ * A fact inside the button: quieter than the title it belongs to, and the
120
+ * first thing to give up room when the row runs short.
121
+ *
122
+ * IT USED TO TAKE NONE. `flex: none` held a fact at its full width while the
123
+ * title, which may shrink, was the only thing that could, so a long fact (a
124
+ * log's replay mode, generation, range and size, beside a status badge in the
125
+ * actions) took the whole trigger: the title shrank to nothing, so a row no
126
+ * longer said which log it was, and the fact ran out of the button and under
127
+ * the badge beside it.
128
+ *
129
+ * A HUNDRED TO THE TITLE'S ONE, as a card's subtitle gives way to its title:
130
+ * two items that may shrink give up space in proportion to their widths, so
131
+ * at that ratio the fact absorbs effectively all of it, and ends in an
132
+ * ellipsis, before the title gives up a pixel. The fact is still the button's
133
+ * name in full; only its drawing is cut.
134
+ *
135
+ * NEVER TO NOTHING. The floor is one glyph wide, because a fact is often a
136
+ * mark (a failed call's glyph beside a tool's name), and a mark that shrank
137
+ * to nothing would say nothing at all. A long fact keeps an ellipsis there,
138
+ * which says a fact was cut. Once the fact is at its floor the title shrinks
139
+ * and ends in its own ellipsis.
140
+ */
119
141
  .crewlet-disclosure__meta {
120
- flex: none;
142
+ flex: 0 100 auto;
143
+ min-width: 1.5em;
144
+ overflow: hidden;
145
+ text-overflow: ellipsis;
146
+ white-space: nowrap;
121
147
  color: var(--color-text-tertiary);
122
148
  font-size: var(--font-size-xs);
123
149
  }
@@ -1,13 +1,13 @@
1
- export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-UWGUKMBK.js';
1
+ export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-SYBYFQTY.js';
2
2
  import '../chunk-XJ2QEBMM.js';
3
- import '../chunk-IUYUS2SO.js';
4
- import '../chunk-YSGLEHND.js';
3
+ import '../chunk-TYONQSOK.js';
5
4
  import '../chunk-PQADV6P6.js';
6
- import '../chunk-BUVCV3WI.js';
5
+ import '../chunk-RSAQOKH3.js';
6
+ import '../chunk-D6FEHY5G.js';
7
7
  import '../chunk-OMV5W53A.js';
8
- import '../chunk-R25RGPUB.js';
8
+ import '../chunk-H5XTJ7GJ.js';
9
9
  import '../chunk-OG6CL3EB.js';
10
- import '../chunk-RSAQOKH3.js';
11
10
  import '../chunk-4FQT6ZAY.js';
11
+ import '../chunk-NUZHC6MM.js';
12
12
  import '../chunk-BZFWDIV6.js';
13
13
  import '../chunk-ODEQTPFM.js';
@@ -1,3 +1,3 @@
1
- export { Document, DocumentTitle, DocumentTitleField } from '../chunk-P6WFZDKS.js';
2
- import '../chunk-YSGLEHND.js';
1
+ export { Document, DocumentTitle, DocumentTitleField } from '../chunk-PWG3VHRQ.js';
2
+ import '../chunk-NUZHC6MM.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -373,7 +373,7 @@
373
373
  outline: 2px solid transparent;
374
374
  }
375
375
 
376
- :root[data-crewlet-focus='pointer'] .crewlet-document-title-field:focus-visible {
376
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-document-title-field:focus-visible {
377
377
  border-block-end-color: var(--color-border-selected);
378
378
  box-shadow: none;
379
379
  }
@@ -386,7 +386,7 @@
386
386
  box-shadow: 0 1px 0 var(--color-feedback-danger);
387
387
  }
388
388
 
389
- :root[data-crewlet-focus='pointer'] .crewlet-document-title-field[aria-invalid='true']:focus-visible {
389
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-document-title-field[aria-invalid='true']:focus-visible {
390
390
  border-block-end-color: var(--color-feedback-danger);
391
391
  }
392
392
 
@@ -1,15 +1,15 @@
1
- import { richEditorLabels } from './chunk-CSQTDGTS.js';
2
1
  import { schema, readMarkdown, writeMarkdown } from './chunk-QH6VYJ3X.js';
2
+ import { richEditorLabels } from './chunk-CSQTDGTS.js';
3
3
  import { safeHref, MARKDOWN_CALLOUT_TONES } from './chunk-BAKPMH3S.js';
4
- import { Toolbar } from './chunk-PGRPNDWM.js';
5
- import { FormField, Input } from './chunk-IUYUS2SO.js';
6
- import './chunk-YSGLEHND.js';
4
+ import { Toolbar } from './chunk-NR4CPM4T.js';
5
+ import { FormField, Input } from './chunk-TYONQSOK.js';
7
6
  import './chunk-PQADV6P6.js';
8
- import { Menu } from './chunk-BUVCV3WI.js';
7
+ import { Menu } from './chunk-D6FEHY5G.js';
9
8
  import { placePopup, viewportBounds } from './chunk-OMV5W53A.js';
10
- import { usePopupLayer } from './chunk-R25RGPUB.js';
9
+ import { usePopupLayer } from './chunk-H5XTJ7GJ.js';
11
10
  import { Button } from './chunk-OG6CL3EB.js';
12
11
  import { IconButton } from './chunk-4FQT6ZAY.js';
12
+ import './chunk-NUZHC6MM.js';
13
13
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
14
14
  import { cx } from './chunk-ODEQTPFM.js';
15
15
  import { forwardRef, useMemo, useRef, useState, useId, useSyncExternalStore, useCallback, useLayoutEffect, useEffect, useImperativeHandle } from 'react';
@@ -1,6 +1,7 @@
1
- export { FactList } from '../chunk-HOIZ6MIS.js';
2
- import '../chunk-6ZJ3N7QI.js';
1
+ export { FactList } from '../chunk-RLJXVFEH.js';
2
+ import '../chunk-I33UIUZD.js';
3
3
  import '../chunk-OMV5W53A.js';
4
- import '../chunk-R25RGPUB.js';
4
+ import '../chunk-H5XTJ7GJ.js';
5
+ import '../chunk-NUZHC6MM.js';
5
6
  import '../chunk-BZFWDIV6.js';
6
7
  import '../chunk-ODEQTPFM.js';
@@ -1,7 +1,8 @@
1
- export { FollowBanner } from '../chunk-WGD2HX2A.js';
1
+ export { FollowBanner } from '../chunk-OED6LUWE.js';
2
2
  import '../chunk-SZZRIHGT.js';
3
3
  import '../chunk-OMV5W53A.js';
4
- import '../chunk-R25RGPUB.js';
4
+ import '../chunk-H5XTJ7GJ.js';
5
5
  import '../chunk-OG6CL3EB.js';
6
+ import '../chunk-NUZHC6MM.js';
6
7
  import '../chunk-BZFWDIV6.js';
7
8
  import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The class a row of a list takes so its pointer target runs to its
3
+ * neighbour's across the gap between them (see HitArea.css). A row that takes
4
+ * it sets `--crewlet-hit-area-block` or `--crewlet-hit-area-inline` to half the
5
+ * gap its list is laid out with.
6
+ */
7
+ export declare const HIT_AREA_CLASS = "crewlet-hit-area";
@@ -0,0 +1,2 @@
1
+ import './HitArea.css';
2
+ export { HIT_AREA_CLASS } from './hitArea.js';
@@ -0,0 +1,2 @@
1
+ import '../chunk-MICRGE3J.js';
2
+ export { HIT_AREA_CLASS } from '../chunk-2YTOOH3A.js';
@@ -0,0 +1,35 @@
1
+ /*
2
+ * A ROW'S TARGET RUNS TO ITS NEIGHBOUR'S. The rows of one list are drawn a
3
+ * step apart, and the gap between them belonged to no row: a pointer crossing
4
+ * the list slowly met the list itself there, so the hand turned into the arrow
5
+ * and the hover fill went out between every two rows and came back on the
6
+ * next, which a reader sees as the cursor flickering. Each row that carries
7
+ * this class reaches half the gap on each side with an empty `::after`, so the
8
+ * targets meet in the middle of every gap and the drawn rows keep their
9
+ * spacing. The pseudo-element is part of its row: it takes the row's cursor,
10
+ * makes the row `:hover`, and a press on it is a press on the row.
11
+ *
12
+ * The reach is set on the ROW, from the gap its list is laid out with, as
13
+ * `--crewlet-hit-area-block` and `--crewlet-hit-area-inline` (each side may be
14
+ * set alone with the `-start` and `-end` forms). A row that sets none reaches
15
+ * nowhere. It stays inside the list's own padding, so no scroller grows.
16
+ *
17
+ * IT IS MEASURED FROM THE ROW'S PADDING EDGE, which is where an absolutely
18
+ * placed box starts, so a row drawn with a border (a transparent one
19
+ * included) adds the border's width to its reach.
20
+ *
21
+ * `position: relative` is at zero specificity, so a row positioned on purpose
22
+ * keeps its own position and is still the pseudo-element's containing block.
23
+ */
24
+ :where(.crewlet-hit-area) {
25
+ position: relative;
26
+ }
27
+
28
+ .crewlet-hit-area::after {
29
+ content: '';
30
+ position: absolute;
31
+ top: calc(var(--crewlet-hit-area-block-start, var(--crewlet-hit-area-block, 0px)) * -1);
32
+ bottom: calc(var(--crewlet-hit-area-block-end, var(--crewlet-hit-area-block, 0px)) * -1);
33
+ inset-inline-start: calc(var(--crewlet-hit-area-inline-start, var(--crewlet-hit-area-inline, 0px)) * -1);
34
+ inset-inline-end: calc(var(--crewlet-hit-area-inline-end, var(--crewlet-hit-area-inline, 0px)) * -1);
35
+ }
@@ -1,9 +1,10 @@
1
1
  import '../chunk-FFMCMSJB.js';
2
- export { HuePicker, HueSwatch } from '../chunk-SUXP4OBT.js';
2
+ export { HuePicker, HueSwatch } from '../chunk-F4LPQA4E.js';
3
3
  import '../chunk-AYKXMIOR.js';
4
- import '../chunk-CCAXYHQS.js';
5
- import '../chunk-VL6CUNSX.js';
4
+ import '../chunk-2QZ2VPHR.js';
5
+ import '../chunk-7SDUKCNW.js';
6
6
  import '../chunk-RKKO7QHH.js';
7
7
  import '../chunk-BHHIIK3M.js';
8
+ import '../chunk-2YTOOH3A.js';
8
9
  import '../chunk-BZFWDIV6.js';
9
10
  import '../chunk-ODEQTPFM.js';
@@ -1,6 +1,6 @@
1
- export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-IUYUS2SO.js';
2
- import '../chunk-YSGLEHND.js';
1
+ export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea } from '../chunk-TYONQSOK.js';
3
2
  import '../chunk-PQADV6P6.js';
4
3
  import '../chunk-4FQT6ZAY.js';
4
+ import '../chunk-NUZHC6MM.js';
5
5
  import '../chunk-BZFWDIV6.js';
6
6
  import '../chunk-ODEQTPFM.js';