@crewlethq/ui 0.76.0 → 0.77.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 +14 -0
  2. package/dist/AgentHandoffPanel/index.js +4 -4
  3. package/dist/AppShell/index.js +3 -3
  4. package/dist/ArrangeList/index.js +4 -4
  5. package/dist/ArtifactBar/index.js +6 -6
  6. package/dist/ArtifactCard/index.js +4 -4
  7. package/dist/ArtifactPanel/index.js +1 -1
  8. package/dist/AvatarPicker/index.js +6 -6
  9. package/dist/Canvas/index.js +2 -2
  10. package/dist/CanvasBoard/index.js +4 -4
  11. package/dist/CanvasToolbar/index.js +3 -3
  12. package/dist/CheckGrid/CheckGrid.d.ts +62 -0
  13. package/dist/CheckGrid/index.d.ts +3 -0
  14. package/dist/CheckGrid/index.js +11 -0
  15. package/dist/CheckGrid-B3SRTHOJ.css +287 -0
  16. package/dist/Checkbox/index.js +3 -3
  17. package/dist/ChoiceCards/ChoiceCards.d.ts +20 -6
  18. package/dist/ChoiceCards/index.d.ts +1 -1
  19. package/dist/ChoiceCards/index.js +1 -1
  20. package/dist/{ChoiceCards-HAGJMK6Q.css → ChoiceCards-TVMBO3HZ.css} +60 -5
  21. package/dist/ColorField/index.js +3 -3
  22. package/dist/Combobox/index.js +3 -3
  23. package/dist/CommandPalette/index.js +3 -3
  24. package/dist/CommentThread/index.js +5 -5
  25. package/dist/Composer/index.js +3 -3
  26. package/dist/ConfirmField/index.js +3 -3
  27. package/dist/ContrastHelp/index.js +1 -1
  28. package/dist/DataGrid/index.js +4 -4
  29. package/dist/DataTable/index.js +5 -5
  30. package/dist/DataView/index.js +7 -7
  31. package/dist/DateTimePicker/index.js +2 -2
  32. package/dist/DocTabsEditor/index.js +4 -4
  33. package/dist/{Editor-BXOWAV46.js → Editor-MPNGVAWD.js} +3 -3
  34. package/dist/HuePicker/index.js +5 -5
  35. package/dist/Input/index.js +2 -2
  36. package/dist/LinkInterstitial/index.js +1 -1
  37. package/dist/ListInput/index.js +3 -3
  38. package/dist/MarkdownEditor/index.js +5 -5
  39. package/dist/Menu/index.js +2 -2
  40. package/dist/MergeConflicts/index.js +5 -5
  41. package/dist/Modal/index.js +1 -1
  42. package/dist/OrgTable/index.js +1 -1
  43. package/dist/PresenterView/index.js +1 -1
  44. package/dist/PrincipalPicker/index.js +4 -4
  45. package/dist/ProposalCard/index.js +4 -4
  46. package/dist/RichEditor/index.js +1 -1
  47. package/dist/SegmentedControl/index.js +4 -4
  48. package/dist/SetupWizard/SetupWizard.d.ts +7 -0
  49. package/dist/SetupWizard/index.js +2 -2
  50. package/dist/{SetupWizard-2SUMQEWU.css → SetupWizard-Y2PFPBCZ.css} +27 -2
  51. package/dist/ShareDialog/index.js +1 -1
  52. package/dist/SheetColumnEditor/index.js +8 -8
  53. package/dist/SheetGrid/index.js +3 -3
  54. package/dist/SidePanel/index.js +1 -1
  55. package/dist/SlideFilmstrip/index.js +3 -3
  56. package/dist/Switcher/index.js +3 -3
  57. package/dist/Tabs/index.js +3 -3
  58. package/dist/TagsInput/index.js +2 -2
  59. package/dist/ThemeSwitcher/index.js +5 -5
  60. package/dist/TimeRangePicker/index.js +6 -6
  61. package/dist/TimeWindowPicker/index.js +3 -3
  62. package/dist/TreeCanvas/index.js +3 -3
  63. package/dist/TreeGrid/index.js +1 -1
  64. package/dist/ValueField/index.js +4 -4
  65. package/dist/VersionCompare/index.js +5 -5
  66. package/dist/{chunk-TKUAGWNR.js → chunk-2GBG7KPK.js} +1 -1
  67. package/dist/{chunk-IPBSCJIZ.js → chunk-2LIGIIE2.js} +3 -3
  68. package/dist/{chunk-5CEQ3HLH.js → chunk-3NYVPLPW.js} +1 -1
  69. package/dist/{chunk-SK5SLGZH.js → chunk-4HO3NX3B.js} +1 -1
  70. package/dist/{chunk-45M73G5A.js → chunk-4Y7PLU4I.js} +1 -1
  71. package/dist/{chunk-YQDRJZ5J.js → chunk-62GVKZJI.js} +1 -1
  72. package/dist/{chunk-RIAPCEB5.js → chunk-72Y5DBSY.js} +2 -2
  73. package/dist/{chunk-ZW5SRQ5M.js → chunk-A5HENOP2.js} +1 -1
  74. package/dist/{chunk-57AKYFML.js → chunk-A6NUAQFW.js} +1 -1
  75. package/dist/{chunk-MKFEVHSR.js → chunk-B7NX425Z.js} +16 -3
  76. package/dist/{chunk-GHQG4VZA.js → chunk-BRFIUUXX.js} +2 -2
  77. package/dist/{chunk-E35HYQMK.js → chunk-CZUIPICC.js} +1 -1
  78. package/dist/{chunk-DSMQTED5.js → chunk-DCAT5OAX.js} +1 -1
  79. package/dist/{chunk-HWPP22XG.js → chunk-E6ETTJWX.js} +4 -4
  80. package/dist/{chunk-ZMIVQGAB.js → chunk-ELNUZDFK.js} +4 -4
  81. package/dist/{chunk-TJIBTHWJ.js → chunk-EVOGHRFN.js} +2 -2
  82. package/dist/{chunk-6EWNMSS4.js → chunk-FRLUJAFK.js} +1 -1
  83. package/dist/{chunk-LMQG3VPG.js → chunk-GKWZTTFV.js} +1 -1
  84. package/dist/{chunk-UY3FWQWG.js → chunk-HDLUG3MA.js} +2 -2
  85. package/dist/{chunk-TPCBPGSB.js → chunk-HMOGLAXY.js} +1 -1
  86. package/dist/chunk-HUIYSNBS.js +65 -0
  87. package/dist/{chunk-2STOSJT3.js → chunk-HYGCGN37.js} +1 -1
  88. package/dist/{chunk-6THG44LI.js → chunk-KQQWGWCC.js} +1 -1
  89. package/dist/{chunk-OCGIQGYJ.js → chunk-KXYZ5XS2.js} +2 -2
  90. package/dist/{chunk-TPIMOGOZ.js → chunk-LJSQT5NJ.js} +1 -1
  91. package/dist/{chunk-HZDI2CCS.js → chunk-LXB4CABM.js} +2 -2
  92. package/dist/{chunk-LCZULGMB.js → chunk-MKWURHR5.js} +1 -1
  93. package/dist/{chunk-FQI62PIZ.js → chunk-ODAZIKZF.js} +2 -2
  94. package/dist/{chunk-I3G5FJ54.js → chunk-P34YWECQ.js} +1 -1
  95. package/dist/{chunk-X5FKORDM.js → chunk-PD2GOJ5V.js} +25 -7
  96. package/dist/{chunk-OOLMTUCO.js → chunk-SOERZJVJ.js} +1 -1
  97. package/dist/{chunk-KL6A7JGH.js → chunk-SQ7GYC4K.js} +1 -1
  98. package/dist/{chunk-T24HBEU6.js → chunk-TL74TBDR.js} +1 -1
  99. package/dist/{chunk-ADGNISEI.js → chunk-U4ICCJJP.js} +2 -2
  100. package/dist/{chunk-IQMWMT4V.js → chunk-UEEWK7SO.js} +2 -2
  101. package/dist/{chunk-JQEXAH7G.js → chunk-VDIKDCNE.js} +1 -1
  102. package/dist/{chunk-MP7DGKB6.js → chunk-VJ6SSEMG.js} +1 -1
  103. package/dist/{chunk-CFTBESST.js → chunk-WM3U4ARK.js} +1 -1
  104. package/dist/{chunk-BKXUZCZX.js → chunk-WOTGQVHZ.js} +1 -1
  105. package/dist/{chunk-ZKLEAK7M.js → chunk-XL2RXAPT.js} +1 -1
  106. package/dist/{chunk-PMBJMNBX.js → chunk-YLYIVN72.js} +1 -1
  107. package/dist/generated/index.d.ts +1 -0
  108. package/dist/generated/index.js +79 -78
  109. package/dist/index.js +79 -78
  110. package/dist/styles.css +379 -9
  111. package/package.json +3 -3
  112. package/dist/{chunk-FB3TCNQP.js → chunk-6Q7RW2JJ.js} +1 -1
  113. package/dist/{chunk-PCBPDMNU.js → chunk-CDFQ7MQK.js} +0 -0
  114. package/dist/{chunk-OBPINJNO.js → chunk-EMCVX5FY.js} +1 -1
  115. package/dist/{chunk-OQG4P5KU.js → chunk-KNAHKQD4.js} +1 -1
  116. package/dist/{chunk-HPI5J6AR.js → chunk-SWLVR54P.js} +1 -1
  117. package/dist/{chunk-WK4FQPYW.js → chunk-TD6LHL7M.js} +1 -1
@@ -0,0 +1,65 @@
1
+ import { Checkbox } from './chunk-GKWZTTFV.js';
2
+ import { cx } from './chunk-ODEQTPFM.js';
3
+ import './CheckGrid-B3SRTHOJ.css';
4
+ import { useId } from 'react';
5
+ import { jsxs, jsx } from 'react/jsx-runtime';
6
+
7
+ var MOST_COLUMNS = 6;
8
+ function CheckGrid({ label, rows, columns, stateOf, onChange, className }) {
9
+ const base = useId();
10
+ const rowId = (r) => `${base}-row-${r}`;
11
+ const noteId = (c) => `${base}-note-${c}`;
12
+ const layout = columns.length > MOST_COLUMNS ? "many" : String(columns.length);
13
+ const notes = columns.flatMap((column, c) => column.disabledReason ? [{ column, c }] : []);
14
+ return /* @__PURE__ */ jsxs(
15
+ "div",
16
+ {
17
+ className: cx("crewlet-check-grid", `crewlet-check-grid--${layout}`, className),
18
+ style: { ["--crewlet-check-grid-columns"]: columns.length },
19
+ children: [
20
+ /* @__PURE__ */ jsxs("div", { role: "table", "aria-label": label, className: "crewlet-check-grid__table", children: [
21
+ /* @__PURE__ */ jsxs("div", { role: "row", className: "crewlet-check-grid__head", children: [
22
+ /* @__PURE__ */ jsx("span", { role: "cell", className: "crewlet-check-grid__corner" }),
23
+ columns.map((column) => /* @__PURE__ */ jsxs("span", { role: "columnheader", className: "crewlet-check-grid__column", children: [
24
+ column.media ? /* @__PURE__ */ jsx("span", { className: "crewlet-check-grid__media", children: column.media }) : null,
25
+ column.label
26
+ ] }, column.value))
27
+ ] }),
28
+ rows.map((row, r) => /* @__PURE__ */ jsxs("div", { role: "row", className: "crewlet-check-grid__row", children: [
29
+ /* @__PURE__ */ jsxs("span", { role: "rowheader", className: "crewlet-check-grid__name", children: [
30
+ row.media ? /* @__PURE__ */ jsx("span", { className: "crewlet-check-grid__media", children: row.media }) : null,
31
+ /* @__PURE__ */ jsx("span", { id: rowId(r), children: row.label })
32
+ ] }),
33
+ columns.map((column, c) => {
34
+ const state = stateOf(row.value, column.value);
35
+ const refused = column.disabledReason !== void 0 && state === "unchecked";
36
+ const box = `${base}-box-${r}-${c}`;
37
+ return /* @__PURE__ */ jsx("span", { role: "cell", className: "crewlet-check-grid__cell", children: /* @__PURE__ */ jsx(
38
+ Checkbox,
39
+ {
40
+ id: box,
41
+ size: "sm",
42
+ className: "crewlet-check-grid__box",
43
+ label: column.label,
44
+ "aria-labelledby": `${rowId(r)} ${box}-label`,
45
+ "aria-describedby": refused ? noteId(c) : void 0,
46
+ checked: state === "checked",
47
+ indeterminate: state === "mixed",
48
+ disabled: refused,
49
+ onCheckedChange: (next) => onChange(row.value, column.value, next)
50
+ }
51
+ ) }, column.value);
52
+ })
53
+ ] }, row.value))
54
+ ] }),
55
+ notes.length > 0 ? /* @__PURE__ */ jsx("ul", { className: "crewlet-check-grid__notes", children: notes.map(({ column, c }) => /* @__PURE__ */ jsxs("li", { id: noteId(c), children: [
56
+ column.label,
57
+ ": ",
58
+ column.disabledReason
59
+ ] }, column.value)) }) : null
60
+ ]
61
+ }
62
+ );
63
+ }
64
+
65
+ export { CheckGrid };
@@ -9,7 +9,7 @@ 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-OQG4P5KU.js';
12
+ import { Menu } from './chunk-KNAHKQD4.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,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-OQG4P5KU.js';
4
+ import { Menu } from './chunk-KNAHKQD4.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';
@@ -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-BKXUZCZX.js';
4
- import { FormField, Input } from './chunk-FB3TCNQP.js';
3
+ import { SegmentedControl } from './chunk-WOTGQVHZ.js';
4
+ import { FormField, Input } from './chunk-6Q7RW2JJ.js';
5
5
  import { Button } from './chunk-DGXZ635L.js';
6
6
  import { useState } from 'react';
7
7
  import { ClockGlyph } from '@crewlethq/icons/glyphs';
@@ -1,5 +1,5 @@
1
1
  import { InlineCode } from './chunk-PLL7ZJHY.js';
2
- import { FormField, Input } from './chunk-FB3TCNQP.js';
2
+ import { FormField, Input } from './chunk-6Q7RW2JJ.js';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
 
5
5
  function confirmMatches(typed, phrase) {
@@ -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-LMQG3VPG.js';
6
- import { Menu } from './chunk-OQG4P5KU.js';
5
+ import { Checkbox } from './chunk-GKWZTTFV.js';
6
+ import { Menu } from './chunk-KNAHKQD4.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';
@@ -1,4 +1,4 @@
1
- import { Checkbox } from './chunk-LMQG3VPG.js';
1
+ import { Checkbox } from './chunk-GKWZTTFV.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,6 +1,6 @@
1
1
  import { Note } from './chunk-5SZGKSGL.js';
2
- import { CanvasToolbar, toolForKey } from './chunk-KL6A7JGH.js';
3
- import { IDENTITY_VIEW, Canvas } from './chunk-OBPINJNO.js';
2
+ import { CanvasToolbar, toolForKey } from './chunk-SQ7GYC4K.js';
3
+ import { IDENTITY_VIEW, Canvas } from './chunk-EMCVX5FY.js';
4
4
  import { IconButton } from './chunk-UAUP6XGK.js';
5
5
  import { cx } from './chunk-ODEQTPFM.js';
6
6
  import './CanvasBoard-U6LR5F6H.css';
@@ -1,4 +1,4 @@
1
- import { SegmentedControl } from './chunk-BKXUZCZX.js';
1
+ import { SegmentedControl } from './chunk-WOTGQVHZ.js';
2
2
  import { Button } from './chunk-DGXZ635L.js';
3
3
  import { cx } from './chunk-ODEQTPFM.js';
4
4
  import './MergeConflicts-HCXPRQVR.css';
@@ -1,17 +1,18 @@
1
- import { Stepper } from './chunk-RJWO2PC5.js';
2
1
  import { PageHeader } from './chunk-FPDIHEM4.js';
2
+ import { Stepper } from './chunk-RJWO2PC5.js';
3
3
  import { Disclosure } from './chunk-222VILSP.js';
4
4
  import { useHeadingLevel, nextHeadingLevel, headingTag, HeadingLevelProvider } from './chunk-PQADV6P6.js';
5
5
  import { useMediaMatch } from './chunk-RTPQDNW3.js';
6
6
  import { cx } from './chunk-ODEQTPFM.js';
7
- import './SetupWizard-2SUMQEWU.css';
7
+ import './SetupWizard-Y2PFPBCZ.css';
8
8
  import { useId, useRef, useState, useEffect, useCallback, createElement } from 'react';
9
9
  import { breakpoint } from '@crewlethq/tokens';
10
10
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
11
11
 
12
12
  var LABELS = {
13
13
  progress: (position, total) => `Step ${position} of ${total}`,
14
- asideToggle: "Preview"
14
+ asideToggle: "Preview",
15
+ stepsRow: "All steps, scrolls sideways"
15
16
  };
16
17
  var PHONE = `(width < ${breakpoint.phone})`;
17
18
  var STILL_ROW = { overflows: false, left: false, right: false };
@@ -24,6 +25,15 @@ function stepRowOf(scroller) {
24
25
  const right = Math.max(...boxes.map((r) => r.right)) > box.right + 0.5;
25
26
  return { overflows: scroller.scrollWidth > scroller.clientWidth + 0.5 || left || right, left, right };
26
27
  }
28
+ function clearOfFade(scroller, step) {
29
+ const fade = Number.parseFloat(getComputedStyle(scroller).scrollPaddingInlineStart) || 0;
30
+ const box = scroller.getBoundingClientRect();
31
+ const drawn = step.getBoundingClientRect();
32
+ const pastRight = drawn.right - (box.right - fade);
33
+ const pastLeft = box.left + fade - drawn.left;
34
+ if (pastRight > 0) scroller.scrollLeft += pastRight;
35
+ else if (pastLeft > 0) scroller.scrollLeft -= pastLeft;
36
+ }
27
37
  function SetupWizard({
28
38
  title,
29
39
  headingLevel,
@@ -147,8 +157,10 @@ function SetupWizard({
147
157
  phone ? (
148
158
  // A ROW THAT OVERFLOWS IS A SCROLLER THE KEYBOARD CAN REACH: it
149
159
  // takes focus and a name only while it hides steps, since a pill
150
- // that only labels its step takes no focus of its own.
151
- /* @__PURE__ */ jsx(
160
+ // that only labels its step takes no focus of its own. Its focus
161
+ // ring is drawn by the frame around it, which the edge fade does
162
+ // not reach (SetupWizard.css).
163
+ /* @__PURE__ */ jsx("div", { className: "crewlet-setup-wizard__steps-frame", children: /* @__PURE__ */ jsx(
152
164
  "div",
153
165
  {
154
166
  ref: stepsRef,
@@ -156,10 +168,16 @@ function SetupWizard({
156
168
  "data-fade-left": row.left ? "" : void 0,
157
169
  "data-fade-right": row.right ? "" : void 0,
158
170
  onScroll: measure,
159
- ...row.overflows ? { tabIndex: 0, role: "group", "aria-label": stepsLabel } : {},
171
+ onFocus: (event) => {
172
+ const step2 = event.target.closest("li");
173
+ if (event.target === event.currentTarget || !step2 || !event.currentTarget.contains(step2)) return;
174
+ clearOfFade(event.currentTarget, step2);
175
+ measure();
176
+ },
177
+ ...row.overflows ? { tabIndex: 0, role: "group", "aria-label": text.stepsRow } : {},
160
178
  children: stepper
161
179
  }
162
- )
180
+ ) })
163
181
  ) : stepper
164
182
  ] }),
165
183
  /* @__PURE__ */ jsxs("section", { className: "crewlet-setup-wizard__content", "aria-labelledby": headingId, children: [
@@ -1,5 +1,5 @@
1
1
  import { diffLines, diffStat, collapseDiff, DiffSummary, DiffView } from './chunk-AOFVXE6V.js';
2
- import { SegmentedControl } from './chunk-BKXUZCZX.js';
2
+ import { SegmentedControl } from './chunk-WOTGQVHZ.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,5 +1,5 @@
1
1
  import { Toolbar } from './chunk-NR4CPM4T.js';
2
- import { ShortcutTip } from './chunk-OBPINJNO.js';
2
+ import { ShortcutTip } from './chunk-EMCVX5FY.js';
3
3
  import { IconButton } from './chunk-UAUP6XGK.js';
4
4
  import { cx } from './chunk-ODEQTPFM.js';
5
5
  import './CanvasToolbar-EM5EVZED.css';
@@ -1,5 +1,5 @@
1
1
  import { normalizeHex, parseColourInput } from './chunk-7W3LYIOC.js';
2
- import { FormField, Input, InputAffix } from './chunk-FB3TCNQP.js';
2
+ import { FormField, Input, InputAffix } from './chunk-6Q7RW2JJ.js';
3
3
  import { cx } from './chunk-ODEQTPFM.js';
4
4
  import './ColorField-2OIOWT3Z.css';
5
5
  import { useId, useState } from 'react';
@@ -1,7 +1,7 @@
1
+ import { Document } from './chunk-BXCL6P5Z.js';
1
2
  import { PrincipalAvatar } from './chunk-N2BF272H.js';
2
3
  import { toInstant, RelativeTime, formatExact, toISO } from './chunk-EJNJMHQG.js';
3
- import { Document } from './chunk-BXCL6P5Z.js';
4
- import { Composer } from './chunk-E35HYQMK.js';
4
+ import { Composer } from './chunk-CZUIPICC.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,6 +1,6 @@
1
1
  import { Toolbar } from './chunk-NR4CPM4T.js';
2
- import { SegmentedControl } from './chunk-BKXUZCZX.js';
3
- import { tabId } from './chunk-6THG44LI.js';
2
+ import { SegmentedControl } from './chunk-WOTGQVHZ.js';
3
+ import { tabId } from './chunk-KQQWGWCC.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-OBPINJNO.js';
2
+ import { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, Canvas } from './chunk-EMCVX5FY.js';
3
3
  import { focusables } from './chunk-H5XTJ7GJ.js';
4
4
  import { cx } from './chunk-ODEQTPFM.js';
5
5
  import './TreeCanvas-5FPK4CII.css';
@@ -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-BXOWAV46.js').then(
12
+ loading ??= import('./Editor-MPNGVAWD.js').then(
13
13
  (module) => {
14
14
  engine = module.Editor;
15
15
  return engine;
@@ -1,4 +1,4 @@
1
- import { Combobox } from './chunk-6EWNMSS4.js';
1
+ import { Combobox } from './chunk-FRLUJAFK.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,4 +1,4 @@
1
- import { tabId } from './chunk-6THG44LI.js';
1
+ import { tabId } from './chunk-KQQWGWCC.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';
@@ -4,7 +4,7 @@ import { RelativeTime } from './chunk-EJNJMHQG.js';
4
4
  import { Card } from './chunk-4AUTALJA.js';
5
5
  import { AvatarStack } from './chunk-BT3GB7HC.js';
6
6
  import { ArtifactKindGround } from './chunk-NHLNHH4J.js';
7
- import { Checkbox } from './chunk-LMQG3VPG.js';
7
+ import { Checkbox } from './chunk-GKWZTTFV.js';
8
8
  import { ArtifactAccessGlyph } from './chunk-DOY3KC6I.js';
9
9
  import { ArtifactKindGlyph } from './chunk-RSKW25Y5.js';
10
10
  import { VisuallyHidden } from './chunk-UT6CW3C7.js';
@@ -1,5 +1,5 @@
1
1
  import { useThemePreference, useDensityPreference } from './chunk-Z24ZUSTX.js';
2
- import { SegmentedControl } from './chunk-BKXUZCZX.js';
2
+ import { SegmentedControl } from './chunk-WOTGQVHZ.js';
3
3
  import { SunGlyph, MonitorGlyph, MoonGlyph } from '@crewlethq/icons/glyphs';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
 
@@ -45,6 +45,7 @@ export * from '../CharacterCount/index.js';
45
45
  export * from '../CharacterPicker/index.js';
46
46
  export * from '../Charts/index.js';
47
47
  export * from '../ChatThread/index.js';
48
+ export * from '../CheckGrid/index.js';
48
49
  export * from '../Checkbox/index.js';
49
50
  export * from '../ChoiceButtons/index.js';
50
51
  export * from '../ChoiceCards/index.js';