@crewlethq/ui 0.41.0 → 0.42.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 (117) hide show
  1. package/README.md +12 -0
  2. package/dist/AgentHandoffPanel/index.js +5 -5
  3. package/dist/AppShell/index.js +3 -3
  4. package/dist/{AppShell-V3TAAYL3.css → AppShell-TSACKAU7.css} +33 -12
  5. package/dist/ArrangeFrame/index.js +2 -2
  6. package/dist/ArrangeList/index.js +4 -4
  7. package/dist/ArtifactBar/index.js +5 -5
  8. package/dist/ArtifactPanel/index.js +2 -2
  9. package/dist/AvatarPicker/index.js +6 -6
  10. package/dist/Canvas/index.js +2 -2
  11. package/dist/CanvasBoard/index.js +4 -4
  12. package/dist/CanvasToolbar/index.js +3 -3
  13. package/dist/Checkbox/index.js +3 -3
  14. package/dist/CodeBlock/index.js +3 -3
  15. package/dist/Combobox/index.js +3 -3
  16. package/dist/CommandPalette/index.js +4 -4
  17. package/dist/CommentThread/index.js +4 -4
  18. package/dist/Composer/index.js +3 -3
  19. package/dist/ConfirmField/index.js +3 -3
  20. package/dist/Copyable/index.js +2 -2
  21. package/dist/DataTable/index.js +6 -6
  22. package/dist/DataView/index.js +9 -9
  23. package/dist/DateTimePicker/index.js +2 -2
  24. package/dist/DocTabsEditor/index.js +4 -4
  25. package/dist/{Editor-IRDQ3JDZ.js → Editor-FXO2JVWK.js} +3 -3
  26. package/dist/HuePicker/index.js +5 -5
  27. package/dist/IconButton/IconButton.d.ts +25 -1
  28. package/dist/IconButton/index.d.ts +2 -2
  29. package/dist/IconButton/index.js +1 -1
  30. package/dist/{IconButton-VYWP6SGW.css → IconButton-K24JQHLF.css} +21 -0
  31. package/dist/Input/index.js +2 -2
  32. package/dist/LinkInterstitial/index.js +3 -3
  33. package/dist/ListInput/index.js +3 -3
  34. package/dist/MarkdownEditor/index.js +5 -5
  35. package/dist/Menu/index.js +2 -2
  36. package/dist/MergeConflicts/index.js +5 -5
  37. package/dist/Modal/index.js +2 -2
  38. package/dist/OrgTable/index.js +3 -3
  39. package/dist/PeopleRail/index.js +2 -2
  40. package/dist/PinTile/index.js +2 -2
  41. package/dist/PresenterView/index.js +3 -3
  42. package/dist/PrincipalPicker/index.js +4 -4
  43. package/dist/RichEditor/index.js +1 -1
  44. package/dist/SearchTrigger/index.js +1 -1
  45. package/dist/{SearchTrigger-KIZLWBEH.css → SearchTrigger-UAKWW5HT.css} +8 -6
  46. package/dist/SegmentedControl/index.js +4 -4
  47. package/dist/ShareDialog/index.js +4 -4
  48. package/dist/SheetColumnEditor/index.js +8 -8
  49. package/dist/SheetGrid/index.js +3 -3
  50. package/dist/SlideFilmstrip/index.js +3 -3
  51. package/dist/SlideNav/index.js +2 -2
  52. package/dist/Switcher/index.js +4 -4
  53. package/dist/Tabs/index.js +3 -3
  54. package/dist/TagsInput/index.js +2 -2
  55. package/dist/ThemeSwitcher/index.js +5 -5
  56. package/dist/ThemeToggle/index.js +2 -2
  57. package/dist/TimeWindowPicker/index.js +3 -3
  58. package/dist/TreeCanvas/index.js +3 -3
  59. package/dist/TreeGrid/index.js +2 -2
  60. package/dist/VersionCompare/index.js +5 -5
  61. package/dist/{chunk-GPWJCP3U.js → chunk-3RCHEFIL.js} +1 -1
  62. package/dist/{chunk-5BUOMF6N.js → chunk-3YTNYF2E.js} +1 -1
  63. package/dist/{chunk-D2OL3ZSS.js → chunk-4DIKLY53.js} +1 -1
  64. package/dist/{chunk-SCPEMLLY.js → chunk-5AHDGYKN.js} +3 -3
  65. package/dist/{chunk-C7OKDYBH.js → chunk-626CB5X6.js} +3 -3
  66. package/dist/{chunk-XGBUUQDU.js → chunk-6MAQ2SVP.js} +2 -2
  67. package/dist/{chunk-ISA2O2BK.js → chunk-7CXGSS7D.js} +1 -1
  68. package/dist/{chunk-W46LPU4R.js → chunk-7SHAFLEX.js} +1 -1
  69. package/dist/{chunk-B5UHX5UC.js → chunk-7WNJLNFD.js} +2 -2
  70. package/dist/{chunk-SEC2GR2V.js → chunk-A4GFEMVI.js} +1 -1
  71. package/dist/{chunk-6QNN3WIT.js → chunk-AACPFUZW.js} +6 -6
  72. package/dist/{chunk-MMPKN7WV.js → chunk-AGNZIT3Z.js} +2 -2
  73. package/dist/{chunk-4OK4DX3V.js → chunk-BF5WV7NM.js} +1 -1
  74. package/dist/{chunk-3TXY3PJZ.js → chunk-BO7Q6JP6.js} +2 -2
  75. package/dist/{chunk-KNHUBHFX.js → chunk-BVFMLSE3.js} +3 -3
  76. package/dist/{chunk-EX22Q5SH.js → chunk-DL5ERIFF.js} +3 -3
  77. package/dist/{chunk-UXYEOWG5.js → chunk-E6HXFFWO.js} +1 -1
  78. package/dist/{chunk-2PEXZ7L4.js → chunk-ENHLVF6Q.js} +1 -1
  79. package/dist/{chunk-AXS6MBNH.js → chunk-EY7LACIR.js} +1 -1
  80. package/dist/{chunk-PEUGPAKH.js → chunk-FG243QHY.js} +1 -1
  81. package/dist/{chunk-GFYQKMQZ.js → chunk-FV6H7H5I.js} +5 -5
  82. package/dist/{chunk-IAGYPTEJ.js → chunk-FYINAYAJ.js} +1 -1
  83. package/dist/{chunk-FXBGEANQ.js → chunk-GI3S6RMM.js} +4 -4
  84. package/dist/{chunk-ZMWXE4GT.js → chunk-GPIRKHGS.js} +2 -2
  85. package/dist/{chunk-JSWOXRRE.js → chunk-IUQQGIHL.js} +1 -1
  86. package/dist/{chunk-X4IXXLWM.js → chunk-KA75QPFM.js} +1 -1
  87. package/dist/{chunk-4FQT6ZAY.js → chunk-LACA4JGC.js} +23 -2
  88. package/dist/{chunk-KWWP3D7M.js → chunk-LSRQJDGR.js} +1 -1
  89. package/dist/{chunk-FBW3Q2OY.js → chunk-MCOC3KQA.js} +1 -1
  90. package/dist/{chunk-EAEJ7CDM.js → chunk-MVGCZ655.js} +1 -1
  91. package/dist/{chunk-Y5BD4MTE.js → chunk-NBDN5JZV.js} +1 -1
  92. package/dist/{chunk-JKAGN4V4.js → chunk-NF6SWHQI.js} +2 -2
  93. package/dist/{chunk-WYYCPV46.js → chunk-NMYGJJJK.js} +2 -2
  94. package/dist/{chunk-6MIXD6IW.js → chunk-OJCVVCAZ.js} +1 -1
  95. package/dist/{chunk-3KYVFG47.js → chunk-ON2E46DX.js} +1 -1
  96. package/dist/{chunk-3PR65I3H.js → chunk-OWIGEE2Y.js} +2 -2
  97. package/dist/{chunk-D6FEHY5G.js → chunk-PCI7ZJ6Z.js} +1 -1
  98. package/dist/{chunk-NP2C4Y4E.js → chunk-PM3JVNRY.js} +1 -1
  99. package/dist/{chunk-A44YHLCQ.js → chunk-Q7HLZH32.js} +1 -1
  100. package/dist/{chunk-BA32AVKS.js → chunk-QOP7QYUW.js} +1 -1
  101. package/dist/{chunk-6VOS2GMB.js → chunk-RRO7UEYU.js} +1 -1
  102. package/dist/{chunk-BH52LIY6.js → chunk-SXBJMBSV.js} +1 -1
  103. package/dist/{chunk-PFZOFAQ6.js → chunk-TVSHR35W.js} +1 -1
  104. package/dist/{chunk-DAERKOOG.js → chunk-TVV7XSO5.js} +1 -1
  105. package/dist/{chunk-N3TFYBN3.js → chunk-UAGDFEBG.js} +1 -1
  106. package/dist/{chunk-UB6MLXUL.js → chunk-UFXLNC2N.js} +1 -1
  107. package/dist/{chunk-2VOHUGUA.js → chunk-UO5VJHWP.js} +3 -3
  108. package/dist/{chunk-WMXAX6VA.js → chunk-VWYT3GVV.js} +1 -1
  109. package/dist/{chunk-SYBYFQTY.js → chunk-W53CWWX3.js} +3 -3
  110. package/dist/{chunk-YPMGP2X4.js → chunk-X6IJ7DAX.js} +2 -2
  111. package/dist/{chunk-CFGGE3HO.js → chunk-XP7EXNKF.js} +2 -2
  112. package/dist/{chunk-6DRDCT22.js → chunk-YZR57QGE.js} +1 -1
  113. package/dist/{chunk-TYONQSOK.js → chunk-ZI5G5RS7.js} +1 -1
  114. package/dist/generated/index.js +61 -61
  115. package/dist/index.js +61 -61
  116. package/dist/styles.css +65 -21
  117. package/package.json +3 -3
package/README.md CHANGED
@@ -204,6 +204,18 @@ places:
204
204
  - A surface that pans or zooms dispatches `LAYER_REPOSITION_EVENT` on its host
205
205
  when the content beneath it moves, and every panel anchored inside follows.
206
206
 
207
+ ## Changes in 0.42.0
208
+
209
+ **`IconButtonLink` is an icon-only link** drawn as an `IconButton`: a place reached by its glyph, such as Settings beside the reader's own row in a rail's foot. It is a real anchor (`href`), named and titled by its `label`, and `current` marks the page the reader is on with `aria-current="page"` and a nav row's selected treatment, the lifted ground inside the default hairline, drawn on the square's own transparent boundary so nothing moves; its ring then covers that edge.
210
+
211
+ **The rail's search field is a row's width.** Its edges are a nav row's highlight edges (the gutter in from each side), and its glyph and shortcut stay on the rows' content columns through its pad (`--crewlet-rail-field-pad` is the row's pad less the field's edge). It keeps the compact step and the one-step gap to the nav.
212
+
213
+ **The account row's words take the room in a rail's foot.** The avatar keeps the nav's glyph-to-word gap, so the name starts on the nav's word line, and every gap after the name is smaller: the menu's chevron stands one step off the words, the link ends half a step after it, and the controls beside the link are half a step apart and half a step off it. With two controls beside it (Settings and Preferences), the name and the detail keep 110px where the same row with the earlier gaps kept 98px.
214
+
215
+ ## Changes in 0.41.1
216
+
217
+ **The rail's search field is compact and stands on the nav's content columns** (`SearchTrigger variant="rail"` in the `AppShell.Rail` search slot). It is 26px tall (the small control step, never under the 24px target) where it was 34px, with 6px inside each end where it had 10px. Its glyph stays on the nav's glyph column, and its shortcut now ends where a row's words end, so the field is 210px wide in a 236px rail where it ran 219px from gutter to gutter. The slot names the pad (`--crewlet-rail-field-pad`), so its inset and the field's pad are one measure; outside the slot the field keeps the trigger's own pad. The slot no longer adds its own 12px under the field, so the nav's top inset (8px) is the one gap between the field and the first row, where it was 20px. The rail's rows start 20px higher. A label longer than the field still truncates before the shortcut does.
218
+
207
219
  ## Changes in 0.41.0
208
220
 
209
221
  **The rail's head carries a status** (`AppShell.Rail` `status`, drawn with `AppShell.RailStatus`). An application's own state, such as its engine's, stands compact at the end of the head's line, beside the name: a status dot and, when something stands against it, a count in the foot row's inks (the warning ink with its mark for alarms). The state's words are the status's name and title rather than a line of the rail ("Engine serving, 1 alarm"), so the count is read once, in words. A status that opens a panel is the panel's trigger, as a foot row is (`aria-haspopup`, `aria-expanded` and `aria-controls` reach its button, and a `Popover` anchors to it), and `label` names it where a press does something the state does not say ("Engine signed out. Sign in"). A status nothing presses is a statement with no place in the tab order. It reserves the width of a dot and a two-figure count, and a `BrandLockup` beside it gives up its end inset to the head's gap, so the name truncates at one place whatever the count says, it is a 24px target each way with its focus ring inside its box, and it ends on the nav's gutter, where every row's background ends. It stands in the drawer's head the same way. The foot's doc now names it the place for what a reader reaches for rarely.
@@ -1,16 +1,16 @@
1
- export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from '../chunk-3TXY3PJZ.js';
1
+ export { AGENT_HANDOFF_LABELS, AgentHandoffPanel } from '../chunk-BO7Q6JP6.js';
2
2
  import '../chunk-AUQPBL4O.js';
3
3
  import '../chunk-3TFDQLW3.js';
4
4
  import '../chunk-OGXHZHRX.js';
5
- import '../chunk-ISA2O2BK.js';
6
- import '../chunk-Y5BD4MTE.js';
7
- import '../chunk-TYONQSOK.js';
5
+ import '../chunk-7CXGSS7D.js';
6
+ import '../chunk-NBDN5JZV.js';
7
+ import '../chunk-ZI5G5RS7.js';
8
8
  import '../chunk-SMBKXWML.js';
9
9
  import '../chunk-FZVJDJFN.js';
10
10
  import '../chunk-BHHIIK3M.js';
11
11
  import '../chunk-PQADV6P6.js';
12
12
  import '../chunk-OG6CL3EB.js';
13
- import '../chunk-4FQT6ZAY.js';
13
+ import '../chunk-LACA4JGC.js';
14
14
  import '../chunk-NUZHC6MM.js';
15
15
  import '../chunk-BZFWDIV6.js';
16
16
  import '../chunk-ODEQTPFM.js';
@@ -1,11 +1,11 @@
1
- export { AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellRailStatus, AppShellToggle, AppShellTopbar, useAppShell } from '../chunk-SCPEMLLY.js';
1
+ export { AccountRow, AppShell, AppShellRail, AppShellRailRow, AppShellRailStatus, AppShellToggle, AppShellTopbar, useAppShell } from '../chunk-5AHDGYKN.js';
2
2
  import '../chunk-RTPQDNW3.js';
3
- import '../chunk-D6FEHY5G.js';
3
+ import '../chunk-PCI7ZJ6Z.js';
4
4
  import '../chunk-OMV5W53A.js';
5
5
  import '../chunk-H5XTJ7GJ.js';
6
6
  import '../chunk-2YTOOH3A.js';
7
7
  import '../chunk-OG6CL3EB.js';
8
- import '../chunk-4FQT6ZAY.js';
8
+ import '../chunk-LACA4JGC.js';
9
9
  import '../chunk-NUZHC6MM.js';
10
10
  import '../chunk-BZFWDIV6.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -218,18 +218,21 @@
218
218
  }
219
219
 
220
220
  /*
221
- * THE RAIL'S FIELD ON THE NAV'S COLUMNS. It stands on the nav's gutter, so
222
- * its right edge is where every row's background ends; and its glyph stands
223
- * on the nav's glyph column: a row's glyph is the gutter and the row's pad
224
- * in, the field's is the gutter, its own 1px edge and its pad
225
- * (`SearchTrigger`'s two steps and a half), so the inset at its start makes
226
- * up the difference from those measures.
221
+ * THE RAIL'S FIELD IS A ROW'S WIDTH, compact: its edges are a nav row's
222
+ * highlight edges, the nav's gutter in from each side of the rail, and its
223
+ * content stands on a row's content columns through its pad
224
+ * (`--crewlet-rail-field-pad`, which the rail variant of `SearchTrigger`
225
+ * takes): the glyph on the nav's glyph column and the shortcut ending where a
226
+ * row's words end. A row's content is the gutter and the row's pad in; the
227
+ * field's is the slot's inset, its own 1px edge and its pad, so the inset at
228
+ * each end makes up the difference, which is the gutter.
229
+ *
230
+ * And it is held off the nav by the nav's own top inset alone, one step, so
231
+ * the field and the rows read as one group with the field first.
227
232
  */
228
233
  .crewlet-app-shell__rail-search {
229
- padding: 0 var(--size-nav-gutter) var(--spacing-3);
230
- padding-inline-start: calc(
231
- var(--size-nav-gutter) + var(--size-nav-row-pad) - (var(--spacing-2) + var(--spacing-1) / 2) - 1px
232
- );
234
+ --crewlet-rail-field-pad: calc(var(--size-nav-row-pad) - 1px);
235
+ padding: 0 calc(var(--size-nav-gutter) + var(--size-nav-row-pad) - var(--crewlet-rail-field-pad) - 1px);
233
236
  }
234
237
 
235
238
  /* The same gutter the nav takes, so what the foot says lines up with the rows
@@ -810,22 +813,40 @@
810
813
  * whatever size of badge a caller hands the row, it is centred where a glyph
811
814
  * is, and the row takes the nav row's pad and its glyph-to-word gap.
812
815
  */
816
+ /*
817
+ * AND THE WORDS TAKE THE ROOM: the name and the detail are what the row is
818
+ * for, so every gap after the name is the half step and the menu's chevron
819
+ * stands one step off the words at least, at the link's end. The controls
820
+ * beside the link (Settings, Preferences) are half a step apart and half a
821
+ * step off the link, so a reader's name keeps the width two controls leave.
822
+ */
813
823
  .crewlet-app-shell__rail-foot .crewlet-account-row {
814
824
  --crewlet-account-row-pad: var(--spacing-0);
825
+ gap: calc(var(--spacing-1) / 2);
815
826
  }
816
827
 
817
828
  .crewlet-app-shell__rail-foot .crewlet-account-row__who {
818
829
  --crewlet-hit-area-block-start: calc(var(--crewlet-rail-foot-gap) / 2 + var(--crewlet-account-row-pad));
819
- gap: calc(var(--spacing-2) + var(--spacing-1) / 2);
830
+ gap: 0;
820
831
  /* On the foot's compact step: the two lines of name and detail with half a
821
832
  step above and below them, which still clears the avatar. */
822
833
  padding-block: calc(var(--spacing-1) / 2);
823
- padding-inline-start: var(--size-nav-row-pad);
834
+ padding-inline: var(--size-nav-row-pad) calc(var(--spacing-1) / 2);
824
835
  }
825
836
 
826
837
  .crewlet-app-shell__rail-foot .crewlet-account-row__avatar {
827
838
  justify-content: center;
828
839
  width: 14px;
840
+ /* The nav's glyph-to-word gap, so the name starts on the nav's word line. */
841
+ margin-inline-end: calc(var(--spacing-2) + var(--spacing-1) / 2);
842
+ }
843
+
844
+ .crewlet-app-shell__rail-foot .crewlet-account-row__text {
845
+ margin-inline-end: var(--spacing-1);
846
+ }
847
+
848
+ .crewlet-app-shell__rail-foot .crewlet-account-row__actions {
849
+ gap: calc(var(--spacing-1) / 2);
829
850
  }
830
851
 
831
852
  /* The row as the reader's menu button: a button drawn as the link is. */
@@ -1,5 +1,5 @@
1
- export { ArrangeFrame, useGridResize } from '../chunk-WMXAX6VA.js';
1
+ export { ArrangeFrame, useGridResize } from '../chunk-VWYT3GVV.js';
2
2
  import '../chunk-RSAQOKH3.js';
3
- import '../chunk-4FQT6ZAY.js';
3
+ import '../chunk-LACA4JGC.js';
4
4
  import '../chunk-BZFWDIV6.js';
5
5
  import '../chunk-ODEQTPFM.js';
@@ -1,11 +1,11 @@
1
- export { ArrangeList, DEFAULT_ARRANGE_LABELS } from '../chunk-ZMWXE4GT.js';
1
+ export { ArrangeList, DEFAULT_ARRANGE_LABELS } from '../chunk-GPIRKHGS.js';
2
2
  import '../chunk-A722MUNR.js';
3
3
  import '../chunk-XJ2QEBMM.js';
4
- import '../chunk-AXS6MBNH.js';
5
- import '../chunk-TYONQSOK.js';
4
+ import '../chunk-EY7LACIR.js';
5
+ import '../chunk-ZI5G5RS7.js';
6
6
  import '../chunk-PQADV6P6.js';
7
7
  import '../chunk-RSAQOKH3.js';
8
- import '../chunk-4FQT6ZAY.js';
8
+ import '../chunk-LACA4JGC.js';
9
9
  import '../chunk-NUZHC6MM.js';
10
10
  import '../chunk-BZFWDIV6.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -1,7 +1,7 @@
1
- export { ARTIFACT_BAR_LABELS, ArtifactBar, ArtifactVersionChip } from '../chunk-2VOHUGUA.js';
1
+ export { ARTIFACT_BAR_LABELS, ArtifactBar, ArtifactVersionChip } from '../chunk-UO5VJHWP.js';
2
2
  import '../chunk-OOC7Q67K.js';
3
- import '../chunk-4OK4DX3V.js';
4
- import '../chunk-X4IXXLWM.js';
3
+ import '../chunk-BF5WV7NM.js';
4
+ import '../chunk-KA75QPFM.js';
5
5
  import '../chunk-WIATRXEJ.js';
6
6
  import '../chunk-EGMQURBR.js';
7
7
  import '../chunk-I33UIUZD.js';
@@ -9,12 +9,12 @@ import '../chunk-ILDNJHRU.js';
9
9
  import '../chunk-CE2THTQR.js';
10
10
  import '../chunk-SMBKXWML.js';
11
11
  import '../chunk-BHHIIK3M.js';
12
- import '../chunk-D6FEHY5G.js';
12
+ import '../chunk-PCI7ZJ6Z.js';
13
13
  import '../chunk-OMV5W53A.js';
14
14
  import '../chunk-H5XTJ7GJ.js';
15
15
  import '../chunk-2YTOOH3A.js';
16
16
  import '../chunk-OG6CL3EB.js';
17
- import '../chunk-4FQT6ZAY.js';
17
+ import '../chunk-LACA4JGC.js';
18
18
  import '../chunk-NUZHC6MM.js';
19
19
  import '../chunk-BZFWDIV6.js';
20
20
  import '../chunk-ODEQTPFM.js';
@@ -1,5 +1,5 @@
1
- export { ARTIFACT_PANEL_LABELS, ArtifactPanel, ArtifactWorkspace } from '../chunk-Y5BD4MTE.js';
1
+ export { ARTIFACT_PANEL_LABELS, ArtifactPanel, ArtifactWorkspace } from '../chunk-NBDN5JZV.js';
2
2
  import '../chunk-PQADV6P6.js';
3
- import '../chunk-4FQT6ZAY.js';
3
+ import '../chunk-LACA4JGC.js';
4
4
  import '../chunk-BZFWDIV6.js';
5
5
  import '../chunk-ODEQTPFM.js';
@@ -1,20 +1,20 @@
1
- export { AvatarPicker } from '../chunk-A44YHLCQ.js';
2
- import '../chunk-BA32AVKS.js';
1
+ export { AvatarPicker } from '../chunk-Q7HLZH32.js';
2
+ import '../chunk-QOP7QYUW.js';
3
3
  import '../chunk-KHJIEPZV.js';
4
4
  import '../chunk-AYKXMIOR.js';
5
5
  import '../chunk-SNQRGH4A.js';
6
- import '../chunk-4OK4DX3V.js';
7
- import '../chunk-X4IXXLWM.js';
6
+ import '../chunk-BF5WV7NM.js';
7
+ import '../chunk-KA75QPFM.js';
8
8
  import '../chunk-WIATRXEJ.js';
9
9
  import '../chunk-EGMQURBR.js';
10
10
  import '../chunk-PZKHBB7D.js';
11
11
  import '../chunk-BHHIIK3M.js';
12
- import '../chunk-D6FEHY5G.js';
12
+ import '../chunk-PCI7ZJ6Z.js';
13
13
  import '../chunk-OMV5W53A.js';
14
14
  import '../chunk-H5XTJ7GJ.js';
15
15
  import '../chunk-2YTOOH3A.js';
16
16
  import '../chunk-OG6CL3EB.js';
17
- import '../chunk-4FQT6ZAY.js';
17
+ import '../chunk-LACA4JGC.js';
18
18
  import '../chunk-NUZHC6MM.js';
19
19
  import '../chunk-BZFWDIV6.js';
20
20
  import '../chunk-ODEQTPFM.js';
@@ -1,11 +1,11 @@
1
- export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-DAERKOOG.js';
1
+ export { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, CANVAS_FIT_PADDING, CANVAS_FOCUS_CONTEXT, CANVAS_MAX_ZOOM, CANVAS_MIN_ZOOM, CANVAS_PAN_MARGIN, CANVAS_PAN_STEP, CANVAS_REVEAL_PADDING, CANVAS_TAP_SLOP, CANVAS_WHEEL_LINE_PX, CANVAS_WHEEL_ZOOM_PER_PIXEL, CANVAS_ZOOM_CEILING, CANVAS_ZOOM_LIMITS, CANVAS_ZOOM_STEP, Canvas, IDENTITY_VIEW, ShortcutTip, anchorView, beyondSlop, clampPan, clampZoom, fitView, gridOf, panBy, pinchView, regionView, revealView, screenRect, toScreen, toWorld, wheelPixels, wheelZoomFactor, zoomAt, zoomLimits } from '../chunk-TVV7XSO5.js';
2
2
  import '../chunk-LM3ISVJA.js';
3
3
  import '../chunk-I33UIUZD.js';
4
4
  import '../chunk-SMBKXWML.js';
5
5
  import '../chunk-OMV5W53A.js';
6
6
  import '../chunk-H5XTJ7GJ.js';
7
7
  import '../chunk-OG6CL3EB.js';
8
- import '../chunk-4FQT6ZAY.js';
8
+ import '../chunk-LACA4JGC.js';
9
9
  import '../chunk-NUZHC6MM.js';
10
10
  import '../chunk-BZFWDIV6.js';
11
11
  import '../chunk-ODEQTPFM.js';
@@ -1,15 +1,15 @@
1
- export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from '../chunk-C7OKDYBH.js';
1
+ export { BOARD_NAME_MIN_CHARS, CANVAS_BOARD_MAX_LIVE, CANVAS_BOARD_MIN_LIVE_WIDTH, CANVAS_BOARD_MIN_ZOOM, CANVAS_NOTE_COLORS, CanvasBoard, TITLE_GLYPH_EM, boardName, boardRoom, liveBoards, titleSize } from '../chunk-626CB5X6.js';
2
2
  import '../chunk-5SZGKSGL.js';
3
- import '../chunk-B5UHX5UC.js';
3
+ import '../chunk-7WNJLNFD.js';
4
4
  import '../chunk-NR4CPM4T.js';
5
- import '../chunk-DAERKOOG.js';
5
+ import '../chunk-TVV7XSO5.js';
6
6
  import '../chunk-LM3ISVJA.js';
7
7
  import '../chunk-I33UIUZD.js';
8
8
  import '../chunk-SMBKXWML.js';
9
9
  import '../chunk-OMV5W53A.js';
10
10
  import '../chunk-H5XTJ7GJ.js';
11
11
  import '../chunk-OG6CL3EB.js';
12
- import '../chunk-4FQT6ZAY.js';
12
+ import '../chunk-LACA4JGC.js';
13
13
  import '../chunk-NUZHC6MM.js';
14
14
  import '../chunk-BZFWDIV6.js';
15
15
  import '../chunk-ODEQTPFM.js';
@@ -1,13 +1,13 @@
1
- export { CanvasToolbar, toolForKey } from '../chunk-B5UHX5UC.js';
1
+ export { CanvasToolbar, toolForKey } from '../chunk-7WNJLNFD.js';
2
2
  import '../chunk-NR4CPM4T.js';
3
- import '../chunk-DAERKOOG.js';
3
+ import '../chunk-TVV7XSO5.js';
4
4
  import '../chunk-LM3ISVJA.js';
5
5
  import '../chunk-I33UIUZD.js';
6
6
  import '../chunk-SMBKXWML.js';
7
7
  import '../chunk-OMV5W53A.js';
8
8
  import '../chunk-H5XTJ7GJ.js';
9
9
  import '../chunk-OG6CL3EB.js';
10
- import '../chunk-4FQT6ZAY.js';
10
+ import '../chunk-LACA4JGC.js';
11
11
  import '../chunk-NUZHC6MM.js';
12
12
  import '../chunk-BZFWDIV6.js';
13
13
  import '../chunk-ODEQTPFM.js';
@@ -1,7 +1,7 @@
1
- export { Checkbox, CheckboxGroup } from '../chunk-AXS6MBNH.js';
2
- import '../chunk-TYONQSOK.js';
1
+ export { Checkbox, CheckboxGroup } from '../chunk-EY7LACIR.js';
2
+ import '../chunk-ZI5G5RS7.js';
3
3
  import '../chunk-PQADV6P6.js';
4
- import '../chunk-4FQT6ZAY.js';
4
+ import '../chunk-LACA4JGC.js';
5
5
  import '../chunk-NUZHC6MM.js';
6
6
  import '../chunk-BZFWDIV6.js';
7
7
  import '../chunk-ODEQTPFM.js';
@@ -1,8 +1,8 @@
1
- export { CodeBlock } from '../chunk-SEC2GR2V.js';
2
- import '../chunk-W46LPU4R.js';
1
+ export { CodeBlock } from '../chunk-A4GFEMVI.js';
2
+ import '../chunk-7SHAFLEX.js';
3
3
  import '../chunk-STJ7QBC3.js';
4
4
  import '../chunk-DTIW4CHZ.js';
5
5
  import '../chunk-OG6CL3EB.js';
6
- import '../chunk-4FQT6ZAY.js';
6
+ import '../chunk-LACA4JGC.js';
7
7
  import '../chunk-BZFWDIV6.js';
8
8
  import '../chunk-ODEQTPFM.js';
@@ -1,10 +1,10 @@
1
- export { Combobox } from '../chunk-EAEJ7CDM.js';
1
+ export { Combobox } from '../chunk-MVGCZ655.js';
2
2
  import '../chunk-7KHM2FZH.js';
3
- import '../chunk-TYONQSOK.js';
3
+ import '../chunk-ZI5G5RS7.js';
4
4
  import '../chunk-PQADV6P6.js';
5
5
  import '../chunk-H5XTJ7GJ.js';
6
6
  import '../chunk-2YTOOH3A.js';
7
- import '../chunk-4FQT6ZAY.js';
7
+ import '../chunk-LACA4JGC.js';
8
8
  import '../chunk-NUZHC6MM.js';
9
9
  import '../chunk-BZFWDIV6.js';
10
10
  import '../chunk-ODEQTPFM.js';
@@ -1,7 +1,7 @@
1
- export { CommandPalette } from '../chunk-XGBUUQDU.js';
2
- import '../chunk-IAGYPTEJ.js';
1
+ export { CommandPalette } from '../chunk-6MAQ2SVP.js';
2
+ import '../chunk-FYINAYAJ.js';
3
3
  import '../chunk-7KHM2FZH.js';
4
- import '../chunk-TYONQSOK.js';
4
+ import '../chunk-ZI5G5RS7.js';
5
5
  import '../chunk-SMBKXWML.js';
6
6
  import '../chunk-BHHIIK3M.js';
7
7
  import '../chunk-PQADV6P6.js';
@@ -9,7 +9,7 @@ import '../chunk-OMV5W53A.js';
9
9
  import '../chunk-H5XTJ7GJ.js';
10
10
  import '../chunk-2YTOOH3A.js';
11
11
  import '../chunk-OG6CL3EB.js';
12
- import '../chunk-4FQT6ZAY.js';
12
+ import '../chunk-LACA4JGC.js';
13
13
  import '../chunk-NUZHC6MM.js';
14
14
  import '../chunk-BZFWDIV6.js';
15
15
  import '../chunk-ODEQTPFM.js';
@@ -1,17 +1,17 @@
1
- export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-MMPKN7WV.js';
1
+ export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-AGNZIT3Z.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
7
  import '../chunk-PWG3VHRQ.js';
8
- import '../chunk-ISA2O2BK.js';
9
- import '../chunk-TYONQSOK.js';
8
+ import '../chunk-7CXGSS7D.js';
9
+ import '../chunk-ZI5G5RS7.js';
10
10
  import '../chunk-SMBKXWML.js';
11
11
  import '../chunk-BHHIIK3M.js';
12
12
  import '../chunk-PQADV6P6.js';
13
13
  import '../chunk-OG6CL3EB.js';
14
- import '../chunk-4FQT6ZAY.js';
14
+ import '../chunk-LACA4JGC.js';
15
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-ISA2O2BK.js';
2
- import '../chunk-TYONQSOK.js';
1
+ export { COMPOSER_COUNTER_AT, Composer } from '../chunk-7CXGSS7D.js';
2
+ import '../chunk-ZI5G5RS7.js';
3
3
  import '../chunk-SMBKXWML.js';
4
4
  import '../chunk-PQADV6P6.js';
5
- import '../chunk-4FQT6ZAY.js';
5
+ import '../chunk-LACA4JGC.js';
6
6
  import '../chunk-NUZHC6MM.js';
7
7
  import '../chunk-BZFWDIV6.js';
8
8
  import '../chunk-ODEQTPFM.js';
@@ -1,8 +1,8 @@
1
- export { ConfirmField, confirmMatches } from '../chunk-PEUGPAKH.js';
1
+ export { ConfirmField, confirmMatches } from '../chunk-FG243QHY.js';
2
2
  import '../chunk-5CLW2CXT.js';
3
- import '../chunk-TYONQSOK.js';
3
+ import '../chunk-ZI5G5RS7.js';
4
4
  import '../chunk-PQADV6P6.js';
5
- import '../chunk-4FQT6ZAY.js';
5
+ import '../chunk-LACA4JGC.js';
6
6
  import '../chunk-NUZHC6MM.js';
7
7
  import '../chunk-BZFWDIV6.js';
8
8
  import '../chunk-ODEQTPFM.js';
@@ -1,7 +1,7 @@
1
- export { CopyButton, Copyable } from '../chunk-W46LPU4R.js';
1
+ export { CopyButton, Copyable } from '../chunk-7SHAFLEX.js';
2
2
  import '../chunk-STJ7QBC3.js';
3
3
  import '../chunk-DTIW4CHZ.js';
4
4
  import '../chunk-OG6CL3EB.js';
5
- import '../chunk-4FQT6ZAY.js';
5
+ import '../chunk-LACA4JGC.js';
6
6
  import '../chunk-BZFWDIV6.js';
7
7
  import '../chunk-ODEQTPFM.js';
@@ -1,17 +1,17 @@
1
- export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-FXBGEANQ.js';
1
+ export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-GI3S6RMM.js';
2
2
  import '../chunk-STJ7QBC3.js';
3
3
  import '../chunk-DTIW4CHZ.js';
4
- import '../chunk-IAGYPTEJ.js';
5
- import '../chunk-AXS6MBNH.js';
4
+ import '../chunk-FYINAYAJ.js';
5
+ import '../chunk-EY7LACIR.js';
6
6
  import '../chunk-EUCC37WY.js';
7
7
  import '../chunk-AV2DXAEL.js';
8
- import '../chunk-TYONQSOK.js';
8
+ import '../chunk-ZI5G5RS7.js';
9
9
  import '../chunk-PQADV6P6.js';
10
- import '../chunk-D6FEHY5G.js';
10
+ import '../chunk-PCI7ZJ6Z.js';
11
11
  import '../chunk-OMV5W53A.js';
12
12
  import '../chunk-H5XTJ7GJ.js';
13
13
  import '../chunk-OG6CL3EB.js';
14
- import '../chunk-4FQT6ZAY.js';
14
+ import '../chunk-LACA4JGC.js';
15
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-6QNN3WIT.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-AACPFUZW.js';
2
2
  import '../chunk-HOXGBLEY.js';
3
- import '../chunk-UB6MLXUL.js';
4
- import '../chunk-FXBGEANQ.js';
3
+ import '../chunk-UFXLNC2N.js';
4
+ import '../chunk-GI3S6RMM.js';
5
5
  import '../chunk-STJ7QBC3.js';
6
6
  import '../chunk-DTIW4CHZ.js';
7
- import '../chunk-IAGYPTEJ.js';
7
+ import '../chunk-FYINAYAJ.js';
8
8
  import '../chunk-7KHM2FZH.js';
9
- import '../chunk-NR4CPM4T.js';
10
9
  import '../chunk-KHJIEPZV.js';
11
10
  import '../chunk-GXQ3B46I.js';
12
- import '../chunk-AXS6MBNH.js';
11
+ import '../chunk-NR4CPM4T.js';
12
+ import '../chunk-EY7LACIR.js';
13
13
  import '../chunk-3CZ7XAVY.js';
14
14
  import '../chunk-EUCC37WY.js';
15
15
  import '../chunk-AV2DXAEL.js';
16
- import '../chunk-TYONQSOK.js';
16
+ import '../chunk-ZI5G5RS7.js';
17
17
  import '../chunk-SMBKXWML.js';
18
18
  import '../chunk-BHHIIK3M.js';
19
19
  import '../chunk-PQADV6P6.js';
20
- import '../chunk-D6FEHY5G.js';
20
+ import '../chunk-PCI7ZJ6Z.js';
21
21
  import '../chunk-OMV5W53A.js';
22
22
  import '../chunk-H5XTJ7GJ.js';
23
23
  import '../chunk-OG6CL3EB.js';
24
- import '../chunk-4FQT6ZAY.js';
24
+ import '../chunk-LACA4JGC.js';
25
25
  import '../chunk-NUZHC6MM.js';
26
26
  import '../chunk-BZFWDIV6.js';
27
27
  import '../chunk-ODEQTPFM.js';
@@ -1,10 +1,10 @@
1
- export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-UB6MLXUL.js';
1
+ export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-UFXLNC2N.js';
2
2
  import '../chunk-KHJIEPZV.js';
3
3
  import '../chunk-GXQ3B46I.js';
4
4
  import '../chunk-OMV5W53A.js';
5
5
  import '../chunk-H5XTJ7GJ.js';
6
6
  import '../chunk-OG6CL3EB.js';
7
- import '../chunk-4FQT6ZAY.js';
7
+ import '../chunk-LACA4JGC.js';
8
8
  import '../chunk-NUZHC6MM.js';
9
9
  import '../chunk-BZFWDIV6.js';
10
10
  import '../chunk-ODEQTPFM.js';
@@ -1,13 +1,13 @@
1
- export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-SYBYFQTY.js';
1
+ export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-W53CWWX3.js';
2
2
  import '../chunk-XJ2QEBMM.js';
3
- import '../chunk-TYONQSOK.js';
3
+ import '../chunk-ZI5G5RS7.js';
4
4
  import '../chunk-PQADV6P6.js';
5
5
  import '../chunk-RSAQOKH3.js';
6
- import '../chunk-D6FEHY5G.js';
6
+ import '../chunk-PCI7ZJ6Z.js';
7
7
  import '../chunk-OMV5W53A.js';
8
8
  import '../chunk-H5XTJ7GJ.js';
9
9
  import '../chunk-OG6CL3EB.js';
10
- import '../chunk-4FQT6ZAY.js';
10
+ import '../chunk-LACA4JGC.js';
11
11
  import '../chunk-NUZHC6MM.js';
12
12
  import '../chunk-BZFWDIV6.js';
13
13
  import '../chunk-ODEQTPFM.js';
@@ -2,13 +2,13 @@ import { richEditorLabels } from './chunk-CSQTDGTS.js';
2
2
  import { schema, readMarkdown, writeMarkdown } from './chunk-QH6VYJ3X.js';
3
3
  import { safeHref, MARKDOWN_CALLOUT_TONES } from './chunk-BAKPMH3S.js';
4
4
  import { Toolbar } from './chunk-NR4CPM4T.js';
5
- import { FormField, Input } from './chunk-TYONQSOK.js';
5
+ import { FormField, Input } from './chunk-ZI5G5RS7.js';
6
6
  import './chunk-PQADV6P6.js';
7
- import { Menu } from './chunk-D6FEHY5G.js';
7
+ import { Menu } from './chunk-PCI7ZJ6Z.js';
8
8
  import { placePopup, viewportBounds } from './chunk-OMV5W53A.js';
9
9
  import { usePopupLayer } from './chunk-H5XTJ7GJ.js';
10
10
  import { Button } from './chunk-OG6CL3EB.js';
11
- import { IconButton } from './chunk-4FQT6ZAY.js';
11
+ import { IconButton } from './chunk-LACA4JGC.js';
12
12
  import './chunk-NUZHC6MM.js';
13
13
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
14
14
  import { cx } from './chunk-ODEQTPFM.js';
@@ -1,17 +1,17 @@
1
1
  import '../chunk-FFMCMSJB.js';
2
- export { HuePicker, HueSwatch } from '../chunk-BA32AVKS.js';
2
+ export { HuePicker, HueSwatch } from '../chunk-QOP7QYUW.js';
3
3
  import '../chunk-AYKXMIOR.js';
4
- import '../chunk-4OK4DX3V.js';
5
- import '../chunk-X4IXXLWM.js';
4
+ import '../chunk-BF5WV7NM.js';
5
+ import '../chunk-KA75QPFM.js';
6
6
  import '../chunk-WIATRXEJ.js';
7
7
  import '../chunk-EGMQURBR.js';
8
8
  import '../chunk-BHHIIK3M.js';
9
- import '../chunk-D6FEHY5G.js';
9
+ import '../chunk-PCI7ZJ6Z.js';
10
10
  import '../chunk-OMV5W53A.js';
11
11
  import '../chunk-H5XTJ7GJ.js';
12
12
  import '../chunk-2YTOOH3A.js';
13
13
  import '../chunk-OG6CL3EB.js';
14
- import '../chunk-4FQT6ZAY.js';
14
+ import '../chunk-LACA4JGC.js';
15
15
  import '../chunk-NUZHC6MM.js';
16
16
  import '../chunk-BZFWDIV6.js';
17
17
  import '../chunk-ODEQTPFM.js';
@@ -1,4 +1,4 @@
1
- import { type ButtonHTMLAttributes, type ReactNode } from 'react';
1
+ import { type AnchorHTMLAttributes, type ButtonHTMLAttributes, type ReactNode } from 'react';
2
2
  export type IconButtonSize = 'sm' | 'md' | 'lg';
3
3
  export type IconButtonVariant =
4
4
  /** The bordered square: a secondary Button with no room for a label. */
@@ -43,3 +43,27 @@ export interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonEle
43
43
  * a word beside the glyph is a Button.
44
44
  */
45
45
  export declare const IconButton: import("react").ForwardRefExoticComponent<IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
46
+ export interface IconButtonLinkProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'aria-label' | 'aria-current'> {
47
+ /** Where it goes, in words: the link's name and its title. REQUIRED, for IconButton's reason. */
48
+ label: string;
49
+ href: string;
50
+ /** The glyph. A component from @crewlethq/icons/glyphs, not a name. */
51
+ icon: ReactNode;
52
+ size?: IconButtonSize | undefined;
53
+ variant?: IconButtonVariant | undefined;
54
+ /**
55
+ * The reader is on the page it leads to: `aria-current="page"` and the
56
+ * selected treatment a nav row draws, the lifted ground inside a hairline.
57
+ */
58
+ current?: boolean | undefined;
59
+ }
60
+ /**
61
+ * An icon-only LINK, drawn as an IconButton: a place reached by its glyph, such
62
+ * as Settings beside the reader's own row in a rail's foot.
63
+ *
64
+ * A REAL LINK rather than a button that navigates, so a modified press opens a
65
+ * tab and the address can be copied, and it says when the reader is already
66
+ * there, as a nav row does. A router's link is the `asChild` form of
67
+ * IconButton; this is the plain anchor.
68
+ */
69
+ export declare const IconButtonLink: import("react").ForwardRefExoticComponent<IconButtonLinkProps & import("react").RefAttributes<HTMLAnchorElement>>;
@@ -1,3 +1,3 @@
1
1
  import './IconButton.css';
2
- export { IconButton } from './IconButton.js';
3
- export type { IconButtonProps, IconButtonSize, IconButtonVariant } from './IconButton.js';
2
+ export { IconButton, IconButtonLink } from './IconButton.js';
3
+ export type { IconButtonLinkProps, IconButtonProps, IconButtonSize, IconButtonVariant } from './IconButton.js';
@@ -1,3 +1,3 @@
1
- export { IconButton } from '../chunk-4FQT6ZAY.js';
1
+ export { IconButton, IconButtonLink } from '../chunk-LACA4JGC.js';
2
2
  import '../chunk-BZFWDIV6.js';
3
3
  import '../chunk-ODEQTPFM.js';
@@ -116,6 +116,27 @@
116
116
  background: var(--color-surface-pressed);
117
117
  }
118
118
 
119
+ /*
120
+ * THE PLACE THE READER IS ON (`IconButtonLink current`): the selected
121
+ * treatment a nav row draws, the lifted ground inside the default hairline,
122
+ * drawn on the square's own transparent boundary so nothing moves. With an
123
+ * edge to draw, its ring covers the edge, as the bordered squares' does.
124
+ */
125
+ a.crewlet-icon-btn {
126
+ text-decoration: none;
127
+ }
128
+
129
+ .crewlet-icon-btn--current,
130
+ .crewlet-icon-btn--current:hover {
131
+ background: var(--color-surface-elevated);
132
+ border-color: var(--color-border-default);
133
+ color: var(--color-text-primary);
134
+ }
135
+
136
+ .crewlet-icon-btn--current:focus-visible {
137
+ outline-offset: var(--size-focus-ring-inset-offset);
138
+ }
139
+
119
140
  /* ghost: transparent, neutral ink, a mild tint on hover. */
120
141
  .crewlet-icon-btn--ghost {
121
142
  color: var(--color-text-secondary);