@crewlethq/ui 0.48.1 → 0.48.3

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 (88) hide show
  1. package/README.md +8 -0
  2. package/dist/AgentHandoffPanel/index.js +4 -4
  3. package/dist/AppShell/index.js +3 -3
  4. package/dist/{AppShell-5P575KYA.css → AppShell-BIUFNT3J.css} +30 -11
  5. package/dist/ArrangeList/index.js +4 -4
  6. package/dist/ArtifactBar/index.js +5 -5
  7. package/dist/AvatarPicker/index.js +6 -6
  8. package/dist/Canvas/index.js +2 -2
  9. package/dist/CanvasBoard/index.js +4 -4
  10. package/dist/CanvasToolbar/index.js +3 -3
  11. package/dist/Checkbox/index.js +3 -3
  12. package/dist/Combobox/index.js +3 -3
  13. package/dist/CommandPalette/index.js +3 -3
  14. package/dist/CommentThread/index.js +5 -5
  15. package/dist/Composer/index.js +3 -3
  16. package/dist/ConfirmField/index.js +3 -3
  17. package/dist/DataTable/index.js +5 -5
  18. package/dist/DataView/index.js +7 -7
  19. package/dist/DateTimePicker/index.js +2 -2
  20. package/dist/DocTabsEditor/index.js +4 -4
  21. package/dist/{Editor-6U4BJ25W.js → Editor-MLGK3KOG.js} +3 -3
  22. package/dist/HuePicker/index.js +5 -5
  23. package/dist/Input/index.js +2 -2
  24. package/dist/LinkInterstitial/index.js +1 -1
  25. package/dist/ListInput/index.js +3 -3
  26. package/dist/MarkdownEditor/index.js +5 -5
  27. package/dist/Menu/index.js +2 -2
  28. package/dist/MergeConflicts/index.js +5 -5
  29. package/dist/Modal/index.js +1 -1
  30. package/dist/OrgTable/index.js +1 -1
  31. package/dist/PresenterView/index.js +1 -1
  32. package/dist/PrincipalPicker/index.js +4 -4
  33. package/dist/RichEditor/index.js +1 -1
  34. package/dist/SegmentedControl/index.js +4 -4
  35. package/dist/ShareDialog/index.js +1 -1
  36. package/dist/SheetColumnEditor/index.js +8 -8
  37. package/dist/SheetGrid/index.js +3 -3
  38. package/dist/SlideFilmstrip/index.js +3 -3
  39. package/dist/Switcher/index.js +3 -3
  40. package/dist/Tabs/index.js +3 -3
  41. package/dist/TagsInput/index.js +2 -2
  42. package/dist/ThemeSwitcher/index.js +5 -5
  43. package/dist/TimeWindowPicker/index.js +3 -3
  44. package/dist/TreeCanvas/index.js +3 -3
  45. package/dist/{TreeCanvas-L2XYONWL.css → TreeCanvas-QA3PDFTK.css} +18 -0
  46. package/dist/TreeGrid/index.js +1 -1
  47. package/dist/VersionCompare/index.js +5 -5
  48. package/dist/{chunk-WT5UPL6P.js → chunk-32TGEMQQ.js} +1 -1
  49. package/dist/{chunk-RBUA7ZNK.js → chunk-34RMTXDZ.js} +1 -1
  50. package/dist/{chunk-YFUG6ARA.js → chunk-3QSKDZR5.js} +1 -1
  51. package/dist/{chunk-R2EOET5Q.js → chunk-627KFRON.js} +2 -2
  52. package/dist/{chunk-OP4FD5CX.js → chunk-6EBGPCAW.js} +2 -2
  53. package/dist/{chunk-SMVWDO72.js → chunk-6FVGSWLS.js} +1 -1
  54. package/dist/{chunk-7DGGJ3B5.js → chunk-6R5BSA36.js} +1 -1
  55. package/dist/{chunk-KMNY3KEB.js → chunk-7JED2NYP.js} +1 -1
  56. package/dist/{chunk-DETVVKAH.js → chunk-AS2BMY3E.js} +2 -2
  57. package/dist/{chunk-HIHCUOP5.js → chunk-CAVWDJF4.js} +2 -2
  58. package/dist/{chunk-6M5MEHUC.js → chunk-CWKWMIIJ.js} +1 -1
  59. package/dist/{chunk-BLQRC7QR.js → chunk-D6MTBXAJ.js} +2 -2
  60. package/dist/{chunk-YUAQSWNW.js → chunk-F57N6ZJG.js} +1 -1
  61. package/dist/{chunk-XHFXO36Z.js → chunk-ICVS3U4S.js} +1 -1
  62. package/dist/{chunk-GKRPPSWY.js → chunk-ILFEWRLG.js} +1 -1
  63. package/dist/{chunk-6HYPQ5PY.js → chunk-JWNYI7UD.js} +1 -1
  64. package/dist/{chunk-NRWJUGNA.js → chunk-LIJQT74Y.js} +1 -1
  65. package/dist/{chunk-WCMUDIGX.js → chunk-MUQJCH2Y.js} +4 -4
  66. package/dist/{chunk-OKUULQ22.js → chunk-OO7QJCJQ.js} +1 -1
  67. package/dist/{chunk-LOBV4QON.js → chunk-OOJTPR7N.js} +1 -1
  68. package/dist/{chunk-VBEMIZIJ.js → chunk-RFPCHMSX.js} +1 -1
  69. package/dist/{chunk-LXCRHVMZ.js → chunk-SEPSXOGJ.js} +1 -1
  70. package/dist/{chunk-NXWDHHSY.js → chunk-SMOFYZJ5.js} +4 -4
  71. package/dist/{chunk-K2FNW3MK.js → chunk-SQ4JFHO7.js} +1 -1
  72. package/dist/{chunk-F45VSK2M.js → chunk-SS4XCUUJ.js} +2 -2
  73. package/dist/{chunk-2SHOT4WH.js → chunk-TWZEWXNW.js} +1 -1
  74. package/dist/{chunk-Z5RZXVQ7.js → chunk-U4HOKU6P.js} +3 -3
  75. package/dist/{chunk-POS4E7ER.js → chunk-VKFG4FLE.js} +2 -2
  76. package/dist/{chunk-CNTBUK24.js → chunk-VP2ODUCC.js} +2 -2
  77. package/dist/{chunk-NILOJV62.js → chunk-X4NIE7CI.js} +1 -1
  78. package/dist/{chunk-PZZHO6OS.js → chunk-XS2FJVMT.js} +1 -1
  79. package/dist/{chunk-5CLWBPB5.js → chunk-ZCIL5IHU.js} +1 -1
  80. package/dist/generated/index.js +55 -55
  81. package/dist/index.js +55 -55
  82. package/dist/styles.css +50 -13
  83. package/package.json +3 -3
  84. package/dist/{chunk-ICPQIAD6.js → chunk-D7Q5MQRF.js} +1 -1
  85. package/dist/{chunk-D4EOPIFL.js → chunk-EXRRTKWT.js} +1 -1
  86. package/dist/{chunk-S6J3EWDP.js → chunk-SXBJMBSV.js} +1 -1
  87. package/dist/{chunk-3JIZ2A6K.js → chunk-TMM32U7D.js} +1 -1
  88. package/dist/{chunk-K77LKW3X.js → chunk-UFXLNC2N.js} +1 -1
package/dist/styles.css CHANGED
@@ -702,7 +702,7 @@
702
702
  }
703
703
 
704
704
 
705
- /* AppShell-5P575KYA.css */
705
+ /* AppShell-BIUFNT3J.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.
@@ -1511,14 +1511,21 @@
1511
1511
  * half the foot's gap, to meet the row above (HitArea.css).
1512
1512
  *
1513
1513
  * IT IS THE ONE TALL ROW IN THE FOOT. Who is signed in is the row a reader
1514
- * looks for, so it stands on the large control step (`--size-control-lg`,
1515
- * 44px) around a medium badge (`size="md"`, 32px), where the rows above it
1516
- * keep the compact step. The badge stands in a column of its own width
1517
- * (`--crewlet-account-row-badge`), centred in it, so a smaller badge a caller
1518
- * hands the row lands where a medium one would, and the column is inset from
1519
- * the row's edge by the 6px the badge has above and below it in the 44px row.
1520
- * A 32px badge cannot stand on the nav's 14px glyph column: centred there, its
1521
- * ring (1.5px, 2px out) would cross the row's own edge.
1514
+ * looks for, so it stands half a spacing step under the large control step
1515
+ * (`--crewlet-account-row-height`, 42px) around a medium badge (`size="md"`,
1516
+ * 32px), where the rows above it keep the compact step. At 44px it read as
1517
+ * cramped against the foot's edges, so it gives up the half step and the
1518
+ * space around it grows instead (`--crewlet-account-row-pad`, one step above
1519
+ * and below, where it was none): the row is slimmer and the foot breathes
1520
+ * more. It goes no lower than 42px because the badge's ring (1.5px, 2px out)
1521
+ * takes 39px of it, and 42 keeps the ring 1.5px clear of the row's hover fill
1522
+ * where 40 would leave half a pixel, which reads as the ring touching it. The
1523
+ * badge stands in a column of its own width (`--crewlet-account-row-badge`),
1524
+ * centred in it, so a smaller badge a caller hands the row lands where a
1525
+ * medium one would, and the column is inset 6px from the row's start, so the
1526
+ * badge's ring clears the row's edge on that side too. A 32px badge cannot
1527
+ * stand on the nav's 14px glyph column: centred there, its ring (1.5px, 2px
1528
+ * out) would cross the row's own edge.
1522
1529
  *
1523
1530
  * The name takes the body's size (`--font-size-compact`, the nav's words) and
1524
1531
  * both lines take the body's leading, a step a 36px row had no room for.
@@ -1533,9 +1540,17 @@
1533
1540
  * after the name is the half step, and the controls beside the link
1534
1541
  * (Settings, Preferences) are half a step apart and half a step off it.
1535
1542
  * Outside a rail's foot the row keeps its chevron.
1543
+ *
1544
+ * THE CONTROLS STAND AS TALL AS THE ROW. Beside a 42px row, the small step's
1545
+ * 26px squares floated in the middle of it as two smaller boxes, and their
1546
+ * hover fill ended short of the row's on both sides. They take the row's
1547
+ * height (`--crewlet-account-row-height`) and keep the small step's width and
1548
+ * glyph, so the fill lines up with the row's top and bottom and the words
1549
+ * keep every pixel of their column.
1536
1550
  */
1537
1551
  .crewlet-app-shell__rail-foot .crewlet-account-row {
1538
- --crewlet-account-row-pad: var(--spacing-0);
1552
+ --crewlet-account-row-pad: var(--spacing-1);
1553
+ --crewlet-account-row-height: calc(var(--size-control-lg) - var(--spacing-1) / 2);
1539
1554
  --crewlet-account-row-badge: 32px;
1540
1555
  gap: calc(var(--spacing-1) / 2);
1541
1556
  }
@@ -1543,8 +1558,8 @@
1543
1558
  .crewlet-app-shell__rail-foot .crewlet-account-row__who {
1544
1559
  --crewlet-hit-area-block-start: calc(var(--crewlet-rail-foot-gap) / 2 + var(--crewlet-account-row-pad));
1545
1560
  gap: 0;
1546
- min-height: var(--size-control-lg);
1547
- padding-block: var(--spacing-1);
1561
+ min-height: var(--crewlet-account-row-height);
1562
+ padding-block: calc(var(--spacing-1) / 2);
1548
1563
  padding-inline: calc(var(--spacing-1) + var(--spacing-1) / 2) calc(var(--spacing-1) / 2);
1549
1564
  }
1550
1565
 
@@ -1570,6 +1585,10 @@
1570
1585
  gap: calc(var(--spacing-1) / 2);
1571
1586
  }
1572
1587
 
1588
+ .crewlet-app-shell__rail-foot .crewlet-account-row__actions .crewlet-icon-btn {
1589
+ height: var(--crewlet-account-row-height);
1590
+ }
1591
+
1573
1592
  /* The row as the reader's menu button: a button drawn as the link is. */
1574
1593
  button.crewlet-account-row__who {
1575
1594
  width: 100%;
@@ -32471,7 +32490,7 @@ svg.crewlet-time-window__tick {
32471
32490
  }
32472
32491
 
32473
32492
 
32474
- /* TreeCanvas-L2XYONWL.css */
32493
+ /* TreeCanvas-QA3PDFTK.css */
32475
32494
  /*
32476
32495
  * A hierarchy drawn as cards on a canvas (TreeCanvas.tsx).
32477
32496
  *
@@ -33544,6 +33563,24 @@ svg.crewlet-time-window__tick {
33544
33563
  content: none;
33545
33564
  }
33546
33565
 
33566
+ /*
33567
+ * A STRIP WITH NOTHING DRAWN IN IT IS NOT DRAWN. A node may offer the pointer
33568
+ * no control at all (a company's root, which nobody edits from the chart) and
33569
+ * still hold the keyboard's menu anchor, which is drawn nowhere. Revealed on
33570
+ * hover, focus or selection, that strip painted the column's rule beside the
33571
+ * name with nothing beside it (`node`), or a patch of the strip's ground
33572
+ * (`card`). So a strip whose every child is keyboard-only, or that has none,
33573
+ * keeps its box (the anchor still places its menu from it, and the name keeps
33574
+ * the column's room so a rank still lines up) and draws neither.
33575
+ */
33576
+ .crewlet-tree-canvas__actions:not(:has(> :not([data-keyboard-only]))) {
33577
+ background: none;
33578
+ }
33579
+
33580
+ .crewlet-tree-canvas__actions:not(:has(> :not([data-keyboard-only])))::before {
33581
+ content: none;
33582
+ }
33583
+
33547
33584
  /* ---------------------------------------------------------------------------
33548
33585
  * A NODE BEING COMPOSED: the ghost, and the form drawn inside it.
33549
33586
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crewlethq/ui",
3
- "version": "0.48.1",
3
+ "version": "0.48.3",
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.48.1",
46
- "@crewlethq/tokens": "0.48.1",
45
+ "@crewlethq/icons": "0.48.3",
46
+ "@crewlethq/tokens": "0.48.3",
47
47
  "prosemirror-commands": "1.7.2",
48
48
  "prosemirror-gapcursor": "1.4.1",
49
49
  "prosemirror-history": "1.5.1",
@@ -3,8 +3,8 @@ import { Tooltip } from './chunk-I33UIUZD.js';
3
3
  import { Kbd } from './chunk-SMBKXWML.js';
4
4
  import { LAYER_REPOSITION_EVENT, LayerHost } from './chunk-OMV5W53A.js';
5
5
  import { Button } from './chunk-OG6CL3EB.js';
6
- import { returnFocus } from './chunk-NUZHC6MM.js';
7
6
  import { IconButton } from './chunk-LACA4JGC.js';
7
+ import { returnFocus } from './chunk-NUZHC6MM.js';
8
8
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
9
9
  import { cx } from './chunk-ODEQTPFM.js';
10
10
  import './Canvas-4QJHVLJ4.css';
@@ -2,8 +2,8 @@ import { characterCountState, CharacterCount } from './chunk-XCUUI7E7.js';
2
2
  import { useHeadingLevel, headingTag, HeadingLevelProvider, nextHeadingLevel } from './chunk-PQADV6P6.js';
3
3
  import { announce } from './chunk-RSAQOKH3.js';
4
4
  import { isComposing } from './chunk-H5XTJ7GJ.js';
5
- import { useFocusModality } from './chunk-NUZHC6MM.js';
6
5
  import { IconButton } from './chunk-LACA4JGC.js';
6
+ import { useFocusModality } from './chunk-NUZHC6MM.js';
7
7
  import { VisuallyHidden } from './chunk-BZFWDIV6.js';
8
8
  import { cx } from './chunk-ODEQTPFM.js';
9
9
  import './Input-VDSV7VWJ.css';
@@ -2,8 +2,8 @@ import { Tag } from './chunk-KYIAFNU7.js';
2
2
  import { useListbox } from './chunk-7KHM2FZH.js';
3
3
  import { announce } from './chunk-RSAQOKH3.js';
4
4
  import { isComposing } from './chunk-H5XTJ7GJ.js';
5
- import { useFocusModality } from './chunk-NUZHC6MM.js';
6
5
  import { IconButton } from './chunk-LACA4JGC.js';
6
+ import { useFocusModality } from './chunk-NUZHC6MM.js';
7
7
  import { cx } from './chunk-ODEQTPFM.js';
8
8
  import './TagsInput-CLFHP6I2.css';
9
9
  import { forwardRef, useState, useRef, useId, useImperativeHandle, useEffect, useMemo, useLayoutEffect } from 'react';
@@ -1,8 +1,8 @@
1
1
  import { useLayerContainer, viewportBounds, LAYER_GAP, anchorGone, placePopup, LAYER_REPOSITION_EVENT } from './chunk-OMV5W53A.js';
2
2
  import { Button } from './chunk-OG6CL3EB.js';
3
3
  import { usePopupLayer } from './chunk-H5XTJ7GJ.js';
4
- import { returnFocus } from './chunk-NUZHC6MM.js';
5
4
  import { IconButton } from './chunk-LACA4JGC.js';
5
+ import { returnFocus } from './chunk-NUZHC6MM.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
7
  import './Menu-KEKAD3BZ.css';
8
8
  import { useId, useState, useRef, useCallback, useLayoutEffect, useEffect } from 'react';
@@ -1,8 +1,8 @@
1
1
  import { Popover } from './chunk-KHJIEPZV.js';
2
2
  import { today, CalendarGrid, shiftMonth, compareDays } from './chunk-GXQ3B46I.js';
3
3
  import { Button } from './chunk-OG6CL3EB.js';
4
- import { useFocusModality } from './chunk-NUZHC6MM.js';
5
4
  import { IconButton } from './chunk-LACA4JGC.js';
5
+ import { useFocusModality } from './chunk-NUZHC6MM.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
7
  import './DateTimePicker-3A7JIIVL.css';
8
8
  import { useMemo, useState, useEffect } from 'react';