@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
@@ -1,4 +1,5 @@
1
- export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from '../chunk-NQGPD6NX.js';
1
+ export { SLIDE_HEIGHT, SLIDE_WIDTH, SlideStage, useSlideKeys } from '../chunk-RMEBFYL7.js';
2
2
  import '../chunk-OMV5W53A.js';
3
- import '../chunk-R25RGPUB.js';
3
+ import '../chunk-H5XTJ7GJ.js';
4
+ import '../chunk-NUZHC6MM.js';
4
5
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
- export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from '../chunk-D7GNNID2.js';
2
- import '../chunk-YSGLEHND.js';
1
+ export { SOURCE_EDITOR_KEYS, SourceEditor, lineStart } from '../chunk-D3EJSLCL.js';
2
+ import '../chunk-NUZHC6MM.js';
3
3
  import '../chunk-BZFWDIV6.js';
4
4
  import '../chunk-ODEQTPFM.js';
@@ -37,7 +37,7 @@
37
37
  outline-offset: -1px;
38
38
  }
39
39
 
40
- :root[data-crewlet-focus='pointer'] .crewlet-source-editor:has(.crewlet-source-editor__field:focus-visible) {
40
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-source-editor:has(.crewlet-source-editor__field:focus-visible) {
41
41
  outline-width: 1px;
42
42
  outline-color: var(--color-border-selected);
43
43
  }
@@ -4,13 +4,17 @@ export interface StatGroupProps extends HTMLAttributes<HTMLDivElement> {
4
4
  * How many tiles a row holds. FIXED, and that is the whole point: the board
5
5
  * this replaces reflowed from one column to three as tiles appeared and
6
6
  * vanished, which moved every number on the page for a reason that had
7
- * nothing to do with the numbers.
7
+ * nothing to do with the numbers. What changes it is the row's own width:
8
+ * four fold to two under 640px of row, and three stack one a row under
9
+ * 480px, so no row is left with a lone tile.
8
10
  */
9
11
  columns?: 2 | 3 | 4;
10
12
  /**
11
- * Inside another card: the row gives up its own surface, hairline and
12
- * corner and keeps only the hairlines between its tiles, so a card holding
13
- * it does not draw a box inside a box.
13
+ * The row gives up its own surface, hairline and corner and keeps only the
14
+ * hairlines between its tiles, so the host holding it does not draw a box
15
+ * inside a box. A row that is a `Card`'s content, or its body's, is flush
16
+ * without being told; this is for any other host (a widget's frame, a panel
17
+ * of an application's own).
14
18
  */
15
19
  flush?: boolean | undefined;
16
20
  children?: ReactNode;
@@ -19,8 +23,8 @@ export interface StatGroupProps extends HTMLAttributes<HTMLDivElement> {
19
23
  * A row of stat tiles, as one card.
20
24
  *
21
25
  * The tiles inside it are `flush`, so the group draws the surface and the
22
- * hairlines between them rather than four separate cards with gaps. Under the
23
- * md breakpoint it drops to two columns, which is the last count at which a
24
- * six-character number still fits on one line of a phone.
26
+ * hairlines between them rather than four separate cards with gaps. It folds
27
+ * by its OWN width rather than the window's (see StatGroup.css), so a row in
28
+ * a narrow column beside a rail folds where a row across a page does not.
25
29
  */
26
30
  export declare function StatGroup({ columns, flush, className, children, ...rest }: StatGroupProps): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
- export { StatGroup } from '../chunk-JXRI5YD2.js';
1
+ export { StatGroup } from '../chunk-BT5H2THK.js';
2
2
  import '../chunk-ODEQTPFM.js';
@@ -0,0 +1,168 @@
1
+ /*
2
+ * A row of stat tiles.
3
+ *
4
+ * ITS COLUMN COUNT NEVER MOVES with its contents. A grid that reflowed as
5
+ * tiles appeared and vanished moved every number on the page for a reason that
6
+ * had nothing to do with the numbers, which is exactly what a reader watching
7
+ * a live board is trying not to have happen.
8
+ *
9
+ * IT FOLDS BY ITS OWN WIDTH, never the window's. The row used to drop to two
10
+ * columns under a 1024px viewport, but a row's width is whatever its column
11
+ * leaves it: beside the rail and a settings column at exactly 1024 a
12
+ * four-column row was 489px wide, its tiles about 120px each, and its figures
13
+ * were cut ("Not s…", "1.6 …"), while on a phone a three-column row folded to
14
+ * two and left its third tile alone on a row of its own. So the row is a size
15
+ * container, and the tiles take their place from the row's own width.
16
+ *
17
+ * TWELVE TRACKS, AND EACH TILE SPANS ITS SHARE. A container query styles what
18
+ * is inside the container, never the container itself, so the row cannot
19
+ * change its own column count by its own width. Its tiles can change how many
20
+ * of its twelve tracks they span, which is the same layout: twelve divides by
21
+ * every count a row takes (one, two, three and four a row).
22
+ *
23
+ * The row's width comes from where it stands, as a block's does: inline-size
24
+ * containment means its contents never widen it.
25
+ */
26
+
27
+ .crewlet-stat-group {
28
+ container: crewlet-stat-group / inline-size;
29
+ display: grid;
30
+ grid-template-columns: repeat(12, minmax(0, 1fr));
31
+ /* The flush-panel recipe: the card's surface, its hairline and its 12px
32
+ corner, flat as every card is, and `overflow: hidden`, which is what lets
33
+ the tiles inside sit against the corners without their own hairlines
34
+ escaping past them. */
35
+ background: var(--color-surface-subtle);
36
+ border: 1px solid var(--color-border-default);
37
+ border-radius: var(--radius-lg);
38
+ overflow: hidden;
39
+ }
40
+
41
+ /*
42
+ * Inside another card: the card's surface and edge are the row's.
43
+ *
44
+ * A ROW STANDING IN A CARD IS FLUSH WHETHER OR NOT ITS CALLER SAID SO. Six
45
+ * settings pages wrapped a row in a card without `flush`, and each drew the
46
+ * row's own edge and 12px corner one pixel inside the card's: a box inside a
47
+ * box, and inside a padded body a third frame. A row that is a card's content,
48
+ * or its body's, is that card's row; `flush` is for a host that is not a
49
+ * Card (a widget's frame, a panel of an application's own).
50
+ */
51
+ .crewlet-stat-group--flush,
52
+ .crewlet-card > .crewlet-stat-group,
53
+ .crewlet-card__body > .crewlet-stat-group {
54
+ background: transparent;
55
+ border: 0;
56
+ border-radius: var(--radius-none);
57
+ }
58
+
59
+ /*
60
+ * A tile inside the row brings no surface of its own, whether or not its
61
+ * caller remembered `flush`. The group draws one card and the hairlines
62
+ * inside it, so a tile that kept its own border and radius is a card inside
63
+ * a card: a box inside a box, which is what the reader sees.
64
+ *
65
+ * TWO CLASSES, NOT :where(). Written as `> :where(.crewlet-statcard)` this
66
+ * weighed exactly what the tile's own `.crewlet-statcard` rule weighs, so
67
+ * which one painted was settled by whichever stylesheet the bundler put
68
+ * last. It put the tile's last, and every tile in every group drew its own
69
+ * border, its own 12px corner and its own surface inside the group's.
70
+ * Naming both classes settles it by weight, which no import order can undo.
71
+ */
72
+ .crewlet-stat-group > .crewlet-statcard {
73
+ background: transparent;
74
+ border: 0;
75
+ border-radius: var(--radius-none);
76
+ }
77
+
78
+ /*
79
+ * Each tile spans its share of the twelve tracks: the row's `columns`, set on
80
+ * it as `--crewlet-stat-group-cols`, a row.
81
+ */
82
+ .crewlet-stat-group > * {
83
+ grid-column: span calc(12 / var(--crewlet-stat-group-cols, 4));
84
+ }
85
+
86
+ /*
87
+ * The hairlines between tiles: one before every tile that does not start a
88
+ * row, and one above every tile that is not on the first.
89
+ *
90
+ * NAMED TWICE, ON PURPOSE. The rule above clears the tile's own border and
91
+ * weighs two classes, so a one-class selector here loses to it and the row
92
+ * of numbers runs together with nothing between the columns. The first
93
+ * selector of each pair matches whatever a caller puts in the row; the second
94
+ * weighs at least as much as the rule it has to beat, and sits after it.
95
+ */
96
+ .crewlet-stat-group > * + *,
97
+ .crewlet-stat-group > .crewlet-statcard + .crewlet-statcard {
98
+ border-left: 1px solid var(--color-border-default);
99
+ }
100
+
101
+ .crewlet-stat-group[data-columns='2'] > :nth-child(2n + 1),
102
+ .crewlet-stat-group[data-columns='2'] > .crewlet-statcard:nth-child(2n + 1),
103
+ .crewlet-stat-group[data-columns='3'] > :nth-child(3n + 1),
104
+ .crewlet-stat-group[data-columns='3'] > .crewlet-statcard:nth-child(3n + 1),
105
+ .crewlet-stat-group[data-columns='4'] > :nth-child(4n + 1),
106
+ .crewlet-stat-group[data-columns='4'] > .crewlet-statcard:nth-child(4n + 1) {
107
+ border-left: 0;
108
+ }
109
+
110
+ .crewlet-stat-group[data-columns='2'] > :nth-child(n + 3),
111
+ .crewlet-stat-group[data-columns='2'] > .crewlet-statcard:nth-child(n + 3),
112
+ .crewlet-stat-group[data-columns='3'] > :nth-child(n + 4),
113
+ .crewlet-stat-group[data-columns='3'] > .crewlet-statcard:nth-child(n + 4),
114
+ .crewlet-stat-group[data-columns='4'] > :nth-child(n + 5),
115
+ .crewlet-stat-group[data-columns='4'] > .crewlet-statcard:nth-child(n + 5) {
116
+ border-top: 1px solid var(--color-border-default);
117
+ }
118
+
119
+ /*
120
+ * FOUR A ROW FOLD TO TWO under 640px of row (the phone breakpoint's number):
121
+ * four tiles of 160px is the narrowest at which a six-character figure and a
122
+ * two-word label still stand on one line each. Two by two keeps every row
123
+ * full.
124
+ */
125
+ @container crewlet-stat-group (width < 640px) {
126
+ .crewlet-stat-group[data-columns='4'] > *,
127
+ .crewlet-stat-group[data-columns='4'] > .crewlet-statcard {
128
+ grid-column: span 6;
129
+ }
130
+
131
+ .crewlet-stat-group[data-columns='4'] > :nth-child(odd),
132
+ .crewlet-stat-group[data-columns='4'] > .crewlet-statcard:nth-child(odd) {
133
+ border-left: 0;
134
+ }
135
+
136
+ .crewlet-stat-group[data-columns='4'] > :nth-child(even),
137
+ .crewlet-stat-group[data-columns='4'] > .crewlet-statcard:nth-child(even) {
138
+ border-left: 1px solid var(--color-border-default);
139
+ }
140
+
141
+ .crewlet-stat-group[data-columns='4'] > :nth-child(n + 3),
142
+ .crewlet-stat-group[data-columns='4'] > .crewlet-statcard:nth-child(n + 3) {
143
+ border-top: 1px solid var(--color-border-default);
144
+ }
145
+ }
146
+
147
+ /*
148
+ * THREE A ROW STACK under 480px of row (the small breakpoint's number), at the
149
+ * same 160px a tile. Folded to two, three tiles stood two and one, the last
150
+ * alone at double width and a different height, which read as a tile that had
151
+ * failed to load; one a row leaves no row short.
152
+ */
153
+ @container crewlet-stat-group (width < 480px) {
154
+ .crewlet-stat-group[data-columns='3'] > *,
155
+ .crewlet-stat-group[data-columns='3'] > .crewlet-statcard {
156
+ grid-column: span 12;
157
+ }
158
+
159
+ .crewlet-stat-group[data-columns='3'] > *,
160
+ .crewlet-stat-group[data-columns='3'] > .crewlet-statcard + .crewlet-statcard {
161
+ border-left: 0;
162
+ }
163
+
164
+ .crewlet-stat-group[data-columns='3'] > :nth-child(n + 2),
165
+ .crewlet-stat-group[data-columns='3'] > .crewlet-statcard:nth-child(n + 2) {
166
+ border-top: 1px solid var(--color-border-default);
167
+ }
168
+ }
@@ -1,17 +1,17 @@
1
- export { Switcher } from '../chunk-66NGUD5S.js';
2
- import '../chunk-XEGZHHRH.js';
3
- import '../chunk-F73MC7EZ.js';
1
+ export { Switcher } from '../chunk-6NNY5WBF.js';
2
+ import '../chunk-SVGARBDY.js';
3
+ import '../chunk-7KHM2FZH.js';
4
+ import '../chunk-KHJIEPZV.js';
4
5
  import '../chunk-FYTIJM2T.js';
5
- import '../chunk-K3IJQNB7.js';
6
6
  import '../chunk-TEUQWOWZ.js';
7
- import '../chunk-IUYUS2SO.js';
8
- import '../chunk-YSGLEHND.js';
7
+ import '../chunk-TYONQSOK.js';
9
8
  import '../chunk-PQADV6P6.js';
9
+ import '../chunk-RSAQOKH3.js';
10
10
  import '../chunk-RTPQDNW3.js';
11
11
  import '../chunk-OMV5W53A.js';
12
- import '../chunk-R25RGPUB.js';
12
+ import '../chunk-H5XTJ7GJ.js';
13
13
  import '../chunk-OG6CL3EB.js';
14
- import '../chunk-RSAQOKH3.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,6 +1,6 @@
1
- export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from '../chunk-K4VP6ZKE.js';
1
+ export { TABLE_TAGS_CELL_LABELS, TableDateCell, TableEntityCell, TableKeyCell, TableNumberCell, TableStatusCell, TableTagsCell, TableTextCell } from '../chunk-4BJK7FE5.js';
2
2
  import '../chunk-FBSEJO2C.js';
3
- import '../chunk-GFV4LJHH.js';
3
+ import '../chunk-KYIAFNU7.js';
4
4
  import '../chunk-WIATRXEJ.js';
5
5
  import '../chunk-3CZ7XAVY.js';
6
6
  import '../chunk-EUCC37WY.js';
@@ -1,3 +1,4 @@
1
+ import '../HitArea/HitArea.css';
1
2
  import './Tabs.css';
2
3
  export { TabPanel, Tabs, tabId } from './Tabs.js';
3
4
  export type { TabPanelProps, TabsItem, TabsMarker, TabsProps, TabsRenderItemProps, TabsSize, TabsVariant, } from './Tabs.js';
@@ -1,5 +1,6 @@
1
- export { TabPanel, Tabs, tabId } from '../chunk-VL6CUNSX.js';
1
+ export { TabPanel, Tabs, tabId } from '../chunk-7SDUKCNW.js';
2
2
  import '../chunk-RKKO7QHH.js';
3
3
  import '../chunk-BHHIIK3M.js';
4
+ import '../chunk-2YTOOH3A.js';
4
5
  import '../chunk-BZFWDIV6.js';
5
6
  import '../chunk-ODEQTPFM.js';
@@ -28,8 +28,9 @@
28
28
  * row is reachable by the arrow keys either way.
29
29
  */
30
30
  .crewlet-tabs--underline {
31
+ --crewlet-tabs-gap: var(--spacing-2);
31
32
  display: flex;
32
- gap: var(--spacing-2);
33
+ gap: var(--crewlet-tabs-gap);
33
34
  border-bottom: 1px solid var(--color-border-default);
34
35
  position: relative;
35
36
  width: 100%;
@@ -103,8 +104,9 @@
103
104
  */
104
105
  .crewlet-tabs--pill {
105
106
  --crewlet-tabs-pill-inset: 1px;
107
+ --crewlet-tabs-gap: var(--crewlet-tabs-pill-inset);
106
108
 
107
- gap: var(--crewlet-tabs-pill-inset);
109
+ gap: var(--crewlet-tabs-gap);
108
110
  padding: var(--crewlet-tabs-pill-inset);
109
111
  background: var(--color-surface-elevated);
110
112
  border: 1px solid var(--color-border-default);
@@ -165,6 +167,20 @@
165
167
  background-color var(--motion-duration-fast) var(--motion-easing-default),
166
168
  color var(--motion-duration-fast) var(--motion-easing-default),
167
169
  box-shadow var(--motion-duration-fast) var(--motion-easing-default);
170
+ /* Half the gap to each neighbour, so the targets meet (HitArea.css). A row
171
+ that wraps reaches across its rows' gap too. */
172
+ --crewlet-hit-area-inline: calc(var(--crewlet-tabs-gap, 0px) / 2);
173
+ --crewlet-hit-area-block: calc(var(--crewlet-tabs-row-gap, 0px) / 2);
174
+ }
175
+
176
+ /* The row's two ends reach nothing past it: the underline row is a scroller,
177
+ and a target past its last tab would be width it scrolls by. */
178
+ .crewlet-tabs__tab:first-child {
179
+ --crewlet-hit-area-inline-start: 0px;
180
+ }
181
+
182
+ .crewlet-tabs__tab:last-child {
183
+ --crewlet-hit-area-inline-end: 0px;
168
184
  }
169
185
 
170
186
  /*
@@ -311,9 +327,10 @@
311
327
  * (FilterChip draws the same pair).
312
328
  */
313
329
  .crewlet-tabs--chip {
330
+ --crewlet-tabs-gap: calc(var(--spacing-1) / 2);
314
331
  display: inline-flex;
315
332
  align-items: center;
316
- gap: calc(var(--spacing-1) / 2);
333
+ gap: var(--crewlet-tabs-gap);
317
334
  }
318
335
 
319
336
  .crewlet-tabs--chip .crewlet-tabs__tab {
package/dist/Tag/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { Tag } from '../chunk-GFV4LJHH.js';
1
+ export { Tag } from '../chunk-KYIAFNU7.js';
2
2
  import '../chunk-WIATRXEJ.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -277,12 +277,22 @@
277
277
  --crewlet-tag-line: var(--color-border-strong-hover);
278
278
  }
279
279
 
280
- /* The neutral outline is the engine's `.badge.outline`: the hairline step as
281
- the boundary, and the tertiary ink, which is a quieter register than the
282
- tinted outlines keep. It is the appearance for a value that is not a state
283
- at all, so it says less than its neighbours on purpose. */
280
+ /*
281
+ * The neutral outline: the neutral pill's own boundary with no fill, and the
282
+ * tertiary ink, which is a quieter register than the tinted outlines keep. It
283
+ * is the appearance for a value that is not a state at all, so it says less
284
+ * than its neighbours on purpose, by its ink and its empty ground.
285
+ *
286
+ * NOT BY A FAINTER EDGE. It used to take the plain hairline, the line that
287
+ * finds a card, and on the card it so often stands on that line measured
288
+ * 1.07:1 in dark: Limits' "Off" beside a filled "Default", an audit row's
289
+ * machine and open, a tool's "builtin", all read as loose words rather than
290
+ * as pills. The strong step is the edge the neutral soft pill already draws
291
+ * (1.49:1 dark, 1.52:1 light on the card), so the two neutral pills differ by
292
+ * their fill alone and both read as pills.
293
+ */
284
294
  .crewlet-tag--neutral.crewlet-tag--outline {
285
- border-color: var(--color-border-default);
295
+ border-color: var(--color-border-strong);
286
296
  --crewlet-tag-ink: var(--color-text-tertiary);
287
297
  }
288
298
 
@@ -1,11 +1,11 @@
1
- export { TagsInput } from '../chunk-AOLCZDZ6.js';
2
- import '../chunk-GFV4LJHH.js';
1
+ export { TagsInput } from '../chunk-BH52LIY6.js';
2
+ import '../chunk-KYIAFNU7.js';
3
3
  import '../chunk-WIATRXEJ.js';
4
- import '../chunk-F73MC7EZ.js';
5
- import '../chunk-YSGLEHND.js';
6
- import '../chunk-OMV5W53A.js';
7
- import '../chunk-R25RGPUB.js';
4
+ import '../chunk-7KHM2FZH.js';
8
5
  import '../chunk-RSAQOKH3.js';
6
+ import '../chunk-OMV5W53A.js';
7
+ import '../chunk-H5XTJ7GJ.js';
9
8
  import '../chunk-4FQT6ZAY.js';
9
+ import '../chunk-NUZHC6MM.js';
10
10
  import '../chunk-BZFWDIV6.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -77,7 +77,7 @@
77
77
  }
78
78
 
79
79
  /* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
80
- :root[data-crewlet-focus='pointer'] .crewlet-tags-input__box:focus-visible {
80
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-tags-input__box:focus-visible {
81
81
  outline-width: 1px;
82
82
  outline-color: var(--color-border-selected);
83
83
  }
@@ -1,6 +1,7 @@
1
- export { ThemeGallery } from '../chunk-IPAU6FLH.js';
1
+ export { ThemeGallery } from '../chunk-PPHTIKZO.js';
2
2
  import '../chunk-MNFU2RNT.js';
3
- import '../chunk-F73MC7EZ.js';
3
+ import '../chunk-7KHM2FZH.js';
4
4
  import '../chunk-RKKO7QHH.js';
5
- import '../chunk-R25RGPUB.js';
5
+ import '../chunk-H5XTJ7GJ.js';
6
+ import '../chunk-NUZHC6MM.js';
6
7
  import '../chunk-ODEQTPFM.js';
@@ -1,10 +1,11 @@
1
- export { DensitySwitcher, ThemeSwitcher } from '../chunk-2QEDJSJC.js';
1
+ export { DensitySwitcher, ThemeSwitcher } from '../chunk-ZMDYQ2HH.js';
2
2
  export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-Z24ZUSTX.js';
3
3
  export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from '../chunk-ZXXDZJQN.js';
4
- import '../chunk-WKEPORNM.js';
5
- import '../chunk-CCAXYHQS.js';
6
- import '../chunk-VL6CUNSX.js';
4
+ import '../chunk-4ISUIS6F.js';
5
+ import '../chunk-2QZ2VPHR.js';
6
+ import '../chunk-7SDUKCNW.js';
7
7
  import '../chunk-RKKO7QHH.js';
8
8
  import '../chunk-BHHIIK3M.js';
9
+ import '../chunk-2YTOOH3A.js';
9
10
  import '../chunk-BZFWDIV6.js';
10
11
  import '../chunk-ODEQTPFM.js';
@@ -1,14 +1,15 @@
1
- export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-TVRBQMIX.js';
2
- import '../chunk-VKKUGZ3G.js';
3
- import '../chunk-F73MC7EZ.js';
1
+ export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-YPMGP2X4.js';
2
+ import '../chunk-XQZ6EWOE.js';
3
+ import '../chunk-7KHM2FZH.js';
4
+ import '../chunk-KHJIEPZV.js';
4
5
  import '../chunk-GXQ3B46I.js';
5
- import '../chunk-K3IJQNB7.js';
6
- import '../chunk-IUYUS2SO.js';
7
- import '../chunk-YSGLEHND.js';
6
+ import '../chunk-TYONQSOK.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';
@@ -52,8 +52,8 @@
52
52
  }
53
53
 
54
54
  /* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
55
- :root[data-crewlet-focus='pointer'] .crewlet-time-window:focus-visible,
56
- :root[data-crewlet-focus='pointer'] .crewlet-time-window.is-open {
55
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-time-window:focus-visible,
56
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-time-window.is-open {
57
57
  outline-width: 1px;
58
58
  outline-color: var(--color-border-selected);
59
59
  }
@@ -330,7 +330,7 @@ svg.crewlet-time-window__tick {
330
330
  }
331
331
 
332
332
  /* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
333
- :root[data-crewlet-focus='pointer'] .crewlet-time-window__masked:has(.crewlet-time-window__masked-input:focus-visible) {
333
+ :where(:root[data-crewlet-focus='pointer']) .crewlet-time-window__masked:has(.crewlet-time-window__masked-input:focus-visible) {
334
334
  outline-width: 1px;
335
335
  outline-color: var(--color-border-selected);
336
336
  }
@@ -1,5 +1,6 @@
1
1
  export { ToastProvider, Toaster, useToast } from '../chunk-AC22RZKC.js';
2
2
  import '../chunk-OMV5W53A.js';
3
- import '../chunk-R25RGPUB.js';
3
+ import '../chunk-H5XTJ7GJ.js';
4
+ import '../chunk-NUZHC6MM.js';
4
5
  import '../chunk-BZFWDIV6.js';
5
6
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,5 @@
1
- export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-PGRPNDWM.js';
1
+ export { Toolbar, ToolbarOverflow, ToolbarWide } from '../chunk-NR4CPM4T.js';
2
2
  import '../chunk-OMV5W53A.js';
3
- import '../chunk-R25RGPUB.js';
3
+ import '../chunk-H5XTJ7GJ.js';
4
+ import '../chunk-NUZHC6MM.js';
4
5
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,5 @@
1
- export { Tooltip } from '../chunk-6ZJ3N7QI.js';
1
+ export { Tooltip } from '../chunk-I33UIUZD.js';
2
2
  import '../chunk-OMV5W53A.js';
3
- import '../chunk-R25RGPUB.js';
3
+ import '../chunk-H5XTJ7GJ.js';
4
+ import '../chunk-NUZHC6MM.js';
4
5
  import '../chunk-ODEQTPFM.js';
@@ -1,12 +1,13 @@
1
- export { TreeCanvas } from '../chunk-4ZJLOKSS.js';
1
+ export { TreeCanvas } from '../chunk-5BUOMF6N.js';
2
2
  import '../chunk-MY374UUD.js';
3
- import '../chunk-4BYHAOHH.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 { TreeGrid } from '../chunk-QWNVSR6G.js';
1
+ export { TreeGrid } from '../chunk-3KYVFG47.js';
2
2
  import '../chunk-MY374UUD.js';
3
3
  import '../chunk-LM3ISVJA.js';
4
4
  import '../chunk-OMV5W53A.js';
5
- import '../chunk-R25RGPUB.js';
5
+ import '../chunk-H5XTJ7GJ.js';
6
6
  import '../chunk-4FQT6ZAY.js';
7
+ import '../chunk-NUZHC6MM.js';
7
8
  import '../chunk-BZFWDIV6.js';
8
9
  import '../chunk-ODEQTPFM.js';
@@ -1,11 +1,12 @@
1
- export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-PLTCDSTU.js';
1
+ export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-4LRAJXHL.js';
2
2
  import '../chunk-BVWSLXTY.js';
3
- import '../chunk-WKEPORNM.js';
4
- import '../chunk-CCAXYHQS.js';
5
- import '../chunk-VL6CUNSX.js';
3
+ import '../chunk-4ISUIS6F.js';
4
+ import '../chunk-2QZ2VPHR.js';
5
+ import '../chunk-7SDUKCNW.js';
6
6
  import '../chunk-RKKO7QHH.js';
7
7
  import '../chunk-RA2ULG6H.js';
8
8
  import '../chunk-BHHIIK3M.js';
9
9
  import '../chunk-PQADV6P6.js';
10
+ import '../chunk-2YTOOH3A.js';
10
11
  import '../chunk-BZFWDIV6.js';
11
12
  import '../chunk-ODEQTPFM.js';
@@ -1,6 +1,7 @@
1
- import { tabId } from './chunk-VL6CUNSX.js';
1
+ import { tabId } from './chunk-7SDUKCNW.js';
2
2
  import { useRoving, tabStop } from './chunk-RKKO7QHH.js';
3
3
  import { Count } from './chunk-BHHIIK3M.js';
4
+ import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
4
5
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
5
6
  import { cx } from './chunk-ODEQTPFM.js';
6
7
  import { useState, useId } from 'react';
@@ -99,6 +100,7 @@ function SegmentedControl({
99
100
  className: cx(
100
101
  "crewlet-tabs__tab",
101
102
  "crewlet-segmented__option",
103
+ HIT_AREA_CLASS,
102
104
  chosen && "is-active",
103
105
  option.disabled && "is-disabled"
104
106
  ),
@@ -0,0 +1,4 @@
1
+ // src/HitArea/hitArea.ts
2
+ var HIT_AREA_CLASS = "crewlet-hit-area";
3
+
4
+ export { HIT_AREA_CLASS };
@@ -1,7 +1,7 @@
1
1
  import { useTreeState, treeExpandable, treeLevel, treePosInSet, treeSetSize, treeItemAction, treePrevious, treeNext, treeStep } from './chunk-MY374UUD.js';
2
2
  import { LayerNodeBridge } from './chunk-LM3ISVJA.js';
3
3
  import { LayerHost, LAYER_REPOSITION_EVENT } from './chunk-OMV5W53A.js';
4
- import { focusables } from './chunk-R25RGPUB.js';
4
+ import { focusables } from './chunk-H5XTJ7GJ.js';
5
5
  import { IconButton } from './chunk-4FQT6ZAY.js';
6
6
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
7
7
  import { cx } from './chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
- import { SlideStage } from './chunk-NQGPD6NX.js';
1
+ import { SlideStage } from './chunk-RMEBFYL7.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
3
  import './SlideGrid-FJA33DV4.css';
4
4
  import { EyeOffGlyph } from '@crewlethq/icons/glyphs';
@@ -1,7 +1,7 @@
1
- import { FormField, Textarea, Input } from './chunk-IUYUS2SO.js';
2
1
  import { Kbd } from './chunk-SMBKXWML.js';
3
- import { isComposing } from './chunk-R25RGPUB.js';
2
+ import { FormField, Textarea, Input } from './chunk-TYONQSOK.js';
4
3
  import { announce } from './chunk-RSAQOKH3.js';
4
+ import { isComposing } from './chunk-H5XTJ7GJ.js';
5
5
  import { IconButton } from './chunk-4FQT6ZAY.js';
6
6
  import './ListInput-O7LJKOIG.css';
7
7
  import { useState, useRef, useLayoutEffect } from 'react';
@@ -1,5 +1,5 @@
1
1
  import { Link } from './chunk-FBSEJO2C.js';
2
- import { Tag } from './chunk-GFV4LJHH.js';
2
+ import { Tag } from './chunk-KYIAFNU7.js';
3
3
  import { RelativeTime } from './chunk-3CZ7XAVY.js';
4
4
  import { EmptyValue } from './chunk-EUCC37WY.js';
5
5
  import { Avatar } from './chunk-PZKHBB7D.js';
@@ -0,0 +1,3 @@
1
+ import './HitArea-QUOS6ZDJ.css';
2
+ import './Tabs-WIF7457H.css';
3
+ import './SegmentedControl-B7XCUOML.css';