@crewlethq/ui 0.36.0 → 0.37.1

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 (201) hide show
  1. package/README.md +41 -1
  2. package/dist/AgentHandoffPanel/index.js +4 -4
  3. package/dist/AppShell/index.d.ts +1 -0
  4. package/dist/AppShell/index.js +5 -3
  5. package/dist/{AppShell-JTSEOA57.css → AppShell-JBCZSSX3.css} +14 -2
  6. package/dist/ArrangeList/index.js +4 -4
  7. package/dist/ArtifactAccess/ArtifactAccess.d.ts +40 -0
  8. package/dist/ArtifactAccess/index.d.ts +3 -0
  9. package/dist/ArtifactAccess/index.js +2 -0
  10. package/dist/ArtifactAccess-Y53ZTRFS.css +31 -0
  11. package/dist/ArtifactBar/index.js +9 -7
  12. package/dist/ArtifactCard/ArtifactCard.d.ts +1 -6
  13. package/dist/ArtifactCard/index.d.ts +2 -1
  14. package/dist/ArtifactCard/index.js +3 -2
  15. package/dist/ArtifactCover/index.js +3 -3
  16. package/dist/ArtifactKindIllustration/ArtifactKindIllustration.d.ts +1 -1
  17. package/dist/ArtifactKindIllustration/index.js +1 -1
  18. package/dist/{ArtifactKindIllustration-5KTP43QS.css → ArtifactKindIllustration-KLFL7KBG.css} +1 -1
  19. package/dist/ArtifactMakeRow/index.d.ts +1 -0
  20. package/dist/ArtifactMakeRow/index.js +2 -1
  21. package/dist/{ArtifactMakeRow-RWUTS5MC.css → ArtifactMakeRow-W3RD5YWZ.css} +7 -2
  22. package/dist/ArtifactNameCell/ArtifactNameCell.d.ts +37 -0
  23. package/dist/ArtifactNameCell/index.d.ts +4 -0
  24. package/dist/ArtifactNameCell/index.js +4 -0
  25. package/dist/ArtifactNameCell-RTVP4LO4.css +104 -0
  26. package/dist/AvatarPicker/index.js +8 -6
  27. package/dist/Canvas/index.js +4 -3
  28. package/dist/CanvasBoard/index.js +7 -6
  29. package/dist/CanvasToolbar/index.js +6 -5
  30. package/dist/ChangeMark/index.js +4 -3
  31. package/dist/Checkbox/index.js +3 -3
  32. package/dist/ChoiceList/index.d.ts +1 -0
  33. package/dist/ChoiceList/index.js +2 -1
  34. package/dist/{ChoiceList-EA2W6MOS.css → ChoiceList-KFYFAECP.css} +26 -4
  35. package/dist/Combobox/index.d.ts +1 -0
  36. package/dist/Combobox/index.js +6 -5
  37. package/dist/{Combobox-4FUVYIE7.css → Combobox-YDONYDTM.css} +2 -1
  38. package/dist/CommandPalette/index.d.ts +1 -0
  39. package/dist/CommandPalette/index.js +7 -6
  40. package/dist/{CommandPalette-7CFGVBND.css → CommandPalette-TOZYLWLE.css} +5 -1
  41. package/dist/CommentThread/index.js +5 -5
  42. package/dist/Composer/index.js +3 -3
  43. package/dist/{Composer-PXITWNEK.css → Composer-TXULCPPV.css} +1 -1
  44. package/dist/ConfirmField/index.js +3 -3
  45. package/dist/DataTable/index.js +7 -7
  46. package/dist/DataView/index.js +12 -12
  47. package/dist/DatasetSource/index.d.ts +1 -0
  48. package/dist/DatasetSource/index.js +2 -1
  49. package/dist/{DatasetSource-SMGX4PS5.css → DatasetSource-FFKTD3ZU.css} +16 -1
  50. package/dist/DateTimePicker/index.js +4 -4
  51. package/dist/{DateTimePicker-2IVTKFV2.css → DateTimePicker-3A7JIIVL.css} +3 -3
  52. package/dist/DocTabsEditor/index.js +5 -5
  53. package/dist/Document/index.js +2 -2
  54. package/dist/{Document-YFWTWXJP.css → Document-TZ2NBLOR.css} +2 -2
  55. package/dist/{Editor-HORWMUM3.js → Editor-QV4JP242.js} +6 -6
  56. package/dist/FactList/index.js +4 -3
  57. package/dist/FollowBanner/index.js +3 -2
  58. package/dist/HitArea/hitArea.d.ts +7 -0
  59. package/dist/HitArea/index.d.ts +2 -0
  60. package/dist/HitArea/index.js +2 -0
  61. package/dist/HitArea-QUOS6ZDJ.css +35 -0
  62. package/dist/HuePicker/index.js +4 -3
  63. package/dist/Input/index.js +2 -2
  64. package/dist/{Input-ABGOFENS.css → Input-OQZBCRX5.css} +9 -4
  65. package/dist/Layer/index.js +2 -1
  66. package/dist/LinkInterstitial/index.js +4 -3
  67. package/dist/ListInput/index.js +4 -4
  68. package/dist/Listbox/index.js +3 -2
  69. package/dist/{Listbox-6WJNJQVQ.css → Listbox-NQV6E3FS.css} +3 -0
  70. package/dist/LivePreview/LivePreview.d.ts +15 -3
  71. package/dist/LivePreview/index.d.ts +2 -2
  72. package/dist/LivePreview/index.js +1 -1
  73. package/dist/{LivePreview-BROGKR4N.css → LivePreview-KQEDMQCY.css} +13 -0
  74. package/dist/MarkdownEditor/index.js +8 -6
  75. package/dist/Menu/index.js +3 -2
  76. package/dist/MergeConflicts/index.js +5 -4
  77. package/dist/Modal/index.js +3 -2
  78. package/dist/OrgTable/index.js +4 -3
  79. package/dist/Popover/index.js +3 -2
  80. package/dist/PresenterView/index.js +4 -3
  81. package/dist/PrincipalPicker/index.js +7 -6
  82. package/dist/RichEditor/index.js +1 -1
  83. package/dist/SegmentedControl/index.d.ts +1 -0
  84. package/dist/SegmentedControl/index.js +4 -3
  85. package/dist/{SegmentedControl-FLI45IOW.css → SegmentedControl-B7XCUOML.css} +9 -2
  86. package/dist/Select/index.d.ts +1 -0
  87. package/dist/Select/index.js +5 -4
  88. package/dist/{Select-W3CHTZXP.css → Select-F526HLNR.css} +5 -4
  89. package/dist/ShareDialog/index.js +7 -6
  90. package/dist/SheetColumnEditor/index.js +12 -11
  91. package/dist/SheetGrid/index.js +7 -6
  92. package/dist/{SheetGrid-YRDXTIIZ.css → SheetGrid-XK7T7M34.css} +9 -4
  93. package/dist/Shortcut/index.js +3 -2
  94. package/dist/SidebarNav/index.d.ts +1 -0
  95. package/dist/SidebarNav/index.js +2 -1
  96. package/dist/{SidebarNav-KF66MLOM.css → SidebarNav-7SGUZYKK.css} +21 -2
  97. package/dist/SlideCompare/index.js +4 -3
  98. package/dist/SlideFilmstrip/index.js +5 -4
  99. package/dist/SlideGrid/index.js +4 -3
  100. package/dist/SlideStage/index.js +3 -2
  101. package/dist/SourceEditor/index.js +2 -2
  102. package/dist/{SourceEditor-QAYE2JS6.css → SourceEditor-OKPWPFXK.css} +1 -1
  103. package/dist/Switcher/index.js +7 -7
  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/TagsInput/index.js +4 -4
  108. package/dist/{TagsInput-7EGBBXHS.css → TagsInput-CLFHP6I2.css} +1 -1
  109. package/dist/ThemeGallery/index.js +4 -3
  110. package/dist/ThemeSwitcher/index.js +5 -4
  111. package/dist/TimeWindowPicker/index.js +8 -7
  112. package/dist/{TimeWindowPicker-DEFDV77Z.css → TimeWindowPicker-I3HXC74I.css} +3 -3
  113. package/dist/Toaster/index.js +2 -1
  114. package/dist/Toolbar/index.js +3 -2
  115. package/dist/Tooltip/index.js +3 -2
  116. package/dist/TreeCanvas/index.js +5 -4
  117. package/dist/TreeGrid/index.js +3 -2
  118. package/dist/VersionCompare/index.js +5 -4
  119. package/dist/{chunk-CCAXYHQS.js → chunk-2QZ2VPHR.js} +3 -1
  120. package/dist/chunk-2YTOOH3A.js +4 -0
  121. package/dist/{chunk-QWNVSR6G.js → chunk-3KYVFG47.js} +1 -1
  122. package/dist/{chunk-3PTUDKSR.js → chunk-3SBM4DGI.js} +4 -4
  123. package/dist/{chunk-H5NOLRGH.js → chunk-3V5T5K5H.js} +1 -1
  124. package/dist/chunk-4ISUIS6F.js +3 -0
  125. package/dist/{chunk-PLTCDSTU.js → chunk-4LRAJXHL.js} +1 -1
  126. package/dist/{chunk-4ZJLOKSS.js → chunk-5BUOMF6N.js} +2 -2
  127. package/dist/{chunk-47JQAGRV.js → chunk-66X5WDKE.js} +1 -1
  128. package/dist/{chunk-MRMHZ437.js → chunk-6NNY5WBF.js} +7 -6
  129. package/dist/{chunk-5RT5O4JR.js → chunk-7CGPPAYR.js} +1 -1
  130. package/dist/{chunk-F73MC7EZ.js → chunk-7KHM2FZH.js} +2 -2
  131. package/dist/{chunk-VL6CUNSX.js → chunk-7SDUKCNW.js} +4 -1
  132. package/dist/{chunk-XMRTFPWX.js → chunk-A23KDROH.js} +3 -3
  133. package/dist/{chunk-N5SKHIAP.js → chunk-A72JPXIV.js} +8 -6
  134. package/dist/{chunk-PJIPUEJ3.js → chunk-AXS6MBNH.js} +1 -1
  135. package/dist/{chunk-2FPENTCF.js → chunk-AYHIF6DH.js} +1 -1
  136. package/dist/{chunk-J6ON5SYE.js → chunk-B5J23C73.js} +1 -1
  137. package/dist/{chunk-7VAUGG6B.js → chunk-B5UHX5UC.js} +2 -2
  138. package/dist/chunk-BGLKLXL3.js +29 -0
  139. package/dist/{chunk-FHHYXZSP.js → chunk-C7OKDYBH.js} +2 -2
  140. package/dist/{chunk-JBUMD6DS.js → chunk-CFGGE3HO.js} +1 -1
  141. package/dist/{chunk-XGBLRDSU.js → chunk-CQFQGAZI.js} +17 -7
  142. package/dist/{chunk-GMLAKNFY.js → chunk-D2OL3ZSS.js} +1 -1
  143. package/dist/{chunk-D7GNNID2.js → chunk-D3EJSLCL.js} +2 -2
  144. package/dist/{chunk-BUVCV3WI.js → chunk-D6FEHY5G.js} +3 -2
  145. package/dist/{chunk-4BYHAOHH.js → chunk-DAERKOOG.js} +3 -2
  146. package/dist/{chunk-IQH3DDZ2.js → chunk-DOLATMGF.js} +2 -2
  147. package/dist/{chunk-W3HYWD63.js → chunk-DZSBFITC.js} +15 -8
  148. package/dist/{chunk-PPFX6GRK.js → chunk-EAEJ7CDM.js} +6 -3
  149. package/dist/{chunk-WZGYIVYH.js → chunk-EAQLI2SO.js} +4 -2
  150. package/dist/{chunk-GYBDPCRC.js → chunk-ECGGQX2H.js} +2 -2
  151. package/dist/{chunk-FG4O64DV.js → chunk-F3WZ5AKM.js} +5 -5
  152. package/dist/{chunk-SUXP4OBT.js → chunk-F4LPQA4E.js} +1 -1
  153. package/dist/{chunk-KYZMN6I6.js → chunk-FBW3Q2OY.js} +2 -2
  154. package/dist/{chunk-JQLS3MZB.js → chunk-FWBKMPNR.js} +1 -1
  155. package/dist/{chunk-OOWPSBIS.js → chunk-GMW4ZHST.js} +3 -3
  156. package/dist/{chunk-R25RGPUB.js → chunk-H5XTJ7GJ.js} +2 -3
  157. package/dist/{chunk-PGZ2R3ON.js → chunk-HDHZWIFL.js} +8 -6
  158. package/dist/{chunk-GRYZ5EP3.js → chunk-HMLAWVG6.js} +13 -2
  159. package/dist/{chunk-6ZJ3N7QI.js → chunk-I33UIUZD.js} +1 -1
  160. package/dist/{chunk-RH2NCQBZ.js → chunk-ISA2O2BK.js} +2 -2
  161. package/dist/{chunk-K3IJQNB7.js → chunk-KHJIEPZV.js} +3 -2
  162. package/dist/{chunk-ES4RKQ7B.js → chunk-MG3HTY6F.js} +7 -7
  163. package/dist/chunk-MICRGE3J.js +1 -0
  164. package/dist/{chunk-WNAYQQ6Y.js → chunk-MMPKN7WV.js} +2 -2
  165. package/dist/{chunk-PGRPNDWM.js → chunk-NR4CPM4T.js} +1 -1
  166. package/dist/{chunk-5WDXPHEW.js → chunk-NRBAXRWE.js} +1 -1
  167. package/dist/{chunk-66ADEPFB.js → chunk-NS4NSHVX.js} +5 -3
  168. package/dist/{chunk-YSGLEHND.js → chunk-NUZHC6MM.js} +14 -2
  169. package/dist/{chunk-WGD2HX2A.js → chunk-OED6LUWE.js} +1 -1
  170. package/dist/{chunk-OSZDHN5Z.js → chunk-OHA6WSAG.js} +5 -10
  171. package/dist/chunk-P5VGSVWG.js +39 -0
  172. package/dist/{chunk-KJW2AS57.js → chunk-PEUGPAKH.js} +1 -1
  173. package/dist/{chunk-IPAU6FLH.js → chunk-PPHTIKZO.js} +1 -1
  174. package/dist/{chunk-P6WFZDKS.js → chunk-PWG3VHRQ.js} +2 -2
  175. package/dist/{chunk-HOIZ6MIS.js → chunk-RLJXVFEH.js} +1 -1
  176. package/dist/{chunk-NQGPD6NX.js → chunk-RMEBFYL7.js} +1 -1
  177. package/dist/{chunk-APDKUGSH.js → chunk-S27UBCVX.js} +5 -4
  178. package/dist/{chunk-XEGZHHRH.js → chunk-SVGARBDY.js} +1 -1
  179. package/dist/{chunk-UWGUKMBK.js → chunk-SYBYFQTY.js} +2 -2
  180. package/dist/{chunk-IUYUS2SO.js → chunk-TYONQSOK.js} +2 -2
  181. package/dist/{chunk-L4WZSVMT.js → chunk-UB6MLXUL.js} +3 -3
  182. package/dist/{chunk-MJW6SQYB.js → chunk-UBZDYOCA.js} +1 -1
  183. package/dist/{chunk-2DV4THNQ.js → chunk-UWRBD2YO.js} +2 -2
  184. package/dist/{chunk-DEMALFHY.js → chunk-UXYEOWG5.js} +1 -1
  185. package/dist/{chunk-UCCC7YVZ.js → chunk-W7PAIVAP.js} +4 -2
  186. package/dist/{chunk-T5RQGI6O.js → chunk-X3UYTAOG.js} +1 -1
  187. package/dist/{chunk-VKKUGZ3G.js → chunk-XQZ6EWOE.js} +8 -5
  188. package/dist/{chunk-TVRBQMIX.js → chunk-YPMGP2X4.js} +6 -6
  189. package/dist/{chunk-EOQFPZEE.js → chunk-YSG3DW7W.js} +1 -1
  190. package/dist/{chunk-2QEDJSJC.js → chunk-ZMDYQ2HH.js} +1 -1
  191. package/dist/{chunk-27GD7LVR.js → chunk-ZMWXE4GT.js} +1 -1
  192. package/dist/generated/index.d.ts +3 -0
  193. package/dist/generated/index.js +109 -105
  194. package/dist/index.js +109 -105
  195. package/dist/styles.css +371 -63
  196. package/dist/utils/focusModality.d.ts +17 -1
  197. package/dist/utils/index.d.ts +1 -1
  198. package/dist/utils/index.js +1 -1
  199. package/package.json +3 -3
  200. package/dist/chunk-WKEPORNM.js +0 -2
  201. /package/dist/{chunk-5BP6IS3N.js → chunk-4QQ3MND5.js} +0 -0
@@ -1,12 +1,13 @@
1
- export { CanvasToolbar, toolForKey } from '../chunk-7VAUGG6B.js';
2
- import '../chunk-PGRPNDWM.js';
3
- import '../chunk-4BYHAOHH.js';
1
+ export { CanvasToolbar, toolForKey } from '../chunk-B5UHX5UC.js';
2
+ import '../chunk-NR4CPM4T.js';
3
+ import '../chunk-DAERKOOG.js';
4
4
  import '../chunk-LM3ISVJA.js';
5
- import '../chunk-6ZJ3N7QI.js';
5
+ import '../chunk-I33UIUZD.js';
6
6
  import '../chunk-SMBKXWML.js';
7
7
  import '../chunk-OMV5W53A.js';
8
- import '../chunk-R25RGPUB.js';
8
+ import '../chunk-H5XTJ7GJ.js';
9
9
  import '../chunk-OG6CL3EB.js';
10
10
  import '../chunk-4FQT6ZAY.js';
11
+ import '../chunk-NUZHC6MM.js';
11
12
  import '../chunk-BZFWDIV6.js';
12
13
  import '../chunk-ODEQTPFM.js';
@@ -1,8 +1,9 @@
1
- export { ChangeMark } from '../chunk-47JQAGRV.js';
1
+ export { ChangeMark } from '../chunk-66X5WDKE.js';
2
2
  import '../chunk-LFSIKGRQ.js';
3
3
  import '../chunk-Z7JYG5TF.js';
4
4
  import '../chunk-AYKXMIOR.js';
5
- import '../chunk-6ZJ3N7QI.js';
5
+ import '../chunk-I33UIUZD.js';
6
6
  import '../chunk-OMV5W53A.js';
7
- import '../chunk-R25RGPUB.js';
7
+ import '../chunk-H5XTJ7GJ.js';
8
+ import '../chunk-NUZHC6MM.js';
8
9
  import '../chunk-ODEQTPFM.js';
@@ -1,7 +1,7 @@
1
- export { Checkbox, CheckboxGroup } from '../chunk-PJIPUEJ3.js';
2
- import '../chunk-IUYUS2SO.js';
3
- import '../chunk-YSGLEHND.js';
1
+ export { Checkbox, CheckboxGroup } from '../chunk-AXS6MBNH.js';
2
+ import '../chunk-TYONQSOK.js';
4
3
  import '../chunk-PQADV6P6.js';
5
4
  import '../chunk-4FQT6ZAY.js';
5
+ import '../chunk-NUZHC6MM.js';
6
6
  import '../chunk-BZFWDIV6.js';
7
7
  import '../chunk-ODEQTPFM.js';
@@ -1,3 +1,4 @@
1
+ import '../HitArea/HitArea.css';
1
2
  import './ChoiceList.css';
2
3
  export { ChoiceList } from './ChoiceList.js';
3
4
  export type { ChoiceListOption, ChoiceListProps } from './ChoiceList.js';
@@ -1,2 +1,3 @@
1
- export { ChoiceList } from '../chunk-WZGYIVYH.js';
1
+ export { ChoiceList } from '../chunk-EAQLI2SO.js';
2
+ import '../chunk-2YTOOH3A.js';
2
3
  import '../chunk-ODEQTPFM.js';
@@ -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';
1
+ export { CommandPalette } from '../chunk-A72JPXIV.js';
2
+ import '../chunk-SVGARBDY.js';
3
+ import '../chunk-7KHM2FZH.js';
4
+ import '../chunk-TYONQSOK.js';
5
5
  import '../chunk-SMBKXWML.js';
6
- import '../chunk-YSGLEHND.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-WNAYQQ6Y.js';
1
+ export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-MMPKN7WV.js';
2
2
  import '../chunk-CI3VPIJN.js';
3
3
  import '../chunk-3CZ7XAVY.js';
4
4
  import '../chunk-EUCC37WY.js';
5
5
  import '../chunk-5AQBPHZD.js';
6
6
  import '../chunk-PZKHBB7D.js';
7
- import '../chunk-P6WFZDKS.js';
8
- import '../chunk-RH2NCQBZ.js';
9
- import '../chunk-IUYUS2SO.js';
7
+ import '../chunk-PWG3VHRQ.js';
8
+ import '../chunk-ISA2O2BK.js';
9
+ import '../chunk-TYONQSOK.js';
10
10
  import '../chunk-SMBKXWML.js';
11
- import '../chunk-YSGLEHND.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';
1
+ export { COMPOSER_COUNTER_AT, Composer } from '../chunk-ISA2O2BK.js';
2
+ import '../chunk-TYONQSOK.js';
3
3
  import '../chunk-SMBKXWML.js';
4
- import '../chunk-YSGLEHND.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-XMRTFPWX.js';
2
- import '../chunk-XEGZHHRH.js';
1
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-A23KDROH.js';
3
2
  import '../chunk-STJ7QBC3.js';
4
3
  import '../chunk-DTIW4CHZ.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-ES4RKQ7B.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-MG3HTY6F.js';
2
2
  import '../chunk-HOXGBLEY.js';
3
- import '../chunk-XMRTFPWX.js';
4
- import '../chunk-L4WZSVMT.js';
5
- import '../chunk-XEGZHHRH.js';
6
- import '../chunk-F73MC7EZ.js';
3
+ import '../chunk-A23KDROH.js';
4
+ import '../chunk-UB6MLXUL.js';
7
5
  import '../chunk-STJ7QBC3.js';
8
6
  import '../chunk-DTIW4CHZ.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';
16
+ import '../chunk-TYONQSOK.js';
17
17
  import '../chunk-SMBKXWML.js';
18
- import '../chunk-YSGLEHND.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';
1
+ export { DATASET_SOURCE_KINDS, DatasetSource, DatasetSourceList } from '../chunk-HMLAWVG6.js';
2
2
  import '../chunk-GFV4LJHH.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
  }
@@ -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
5
  import '../chunk-RSAQOKH3.js';
7
- import '../chunk-BUVCV3WI.js';
6
+ import '../chunk-D6FEHY5G.js';
8
7
  import '../chunk-OMV5W53A.js';
9
- import '../chunk-R25RGPUB.js';
8
+ import '../chunk-H5XTJ7GJ.js';
10
9
  import '../chunk-OG6CL3EB.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';
@@ -124,8 +124,13 @@
124
124
  * round it before anybody had touched a key. A refused field keeps its own
125
125
  * colour under a pointer too (below). A document that tracks nothing keeps
126
126
  * the keyboard's ring.
127
+ *
128
+ * The modality is matched inside :where(), here and in every field's narrowing
129
+ * rule, so it narrows a ring and never outranks a variant's own: at the
130
+ * attribute's specificity it beat `.crewlet-input--command`, and the palette's
131
+ * borderless search field drew a square accent hairline round its text.
127
132
  */
128
- :root[data-crewlet-focus='pointer'] .crewlet-input:has(.crewlet-input__control:focus-visible) {
133
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-input:has(.crewlet-input__control:focus-visible) {
129
134
  outline-width: 1px;
130
135
  outline-color: var(--color-border-selected);
131
136
  }
@@ -150,7 +155,7 @@
150
155
  outline-color: var(--color-feedback-danger);
151
156
  }
152
157
 
153
- :root[data-crewlet-focus='pointer'] .crewlet-input.is-error:has(.crewlet-input__control:focus-visible) {
158
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-input.is-error:has(.crewlet-input__control:focus-visible) {
154
159
  outline-color: var(--color-feedback-danger);
155
160
  }
156
161
 
@@ -395,7 +400,7 @@
395
400
  }
396
401
 
397
402
  /* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
398
- :root[data-crewlet-focus='pointer'] .crewlet-textarea:focus-visible {
403
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-textarea:focus-visible {
399
404
  outline-width: 1px;
400
405
  outline-color: var(--color-border-selected);
401
406
  }
@@ -408,7 +413,7 @@
408
413
  outline-color: var(--color-feedback-danger);
409
414
  }
410
415
 
411
- :root[data-crewlet-focus='pointer'] .crewlet-textarea.is-error:focus-visible {
416
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-textarea.is-error:focus-visible {
412
417
  outline-color: var(--color-feedback-danger);
413
418
  }
414
419