@crewlethq/ui 0.78.0 → 0.79.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 (112) hide show
  1. package/dist/AgentHandoffPanel/index.js +5 -5
  2. package/dist/AppShell/index.js +4 -4
  3. package/dist/ArrangeList/index.js +4 -4
  4. package/dist/ArtifactBar/index.js +7 -7
  5. package/dist/ArtifactCard/index.js +6 -6
  6. package/dist/ArtifactPanel/index.js +1 -1
  7. package/dist/AvatarPicker/index.js +7 -7
  8. package/dist/Canvas/index.js +3 -3
  9. package/dist/CanvasBoard/index.js +5 -5
  10. package/dist/CanvasToolbar/index.js +4 -4
  11. package/dist/CheckGrid/index.js +4 -4
  12. package/dist/Checkbox/index.js +3 -3
  13. package/dist/ColorField/index.js +3 -3
  14. package/dist/Combobox/index.js +3 -3
  15. package/dist/CommandPalette/index.js +4 -4
  16. package/dist/CommentThread/index.js +6 -6
  17. package/dist/Composer/index.js +3 -3
  18. package/dist/ConfirmField/index.js +3 -3
  19. package/dist/ContrastBadge/index.js +2 -2
  20. package/dist/ContrastHelp/index.js +4 -4
  21. package/dist/DataGrid/index.js +4 -4
  22. package/dist/DataTable/DataTable.d.ts +17 -1
  23. package/dist/DataTable/index.js +6 -6
  24. package/dist/DataView/index.js +8 -8
  25. package/dist/DateTimePicker/index.js +3 -3
  26. package/dist/DocTabsEditor/index.js +5 -5
  27. package/dist/{Editor-QO2GRTMK.js → Editor-BXOWAV46.js} +4 -4
  28. package/dist/FollowBanner/index.js +1 -1
  29. package/dist/HuePicker/index.js +6 -6
  30. package/dist/InlineEditor/index.js +1 -1
  31. package/dist/Input/index.js +2 -2
  32. package/dist/LinkInterstitial/index.js +2 -2
  33. package/dist/ListInput/index.js +4 -4
  34. package/dist/LogoSlot/index.js +3 -3
  35. package/dist/MarkdownEditor/index.js +6 -6
  36. package/dist/Menu/index.js +3 -3
  37. package/dist/MergeConflicts/index.js +6 -6
  38. package/dist/Modal/index.js +2 -2
  39. package/dist/OrgTable/index.js +1 -1
  40. package/dist/PeekRail/index.js +1 -1
  41. package/dist/PresenterView/index.js +2 -2
  42. package/dist/PrincipalPicker/index.js +4 -4
  43. package/dist/ProposalCard/index.js +4 -4
  44. package/dist/RichEditor/index.js +1 -1
  45. package/dist/SegmentedControl/index.js +5 -5
  46. package/dist/SelectionBar/index.js +1 -1
  47. package/dist/ShareDialog/index.js +2 -2
  48. package/dist/SheetColumnEditor/index.js +9 -9
  49. package/dist/SheetGrid/index.js +5 -5
  50. package/dist/SidePanel/index.js +1 -1
  51. package/dist/SlideCompare/index.js +1 -1
  52. package/dist/SlideFilmstrip/index.js +4 -4
  53. package/dist/Switcher/index.js +4 -4
  54. package/dist/Tabs/index.js +4 -4
  55. package/dist/TagsInput/index.js +2 -2
  56. package/dist/ThemeSwitcher/index.js +6 -6
  57. package/dist/TimeRangePicker/index.js +7 -7
  58. package/dist/TimeWindowPicker/index.js +4 -4
  59. package/dist/TreeCanvas/index.js +4 -4
  60. package/dist/TreeGrid/index.js +1 -1
  61. package/dist/ValueField/index.js +4 -4
  62. package/dist/VersionCompare/index.js +6 -6
  63. package/dist/{chunk-5N3MF7O2.js → chunk-2STOSJT3.js} +2 -2
  64. package/dist/{chunk-PP5E3FGY.js → chunk-3EKXL76Z.js} +1 -1
  65. package/dist/{chunk-Y7OXW5SB.js → chunk-3G2BC4K5.js} +1 -1
  66. package/dist/{chunk-4Y7PLU4I.js → chunk-45M73G5A.js} +1 -1
  67. package/dist/{chunk-A6NUAQFW.js → chunk-57AKYFML.js} +1 -1
  68. package/dist/{chunk-3NYVPLPW.js → chunk-5CEQ3HLH.js} +1 -1
  69. package/dist/{chunk-FRLUJAFK.js → chunk-6EWNMSS4.js} +1 -1
  70. package/dist/{chunk-U4ICCJJP.js → chunk-ADGNISEI.js} +2 -2
  71. package/dist/{chunk-WM3U4ARK.js → chunk-CFTBESST.js} +1 -1
  72. package/dist/{chunk-DCAT5OAX.js → chunk-DSMQTED5.js} +1 -1
  73. package/dist/{chunk-CZUIPICC.js → chunk-E35HYQMK.js} +1 -1
  74. package/dist/{chunk-LE6K34SN.js → chunk-ERB7UI3P.js} +1 -1
  75. package/dist/{chunk-ODAZIKZF.js → chunk-FQI62PIZ.js} +2 -2
  76. package/dist/{chunk-BRFIUUXX.js → chunk-GHQG4VZA.js} +2 -2
  77. package/dist/{chunk-QEVYTXCY.js → chunk-HA3C53OU.js} +3 -3
  78. package/dist/{chunk-4O5XNGDC.js → chunk-HQOEAUDJ.js} +1 -1
  79. package/dist/{chunk-LXB4CABM.js → chunk-INO2OXDB.js} +29 -8
  80. package/dist/{chunk-JIBZ5SF5.js → chunk-JBA6ZDPV.js} +2 -2
  81. package/dist/{chunk-TNU6U7C5.js → chunk-JNORDILD.js} +2 -2
  82. package/dist/{chunk-VDIKDCNE.js → chunk-JQEXAH7G.js} +1 -1
  83. package/dist/{chunk-SQ7GYC4K.js → chunk-KL6A7JGH.js} +1 -1
  84. package/dist/{chunk-MKWURHR5.js → chunk-LCZULGMB.js} +1 -1
  85. package/dist/{chunk-GKWZTTFV.js → chunk-LMQG3VPG.js} +1 -1
  86. package/dist/{chunk-HUIYSNBS.js → chunk-MGQKF7GK.js} +1 -1
  87. package/dist/{chunk-SZ75VYRX.js → chunk-MP7DGKB6.js} +1 -1
  88. package/dist/{chunk-E6ETTJWX.js → chunk-NSCACX5Y.js} +4 -4
  89. package/dist/{chunk-LWKMJMVC.js → chunk-OWHETZIU.js} +1 -1
  90. package/dist/{chunk-PQDQTK64.js → chunk-OZAMLQY7.js} +1 -1
  91. package/dist/{chunk-L5PK2MXF.js → chunk-QHQGJQV7.js} +1 -1
  92. package/dist/{chunk-72Y5DBSY.js → chunk-RIAPCEB5.js} +2 -2
  93. package/dist/{chunk-TL74TBDR.js → chunk-T24HBEU6.js} +1 -1
  94. package/dist/{chunk-EVOGHRFN.js → chunk-TJIBTHWJ.js} +2 -2
  95. package/dist/{chunk-2GBG7KPK.js → chunk-TKUAGWNR.js} +1 -1
  96. package/dist/{chunk-HMOGLAXY.js → chunk-TPCBPGSB.js} +1 -1
  97. package/dist/{chunk-LJSQT5NJ.js → chunk-TPIMOGOZ.js} +1 -1
  98. package/dist/{chunk-HDLUG3MA.js → chunk-UY3FWQWG.js} +2 -2
  99. package/dist/{chunk-LPN3RHMA.js → chunk-W3VDHUJM.js} +1 -1
  100. package/dist/{chunk-62GVKZJI.js → chunk-YQDRJZ5J.js} +1 -1
  101. package/dist/{chunk-UQHTHOSZ.js → chunk-YT5SWN4Q.js} +1 -1
  102. package/dist/{chunk-KP5DDOMF.js → chunk-Z4H3NF7U.js} +4 -4
  103. package/dist/{chunk-HZHFXKVP.js → chunk-ZKLEAK7M.js} +2 -2
  104. package/dist/generated/index.js +67 -67
  105. package/dist/index.js +67 -67
  106. package/package.json +3 -3
  107. package/dist/{chunk-MGWFVAPN.js → chunk-7PJFUQMY.js} +1 -1
  108. package/dist/{chunk-6Q7RW2JJ.js → chunk-FB3TCNQP.js} +1 -1
  109. package/dist/{chunk-SWLVR54P.js → chunk-HPI5J6AR.js} +1 -1
  110. package/dist/{chunk-EMCVX5FY.js → chunk-OBPINJNO.js} +1 -1
  111. package/dist/{chunk-KNAHKQD4.js → chunk-OQG4P5KU.js} +1 -1
  112. package/dist/{chunk-TD6LHL7M.js → chunk-WK4FQPYW.js} +1 -1
@@ -4,12 +4,12 @@ import { presenceHueClass } from './chunk-EFX2YC5T.js';
4
4
  import { ChangeMark } from './chunk-Z2MZTI3H.js';
5
5
  import { isEmptyValue, displayText, ratingMax, findPerson, findOption, statusTone, editText, textMax, sheetLabels, normalizeValue, sameValue, spokenText, drawnColumns, fitSamples, fittedWidth, columnWidth, SHEET_COLUMN_BOUNDS, sortRows, SHEET_ROW_HEIGHT, cellKey, columnOffsets, SHEET_ROW_NUMBER_WIDTH, rangeOf, presenceByCell, presenceByRow, presenceByColumn, scrollToRow, planClear, visibleRows, cellDescription, nextSort, rowName, inRange, hasPrevious, flagText, toTSV, planPaste, parseTSV, isMod, moveFrom, isTypingKey, editorSide, optionHue, parseText, liveOptions, checkValue } from './chunk-LFSIKGRQ.js';
6
6
  import { presenceLabels } from './chunk-Z7JYG5TF.js';
7
- import { Tag } from './chunk-VERJCAJ4.js';
8
7
  import { Popover } from './chunk-KHJIEPZV.js';
8
+ import { Tag } from './chunk-VERJCAJ4.js';
9
9
  import { Tooltip } from './chunk-I33UIUZD.js';
10
10
  import { StatusDot } from './chunk-CYQBDZ6M.js';
11
11
  import { Avatar } from './chunk-KTIQSSME.js';
12
- import { Menu } from './chunk-KNAHKQD4.js';
12
+ import { Menu } from './chunk-OQG4P5KU.js';
13
13
  import { Button } from './chunk-DGXZ635L.js';
14
14
  import { isComposing } from './chunk-H5XTJ7GJ.js';
15
15
  import { IconButton } from './chunk-UAUP6XGK.js';
@@ -1,4 +1,4 @@
1
- import { HuePicker } from './chunk-LE6K34SN.js';
1
+ import { HuePicker } from './chunk-ERB7UI3P.js';
2
2
  import { Popover } from './chunk-KHJIEPZV.js';
3
3
  import { NODE_HUE_NAMES } from './chunk-AYKXMIOR.js';
4
4
  import { CharacterPicker } from './chunk-I22MUEG7.js';
@@ -1,4 +1,4 @@
1
- import { SegmentedControl } from './chunk-PQDQTK64.js';
1
+ import { SegmentedControl } from './chunk-OZAMLQY7.js';
2
2
  import { Button } from './chunk-DGXZ635L.js';
3
3
  import { cx } from './chunk-ODEQTPFM.js';
4
4
  import './MergeConflicts-HCXPRQVR.css';
@@ -1,6 +1,6 @@
1
1
  import { useReorder } from './chunk-MPVMB2DV.js';
2
2
  import { Kbd } from './chunk-ANTAQAR4.js';
3
- import { FormField, Textarea } from './chunk-6Q7RW2JJ.js';
3
+ import { FormField, Textarea } from './chunk-FB3TCNQP.js';
4
4
  import { characterCountState, CharacterCount, countCharacters } from './chunk-PGCLHYVP.js';
5
5
  import { announce } from './chunk-2G355KDJ.js';
6
6
  import { Button } from './chunk-DGXZ635L.js';
@@ -1,6 +1,6 @@
1
1
  import { Timeline } from './chunk-4MJN2KN6.js';
2
2
  import { Section } from './chunk-WFCWPXJN.js';
3
- import { Composer } from './chunk-CZUIPICC.js';
3
+ import { Composer } from './chunk-E35HYQMK.js';
4
4
  import { Disclosure } from './chunk-222VILSP.js';
5
5
  import { ArtifactPanel } from './chunk-FFGEJUAP.js';
6
6
  import { Button } from './chunk-DGXZ635L.js';
@@ -1,7 +1,7 @@
1
1
  import { Modal } from './chunk-C667GCU7.js';
2
2
  import { useListbox, useHighlightRest } from './chunk-7KHM2FZH.js';
3
3
  import { Kbd } from './chunk-ANTAQAR4.js';
4
- import { Input } from './chunk-6Q7RW2JJ.js';
4
+ import { Input } from './chunk-FB3TCNQP.js';
5
5
  import { Count } from './chunk-MLDTLZAO.js';
6
6
  import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
7
7
  import { isComposing } from './chunk-H5XTJ7GJ.js';
@@ -1,5 +1,5 @@
1
1
  import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
2
- import { Input } from './chunk-6Q7RW2JJ.js';
2
+ import { Input } from './chunk-FB3TCNQP.js';
3
3
  import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
4
4
  import { cx } from './chunk-ODEQTPFM.js';
5
5
  import './HitArea-QUOS6ZDJ.css';
@@ -1,7 +1,7 @@
1
- import { Document } from './chunk-BXCL6P5Z.js';
2
1
  import { PrincipalAvatar } from './chunk-N2BF272H.js';
3
2
  import { toInstant, RelativeTime, formatExact, toISO } from './chunk-EJNJMHQG.js';
4
- import { Composer } from './chunk-CZUIPICC.js';
3
+ import { Document } from './chunk-BXCL6P5Z.js';
4
+ import { Composer } from './chunk-E35HYQMK.js';
5
5
  import { Count } from './chunk-MLDTLZAO.js';
6
6
  import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
7
7
  import { Button } from './chunk-DGXZ635L.js';
@@ -1,4 +1,4 @@
1
- import { Combobox } from './chunk-FRLUJAFK.js';
1
+ import { Combobox } from './chunk-6EWNMSS4.js';
2
2
  import { PRINCIPAL_KINDS, PrincipalAvatar } from './chunk-N2BF272H.js';
3
3
  import { cx } from './chunk-ODEQTPFM.js';
4
4
  import './PrincipalPicker-P6UYHDJR.css';
@@ -1,7 +1,7 @@
1
1
  import { RefusalStrip, ReceiptStrip } from './chunk-ZWCK4N4L.js';
2
2
  import { ChangeList } from './chunk-BBD7PTBG.js';
3
3
  import { StatusCard } from './chunk-RTMNULTL.js';
4
- import { Checkbox } from './chunk-GKWZTTFV.js';
4
+ import { Checkbox } from './chunk-LMQG3VPG.js';
5
5
  import { Disclosure } from './chunk-222VILSP.js';
6
6
  import { Button } from './chunk-DGXZ635L.js';
7
7
  import { Spinner } from './chunk-XSPCITPN.js';
@@ -1,5 +1,5 @@
1
1
  import { Kbd } from './chunk-ANTAQAR4.js';
2
- import { Textarea } from './chunk-6Q7RW2JJ.js';
2
+ import { Textarea } from './chunk-FB3TCNQP.js';
3
3
  import { isComposing } from './chunk-H5XTJ7GJ.js';
4
4
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
5
5
  import { cx } from './chunk-ODEQTPFM.js';
@@ -1,5 +1,5 @@
1
1
  import { NODE_HUES, NODE_HUE_NAMES } from './chunk-AYKXMIOR.js';
2
- import { SegmentedControl } from './chunk-PQDQTK64.js';
2
+ import { SegmentedControl } from './chunk-OZAMLQY7.js';
3
3
  import { cx } from './chunk-ODEQTPFM.js';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
 
@@ -1,6 +1,6 @@
1
1
  import { Note } from './chunk-5SZGKSGL.js';
2
- import { CanvasToolbar, toolForKey } from './chunk-SQ7GYC4K.js';
3
- import { IDENTITY_VIEW, Canvas } from './chunk-EMCVX5FY.js';
2
+ import { CanvasToolbar, toolForKey } from './chunk-KL6A7JGH.js';
3
+ import { IDENTITY_VIEW, Canvas } from './chunk-OBPINJNO.js';
4
4
  import { IconButton } from './chunk-UAUP6XGK.js';
5
5
  import { cx } from './chunk-ODEQTPFM.js';
6
6
  import './CanvasBoard-U6LR5F6H.css';
@@ -1,6 +1,6 @@
1
1
  import { Select } from './chunk-VK45YJLH.js';
2
- import { Combobox } from './chunk-FRLUJAFK.js';
3
- import { FormField, Textarea, InputAffix } from './chunk-6Q7RW2JJ.js';
2
+ import { Combobox } from './chunk-6EWNMSS4.js';
3
+ import { FormField, Textarea, InputAffix } from './chunk-FB3TCNQP.js';
4
4
  import './Input-WSMB7JG2.css';
5
5
  import './VisuallyHidden-AOEXU5EB.css';
6
6
  import './HitArea-QUOS6ZDJ.css';
@@ -1,11 +1,11 @@
1
1
  import { Tooltip } from './chunk-I33UIUZD.js';
2
- import { SegmentedControl } from './chunk-PQDQTK64.js';
2
+ import { SegmentedControl } from './chunk-OZAMLQY7.js';
3
3
  import { ArtifactIcon } from './chunk-AVL52EME.js';
4
4
  import { isApplePlatform, Kbd } from './chunk-ANTAQAR4.js';
5
- import { Menu } from './chunk-KNAHKQD4.js';
5
+ import { Menu } from './chunk-OQG4P5KU.js';
6
6
  import { Button } from './chunk-DGXZ635L.js';
7
- import { returnFocus } from './chunk-NUZHC6MM.js';
8
7
  import { IconButton } from './chunk-UAUP6XGK.js';
8
+ import { returnFocus } from './chunk-NUZHC6MM.js';
9
9
  import { cx } from './chunk-ODEQTPFM.js';
10
10
  import './ArtifactKinds-O3CALPVX.css';
11
11
  import './ArtifactBar-X46WJNW7.css';
@@ -1,4 +1,4 @@
1
- import { ContrastLevelTag } from './chunk-MGWFVAPN.js';
1
+ import { ContrastLevelTag } from './chunk-7PJFUQMY.js';
2
2
  import { Popover } from './chunk-KHJIEPZV.js';
3
3
  import { IconButton } from './chunk-UAUP6XGK.js';
4
4
  import { cx } from './chunk-ODEQTPFM.js';
@@ -2,8 +2,8 @@ import { Modal } from './chunk-C667GCU7.js';
2
2
  import { useClipboard } from './chunk-STJ7QBC3.js';
3
3
  import { EmptyValue } from './chunk-RE3FBGQQ.js';
4
4
  import { useCardHeaderSlot } from './chunk-AV2DXAEL.js';
5
- import { Checkbox } from './chunk-GKWZTTFV.js';
6
- import { Menu } from './chunk-KNAHKQD4.js';
5
+ import { Checkbox } from './chunk-LMQG3VPG.js';
6
+ import { Menu } from './chunk-OQG4P5KU.js';
7
7
  import { Button } from './chunk-DGXZ635L.js';
8
8
  import { IconButton } from './chunk-UAUP6XGK.js';
9
9
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
@@ -270,6 +270,8 @@ var DataTable = ({
270
270
  loadingMore = false,
271
271
  loadMoreLabel = "Load more",
272
272
  title,
273
+ ariaLabel,
274
+ expandLabel,
273
275
  description,
274
276
  icon,
275
277
  defaultWrapLines,
@@ -811,6 +813,8 @@ var DataTable = ({
811
813
  const [settingsSaid, setSettingsSaid] = useState("");
812
814
  const instanceId = useId();
813
815
  const reorderHintId = `${instanceId}-reorder`;
816
+ const titleId = `${instanceId}-title`;
817
+ const panelId = (index) => `${instanceId}-panel-${index}`;
814
818
  const columnLabelId = (columnKey) => `${instanceId}${COLUMN_LABEL_INFIX}${columnLabelKey(columnKey)}`;
815
819
  const handleToggleColumn = (columnKey) => {
816
820
  if (whyFixed(columnKey, draftVisibleColumns) !== null && draftVisibleColumns[columnKey] !== false) return;
@@ -1205,7 +1209,7 @@ var DataTable = ({
1205
1209
  "__expand"
1206
1210
  );
1207
1211
  };
1208
- const renderExpandCell = (rowIsOpen, canExpand, onToggle) => {
1212
+ const renderExpandCell = (row, rowIsOpen, canExpand, onToggle, controls) => {
1209
1213
  if (!expandable) return null;
1210
1214
  return /* @__PURE__ */ jsx("td", { className: "crewlet-data-table__expand-cell", style: { width: 32 }, children: canExpand && /* @__PURE__ */ jsx(
1211
1215
  "button",
@@ -1213,7 +1217,8 @@ var DataTable = ({
1213
1217
  type: "button",
1214
1218
  className: "crewlet-data-table__expand-btn",
1215
1219
  "aria-expanded": rowIsOpen,
1216
- "aria-label": rowIsOpen ? labels.collapseRow : labels.expandRow,
1220
+ "aria-controls": rowIsOpen ? controls : void 0,
1221
+ "aria-label": expandLabel ? expandLabel(row, rowIsOpen) : rowIsOpen ? labels.collapseRow : labels.expandRow,
1217
1222
  onClick: (event) => {
1218
1223
  event.stopPropagation();
1219
1224
  onToggle();
@@ -1329,7 +1334,7 @@ var DataTable = ({
1329
1334
  headerVisible && /* @__PURE__ */ jsxs("header", { className: "crewlet-data-table__header", children: [
1330
1335
  icon != null && /* @__PURE__ */ jsx("span", { className: "crewlet-data-table__header-icon", children: icon }),
1331
1336
  /* @__PURE__ */ jsxs("div", { className: "crewlet-data-table__header-text", children: [
1332
- title != null && /* @__PURE__ */ jsx("h3", { className: "crewlet-data-table__title", children: title }),
1337
+ title != null && /* @__PURE__ */ jsx("h3", { id: titleId, className: "crewlet-data-table__title", children: title }),
1333
1338
  description != null && /* @__PURE__ */ jsx("p", { className: "crewlet-data-table__description", children: description })
1334
1339
  ] }),
1335
1340
  renderTopControls
@@ -1388,6 +1393,8 @@ var DataTable = ({
1388
1393
  !bodyHoldsRows && "crewlet-data-table__table--rowless"
1389
1394
  ),
1390
1395
  "aria-busy": loading || void 0,
1396
+ "aria-label": ariaLabel,
1397
+ "aria-labelledby": ariaLabel == null && headerVisible && title != null ? titleId : void 0,
1391
1398
  children: [
1392
1399
  /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
1393
1400
  renderExpandHeader(),
@@ -1455,7 +1462,7 @@ var DataTable = ({
1455
1462
  className: "crewlet-data-table__empty",
1456
1463
  children: emptyMessage
1457
1464
  }
1458
- ) }) : displayedData.map((row) => {
1465
+ ) }) : displayedData.map((row, rowIndex) => {
1459
1466
  const trKey = resolveRowKey(row);
1460
1467
  const isArchived = archivedPredicate ? archivedPredicate(row) : false;
1461
1468
  const expanded = expandable ? expandedKeys.has(trKey) : false;
@@ -1502,7 +1509,13 @@ var DataTable = ({
1502
1509
  }
1503
1510
  } : void 0,
1504
1511
  children: [
1505
- renderExpandCell(expanded, canExpand, () => toggleExpanded(trKey)),
1512
+ renderExpandCell(
1513
+ row,
1514
+ expanded,
1515
+ canExpand,
1516
+ () => toggleExpanded(trKey),
1517
+ panelId(rowIndex)
1518
+ ),
1506
1519
  columnOrder.filter((columnKey) => columns[columnKey]?.sticky !== "right").map((columnKey) => {
1507
1520
  if (!isColumnVisible(columnKey)) return null;
1508
1521
  return renderBodyCell(row, columnKey, columnKey === firstVisibleKey ? rowLead : {});
@@ -1523,7 +1536,15 @@ var DataTable = ({
1523
1536
  "crewlet-data-table__expanded-row",
1524
1537
  isArchived ? "crewlet-data-table__row--archived" : void 0
1525
1538
  ].filter(Boolean).join(" "),
1526
- children: /* @__PURE__ */ jsx("td", { colSpan: expandColSpan, className: "crewlet-data-table__expanded-cell", children: expandedContent })
1539
+ children: /* @__PURE__ */ jsx(
1540
+ "td",
1541
+ {
1542
+ id: panelId(rowIndex),
1543
+ colSpan: expandColSpan,
1544
+ className: "crewlet-data-table__expanded-cell",
1545
+ children: expandedContent
1546
+ }
1547
+ )
1527
1548
  }
1528
1549
  ),
1529
1550
  accessory != null && /* @__PURE__ */ jsx(
@@ -1,7 +1,7 @@
1
1
  import { Modal } from './chunk-C667GCU7.js';
2
2
  import { Callout } from './chunk-BPCY7ZID.js';
3
- import { SegmentedControl } from './chunk-PQDQTK64.js';
4
- import { FormField, Input } from './chunk-6Q7RW2JJ.js';
3
+ import { SegmentedControl } from './chunk-OZAMLQY7.js';
4
+ import { FormField, Input } from './chunk-FB3TCNQP.js';
5
5
  import { Button } from './chunk-DGXZ635L.js';
6
6
  import { useState } from 'react';
7
7
  import { ClockGlyph } from '@crewlethq/icons/glyphs';
@@ -1,6 +1,6 @@
1
1
  import { Toolbar } from './chunk-NR4CPM4T.js';
2
- import { SegmentedControl } from './chunk-PQDQTK64.js';
3
- import { tabId } from './chunk-LPN3RHMA.js';
2
+ import { SegmentedControl } from './chunk-OZAMLQY7.js';
3
+ import { tabId } from './chunk-W3VDHUJM.js';
4
4
  import { IconButton } from './chunk-UAUP6XGK.js';
5
5
  import { cx } from './chunk-ODEQTPFM.js';
6
6
  import './MarkdownEditor-BLCJRGDC.css';
@@ -1,5 +1,5 @@
1
1
  import { useTreeState, useMeasuredSizes, layoutForest, treeAncestors, useLayoutAnchor, treeExpandable, layoutConnectors, treeItemAction, treeStep, treePosInSet, treeSetSize, treeLevel, placeGroups } from './chunk-MY374UUD.js';
2
- import { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, Canvas } from './chunk-EMCVX5FY.js';
2
+ import { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, Canvas } from './chunk-OBPINJNO.js';
3
3
  import { focusables } from './chunk-H5XTJ7GJ.js';
4
4
  import { cx } from './chunk-ODEQTPFM.js';
5
5
  import './TreeCanvas-5FPK4CII.css';
@@ -1,5 +1,5 @@
1
1
  import { Toolbar } from './chunk-NR4CPM4T.js';
2
- import { ShortcutTip } from './chunk-EMCVX5FY.js';
2
+ import { ShortcutTip } from './chunk-OBPINJNO.js';
3
3
  import { IconButton } from './chunk-UAUP6XGK.js';
4
4
  import { cx } from './chunk-ODEQTPFM.js';
5
5
  import './CanvasToolbar-EM5EVZED.css';
@@ -1,4 +1,4 @@
1
- import { Checkbox } from './chunk-GKWZTTFV.js';
1
+ import { Checkbox } from './chunk-LMQG3VPG.js';
2
2
  import { EmptyState } from './chunk-PPUR46MK.js';
3
3
  import { useMediaMatch } from './chunk-RTPQDNW3.js';
4
4
  import { Button } from './chunk-DGXZ635L.js';
@@ -1,4 +1,4 @@
1
- import { FormField } from './chunk-6Q7RW2JJ.js';
1
+ import { FormField } from './chunk-FB3TCNQP.js';
2
2
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
3
3
  import { cx } from './chunk-ODEQTPFM.js';
4
4
  import './Checkbox-GAMV2XD7.css';
@@ -1,4 +1,4 @@
1
- import { Checkbox } from './chunk-GKWZTTFV.js';
1
+ import { Checkbox } from './chunk-LMQG3VPG.js';
2
2
  import { cx } from './chunk-ODEQTPFM.js';
3
3
  import './CheckGrid-B3SRTHOJ.css';
4
4
  import { useId } from 'react';
@@ -9,7 +9,7 @@ import { jsx } from 'react/jsx-runtime';
9
9
  var engine = null;
10
10
  var loading = null;
11
11
  function loadEngine() {
12
- loading ??= import('./Editor-QO2GRTMK.js').then(
12
+ loading ??= import('./Editor-BXOWAV46.js').then(
13
13
  (module) => {
14
14
  engine = module.Editor;
15
15
  return engine;
@@ -1,15 +1,15 @@
1
1
  import { PageHeader } from './chunk-FPDIHEM4.js';
2
2
  import { FilterPill } from './chunk-K4LZXSKZ.js';
3
- import { DateTimePicker } from './chunk-SWLVR54P.js';
4
- import { DataTable } from './chunk-LXB4CABM.js';
3
+ import { DateTimePicker } from './chunk-HPI5J6AR.js';
4
+ import { DataTable } from './chunk-INO2OXDB.js';
5
5
  import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
6
6
  import { Toolbar } from './chunk-NR4CPM4T.js';
7
7
  import { Popover } from './chunk-KHJIEPZV.js';
8
8
  import { RelativeTime } from './chunk-EJNJMHQG.js';
9
9
  import { Kbd } from './chunk-ANTAQAR4.js';
10
- import { Input } from './chunk-6Q7RW2JJ.js';
10
+ import { Input } from './chunk-FB3TCNQP.js';
11
11
  import { Count } from './chunk-MLDTLZAO.js';
12
- import { Menu } from './chunk-KNAHKQD4.js';
12
+ import { Menu } from './chunk-OQG4P5KU.js';
13
13
  import { Button } from './chunk-DGXZ635L.js';
14
14
  import { IconButton } from './chunk-UAUP6XGK.js';
15
15
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
@@ -1,5 +1,5 @@
1
1
  import { FileDrop, FilePickButton } from './chunk-KQWJWTED.js';
2
- import { contrastRatio } from './chunk-MGWFVAPN.js';
2
+ import { contrastRatio } from './chunk-7PJFUQMY.js';
3
3
  import { normalizeHex } from './chunk-7W3LYIOC.js';
4
4
  import { Button } from './chunk-DGXZ635L.js';
5
5
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
@@ -1,4 +1,4 @@
1
- import { tabId } from './chunk-LPN3RHMA.js';
1
+ import { tabId } from './chunk-W3VDHUJM.js';
2
2
  import { useRoving, tabStop } from './chunk-EGMQURBR.js';
3
3
  import { Count } from './chunk-MLDTLZAO.js';
4
4
  import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
@@ -1,5 +1,5 @@
1
1
  import { useThemePreference, useDensityPreference } from './chunk-Z24ZUSTX.js';
2
- import { SegmentedControl } from './chunk-PQDQTK64.js';
2
+ import { SegmentedControl } from './chunk-OZAMLQY7.js';
3
3
  import { SunGlyph, MonitorGlyph, MoonGlyph } from '@crewlethq/icons/glyphs';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
 
@@ -1,11 +1,11 @@
1
1
  import { Select } from './chunk-VK45YJLH.js';
2
2
  import { today, shiftMonth, CalendarGrid, compareDays } from './chunk-EE3DJMSQ.js';
3
3
  import { Popover } from './chunk-KHJIEPZV.js';
4
- import { Input } from './chunk-6Q7RW2JJ.js';
4
+ import { Input } from './chunk-FB3TCNQP.js';
5
5
  import { Button } from './chunk-DGXZ635L.js';
6
6
  import { isComposing } from './chunk-H5XTJ7GJ.js';
7
- import { useFocusModality } from './chunk-NUZHC6MM.js';
8
7
  import { IconButton } from './chunk-UAUP6XGK.js';
8
+ import { useFocusModality } from './chunk-NUZHC6MM.js';
9
9
  import { cx } from './chunk-ODEQTPFM.js';
10
10
  import './TimeWindowPicker-YZPKNZZI.css';
11
11
  import { useMemo, useState, useRef, useId, useEffect } from 'react';
@@ -1,5 +1,5 @@
1
1
  import { normalizeHex, parseColourInput } from './chunk-7W3LYIOC.js';
2
- import { FormField, Input, InputAffix } from './chunk-6Q7RW2JJ.js';
2
+ import { FormField, Input, InputAffix } from './chunk-FB3TCNQP.js';
3
3
  import { cx } from './chunk-ODEQTPFM.js';
4
4
  import './ColorField-2OIOWT3Z.css';
5
5
  import { useId, useState } from 'react';
@@ -1,6 +1,6 @@
1
1
  import { useReorder } from './chunk-MPVMB2DV.js';
2
- import { Input } from './chunk-6Q7RW2JJ.js';
3
- import { Menu } from './chunk-KNAHKQD4.js';
2
+ import { Input } from './chunk-FB3TCNQP.js';
3
+ import { Menu } from './chunk-OQG4P5KU.js';
4
4
  import { IconButton } from './chunk-UAUP6XGK.js';
5
5
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
@@ -1,6 +1,6 @@
1
1
  import { Switch } from './chunk-3XDT5ZWL.js';
2
2
  import { useReorder } from './chunk-MPVMB2DV.js';
3
- import { Checkbox } from './chunk-GKWZTTFV.js';
3
+ import { Checkbox } from './chunk-LMQG3VPG.js';
4
4
  import { IconButton } from './chunk-UAUP6XGK.js';
5
5
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
@@ -1,7 +1,7 @@
1
1
  import { SlideStage } from './chunk-RMEBFYL7.js';
2
2
  import { useReorder } from './chunk-MPVMB2DV.js';
3
3
  import { Kbd, isApplePlatform } from './chunk-ANTAQAR4.js';
4
- import { Menu } from './chunk-KNAHKQD4.js';
4
+ import { Menu } from './chunk-OQG4P5KU.js';
5
5
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
7
  import './SlideFilmstrip-BLGBCLEU.css';
@@ -1,5 +1,5 @@
1
1
  import { InlineCode } from './chunk-PLL7ZJHY.js';
2
- import { FormField, Input } from './chunk-6Q7RW2JJ.js';
2
+ import { FormField, Input } from './chunk-FB3TCNQP.js';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
 
5
5
  function confirmMatches(typed, phrase) {
@@ -1,10 +1,10 @@
1
1
  import { useMediaMatch } from './chunk-RTPQDNW3.js';
2
- import { Menu } from './chunk-KNAHKQD4.js';
2
+ import { Menu } from './chunk-OQG4P5KU.js';
3
3
  import { PeekContext, AsideContext, ResizeHandle, clampSize } from './chunk-PIYJNCN7.js';
4
4
  import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
5
5
  import { focusables, useModalLayer, isComposing, layerCount } from './chunk-H5XTJ7GJ.js';
6
- import { returnFocus } from './chunk-NUZHC6MM.js';
7
6
  import { IconButton } from './chunk-UAUP6XGK.js';
7
+ import { returnFocus } from './chunk-NUZHC6MM.js';
8
8
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
9
9
  import { cx } from './chunk-ODEQTPFM.js';
10
10
  import './HitArea-QUOS6ZDJ.css';
@@ -1,7 +1,7 @@
1
1
  import { useRoving, tabStop } from './chunk-EGMQURBR.js';
2
2
  import { StatusDot } from './chunk-CYQBDZ6M.js';
3
3
  import { Count } from './chunk-MLDTLZAO.js';
4
- import { Menu } from './chunk-KNAHKQD4.js';
4
+ import { Menu } from './chunk-OQG4P5KU.js';
5
5
  import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
6
6
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
7
7
  import { cx } from './chunk-ODEQTPFM.js';
@@ -3,7 +3,7 @@ import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
3
3
  import { Popover } from './chunk-KHJIEPZV.js';
4
4
  import { KeyChip, highlightMatch } from './chunk-HBDA76EZ.js';
5
5
  import { Skeleton } from './chunk-BRLZXYPA.js';
6
- import { Input } from './chunk-6Q7RW2JJ.js';
6
+ import { Input } from './chunk-FB3TCNQP.js';
7
7
  import { announce } from './chunk-2G355KDJ.js';
8
8
  import { useMediaMatch } from './chunk-RTPQDNW3.js';
9
9
  import { focusables, isComposing } from './chunk-H5XTJ7GJ.js';
@@ -1,5 +1,5 @@
1
1
  import { diffLines, diffStat, collapseDiff, DiffSummary, DiffView } from './chunk-AOFVXE6V.js';
2
- import { SegmentedControl } from './chunk-PQDQTK64.js';
2
+ import { SegmentedControl } from './chunk-OZAMLQY7.js';
3
3
  import { EmptyState } from './chunk-PPUR46MK.js';
4
4
  import { useHeadingLevel, headingTag, nextHeadingLevel, HeadingLevelProvider } from './chunk-PQADV6P6.js';
5
5
  import { cx } from './chunk-ODEQTPFM.js';
@@ -1,11 +1,11 @@
1
1
  import { Select } from './chunk-VK45YJLH.js';
2
2
  import { SHEET_LABELS, SHEET_COLUMN_TYPES, optionHue, retypeColumn } from './chunk-LFSIKGRQ.js';
3
- import { HueSwatch } from './chunk-LE6K34SN.js';
3
+ import { HueSwatch } from './chunk-ERB7UI3P.js';
4
4
  import { NODE_HUES, NODE_HUE_NAMES } from './chunk-AYKXMIOR.js';
5
- import { Checkbox } from './chunk-GKWZTTFV.js';
5
+ import { Checkbox } from './chunk-LMQG3VPG.js';
6
6
  import { Kbd } from './chunk-ANTAQAR4.js';
7
- import { FormField, Input } from './chunk-6Q7RW2JJ.js';
8
- import { Menu } from './chunk-KNAHKQD4.js';
7
+ import { FormField, Input } from './chunk-FB3TCNQP.js';
8
+ import { Menu } from './chunk-OQG4P5KU.js';
9
9
  import { Button } from './chunk-DGXZ635L.js';
10
10
  import { IconButton } from './chunk-UAUP6XGK.js';
11
11
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
@@ -1,11 +1,11 @@
1
1
  import { Skeleton } from './chunk-BRLZXYPA.js';
2
2
  import { PrincipalAvatar } from './chunk-N2BF272H.js';
3
3
  import { RelativeTime } from './chunk-EJNJMHQG.js';
4
+ import { Card } from './chunk-4AUTALJA.js';
4
5
  import { AvatarStack } from './chunk-BT3GB7HC.js';
5
6
  import { ArtifactKindGround } from './chunk-NHLNHH4J.js';
6
- import { Card } from './chunk-4AUTALJA.js';
7
+ import { Checkbox } from './chunk-LMQG3VPG.js';
7
8
  import { ArtifactAccessGlyph } from './chunk-DOY3KC6I.js';
8
- import { Checkbox } from './chunk-GKWZTTFV.js';
9
9
  import { ArtifactKindGlyph } from './chunk-RSKW25Y5.js';
10
10
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
11
11
  import { cx } from './chunk-ODEQTPFM.js';