@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/dist/styles.css CHANGED
@@ -702,7 +702,7 @@
702
702
  }
703
703
 
704
704
 
705
- /* AppShell-V3TAAYL3.css */
705
+ /* AppShell-TSACKAU7.css */
706
706
  /*
707
707
  * The application frame: a rail on the FRAME, and the screen on a SHEET that
708
708
  * floats beside it.
@@ -923,18 +923,21 @@
923
923
  }
924
924
 
925
925
  /*
926
- * THE RAIL'S FIELD ON THE NAV'S COLUMNS. It stands on the nav's gutter, so
927
- * its right edge is where every row's background ends; and its glyph stands
928
- * on the nav's glyph column: a row's glyph is the gutter and the row's pad
929
- * in, the field's is the gutter, its own 1px edge and its pad
930
- * (`SearchTrigger`'s two steps and a half), so the inset at its start makes
931
- * up the difference from those measures.
926
+ * THE RAIL'S FIELD IS A ROW'S WIDTH, compact: its edges are a nav row's
927
+ * highlight edges, the nav's gutter in from each side of the rail, and its
928
+ * content stands on a row's content columns through its pad
929
+ * (`--crewlet-rail-field-pad`, which the rail variant of `SearchTrigger`
930
+ * takes): the glyph on the nav's glyph column and the shortcut ending where a
931
+ * row's words end. A row's content is the gutter and the row's pad in; the
932
+ * field's is the slot's inset, its own 1px edge and its pad, so the inset at
933
+ * each end makes up the difference, which is the gutter.
934
+ *
935
+ * And it is held off the nav by the nav's own top inset alone, one step, so
936
+ * the field and the rows read as one group with the field first.
932
937
  */
933
938
  .crewlet-app-shell__rail-search {
934
- padding: 0 var(--size-nav-gutter) var(--spacing-3);
935
- padding-inline-start: calc(
936
- var(--size-nav-gutter) + var(--size-nav-row-pad) - (var(--spacing-2) + var(--spacing-1) / 2) - 1px
937
- );
939
+ --crewlet-rail-field-pad: calc(var(--size-nav-row-pad) - 1px);
940
+ padding: 0 calc(var(--size-nav-gutter) + var(--size-nav-row-pad) - var(--crewlet-rail-field-pad) - 1px);
938
941
  }
939
942
 
940
943
  /* The same gutter the nav takes, so what the foot says lines up with the rows
@@ -1515,22 +1518,40 @@
1515
1518
  * whatever size of badge a caller hands the row, it is centred where a glyph
1516
1519
  * is, and the row takes the nav row's pad and its glyph-to-word gap.
1517
1520
  */
1521
+ /*
1522
+ * AND THE WORDS TAKE THE ROOM: the name and the detail are what the row is
1523
+ * for, so every gap after the name is the half step and the menu's chevron
1524
+ * stands one step off the words at least, at the link's end. The controls
1525
+ * beside the link (Settings, Preferences) are half a step apart and half a
1526
+ * step off the link, so a reader's name keeps the width two controls leave.
1527
+ */
1518
1528
  .crewlet-app-shell__rail-foot .crewlet-account-row {
1519
1529
  --crewlet-account-row-pad: var(--spacing-0);
1530
+ gap: calc(var(--spacing-1) / 2);
1520
1531
  }
1521
1532
 
1522
1533
  .crewlet-app-shell__rail-foot .crewlet-account-row__who {
1523
1534
  --crewlet-hit-area-block-start: calc(var(--crewlet-rail-foot-gap) / 2 + var(--crewlet-account-row-pad));
1524
- gap: calc(var(--spacing-2) + var(--spacing-1) / 2);
1535
+ gap: 0;
1525
1536
  /* On the foot's compact step: the two lines of name and detail with half a
1526
1537
  step above and below them, which still clears the avatar. */
1527
1538
  padding-block: calc(var(--spacing-1) / 2);
1528
- padding-inline-start: var(--size-nav-row-pad);
1539
+ padding-inline: var(--size-nav-row-pad) calc(var(--spacing-1) / 2);
1529
1540
  }
1530
1541
 
1531
1542
  .crewlet-app-shell__rail-foot .crewlet-account-row__avatar {
1532
1543
  justify-content: center;
1533
1544
  width: 14px;
1545
+ /* The nav's glyph-to-word gap, so the name starts on the nav's word line. */
1546
+ margin-inline-end: calc(var(--spacing-2) + var(--spacing-1) / 2);
1547
+ }
1548
+
1549
+ .crewlet-app-shell__rail-foot .crewlet-account-row__text {
1550
+ margin-inline-end: var(--spacing-1);
1551
+ }
1552
+
1553
+ .crewlet-app-shell__rail-foot .crewlet-account-row__actions {
1554
+ gap: calc(var(--spacing-1) / 2);
1534
1555
  }
1535
1556
 
1536
1557
  /* The row as the reader's menu button: a button drawn as the link is. */
@@ -15398,7 +15419,7 @@ button.crewlet-finding-list__row:focus-visible {
15398
15419
  }
15399
15420
 
15400
15421
 
15401
- /* IconButton-VYWP6SGW.css */
15422
+ /* IconButton-K24JQHLF.css */
15402
15423
  /*
15403
15424
  * IconButton: a square icon-only control.
15404
15425
  *
@@ -15517,6 +15538,27 @@ button.crewlet-finding-list__row:focus-visible {
15517
15538
  background: var(--color-surface-pressed);
15518
15539
  }
15519
15540
 
15541
+ /*
15542
+ * THE PLACE THE READER IS ON (`IconButtonLink current`): the selected
15543
+ * treatment a nav row draws, the lifted ground inside the default hairline,
15544
+ * drawn on the square's own transparent boundary so nothing moves. With an
15545
+ * edge to draw, its ring covers the edge, as the bordered squares' does.
15546
+ */
15547
+ a.crewlet-icon-btn {
15548
+ text-decoration: none;
15549
+ }
15550
+
15551
+ .crewlet-icon-btn--current,
15552
+ .crewlet-icon-btn--current:hover {
15553
+ background: var(--color-surface-elevated);
15554
+ border-color: var(--color-border-default);
15555
+ color: var(--color-text-primary);
15556
+ }
15557
+
15558
+ .crewlet-icon-btn--current:focus-visible {
15559
+ outline-offset: var(--size-focus-ring-inset-offset);
15560
+ }
15561
+
15520
15562
  /* ghost: transparent, neutral ink, a mild tint on hover. */
15521
15563
  .crewlet-icon-btn--ghost {
15522
15564
  color: var(--color-text-secondary);
@@ -22928,7 +22970,7 @@ button.crewlet-presence-stack__member:focus-visible {
22928
22970
  }
22929
22971
 
22930
22972
 
22931
- /* SearchTrigger-KIZLWBEH.css */
22973
+ /* SearchTrigger-UAKWW5HT.css */
22932
22974
  /*
22933
22975
  * A button drawn as the field it stands in for.
22934
22976
  *
@@ -22958,16 +23000,18 @@ button.crewlet-presence-stack__member:focus-visible {
22958
23000
  }
22959
23001
 
22960
23002
  /*
22961
- * THE RAIL'S FIELD: the full width of the sidebar, on the SHEET's ground, and
22962
- * a step taller than a control. It is the rail's one field and the first
22963
- * thing in it under the company's name, and the design stands it at 34px,
22964
- * the medium control and one scale step, so it reads as the way in rather
22965
- * than as one more button.
23003
+ * THE RAIL'S FIELD: the width of the slot it stands in, on the SHEET's
23004
+ * ground, on the rail's compact step (the small control, 26px, never under
23005
+ * the 24px target), with a tighter pad at each end. The rail's search slot
23006
+ * names the pad (`--crewlet-rail-field-pad`), so its inset and the field's
23007
+ * pad are one measure and the glyph lands on the nav's glyph column; outside
23008
+ * that slot the field keeps the trigger's own pad.
22966
23009
  */
22967
23010
  .crewlet-search-trigger--rail {
22968
23011
  display: flex;
22969
23012
  width: 100%;
22970
- height: calc(var(--size-control-md) + var(--spacing-1));
23013
+ height: var(--size-control-sm);
23014
+ padding-inline: var(--crewlet-rail-field-pad, calc(var(--spacing-2) + var(--spacing-1) / 2));
22971
23015
  background: var(--color-surface-background);
22972
23016
  }
22973
23017
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.41.0",
3
+ "version": "0.42.0",
4
4
  "description": "Crewlet shared React components built on @crewlethq/tokens and @crewlethq/icons.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -42,8 +42,8 @@
42
42
  "clean": "rm -rf dist src/generated"
43
43
  },
44
44
  "dependencies": {
45
- "@crewlethq/icons": "0.41.0",
46
- "@crewlethq/tokens": "0.41.0",
45
+ "@crewlethq/icons": "0.42.0",
46
+ "@crewlethq/tokens": "0.42.0",
47
47
  "prosemirror-commands": "1.7.2",
48
48
  "prosemirror-gapcursor": "1.4.1",
49
49
  "prosemirror-history": "1.5.1",