@crewlethq/ui 0.35.1 → 0.37.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.
- package/README.md +90 -1
- package/dist/AgentHandoffPanel/AgentHandoffPanel.d.ts +99 -0
- package/dist/AgentHandoffPanel/index.d.ts +3 -0
- package/dist/AgentHandoffPanel/index.js +16 -0
- package/dist/AgentHandoffPanel-JWSW62GU.css +151 -0
- package/dist/ArrangeFrame/index.js +1 -1
- package/dist/{ArrangeFrame-3PLZAG22.css → ArrangeFrame-QXOQTFAH.css} +22 -5
- package/dist/ArrangeList/index.js +4 -3
- package/dist/ArtifactAccess/ArtifactAccess.d.ts +40 -0
- package/dist/ArtifactAccess/index.d.ts +3 -0
- package/dist/ArtifactAccess/index.js +2 -0
- package/dist/ArtifactAccess-Y53ZTRFS.css +31 -0
- package/dist/ArtifactBar/ArtifactBar.d.ts +2 -1
- package/dist/ArtifactBar/index.js +2 -2
- package/dist/{ArtifactBar-HV5AT4RG.css → ArtifactBar-FWPBBKQ5.css} +8 -0
- package/dist/ArtifactCard/ArtifactCard.d.ts +1 -6
- package/dist/ArtifactCard/index.d.ts +2 -1
- package/dist/ArtifactCard/index.js +4 -3
- package/dist/ArtifactCover/index.js +3 -2
- package/dist/ArtifactKindIllustration/ArtifactKindIllustration.d.ts +16 -7
- package/dist/ArtifactKindIllustration/index.js +1 -1
- package/dist/{ArtifactKindIllustration-5FPRJQ3P.css → ArtifactKindIllustration-KLFL7KBG.css} +37 -1
- package/dist/ArtifactMakeRow/ArtifactMakeRow.d.ts +39 -0
- package/dist/ArtifactMakeRow/index.d.ts +4 -0
- package/dist/ArtifactMakeRow/index.js +4 -0
- package/dist/ArtifactMakeRow-XBA2MPSY.css +167 -0
- package/dist/ArtifactNameCell/ArtifactNameCell.d.ts +37 -0
- package/dist/ArtifactNameCell/index.d.ts +4 -0
- package/dist/ArtifactNameCell/index.js +4 -0
- package/dist/ArtifactNameCell-RTVP4LO4.css +104 -0
- package/dist/ArtifactPanel/ArtifactPanel.d.ts +8 -1
- package/dist/ArtifactPanel/index.js +1 -1
- package/dist/{ArtifactPanel-HW3SU7CP.css → ArtifactPanel-KKUUIPEU.css} +9 -0
- package/dist/AuthLayout/index.js +2 -2
- package/dist/AvatarPicker/index.js +2 -2
- package/dist/Canvas/index.js +2 -2
- package/dist/CanvasBoard/CanvasBoard.d.ts +27 -13
- package/dist/CanvasBoard/index.d.ts +1 -1
- package/dist/CanvasBoard/index.js +4 -4
- package/dist/{CanvasBoard-5NNSKY6A.css → CanvasBoard-TS4P356F.css} +13 -6
- package/dist/CanvasToolbar/index.js +3 -3
- package/dist/Card/index.js +1 -1
- package/dist/{Card-KJOYHDTJ.css → Card-QOVASQNU.css} +17 -12
- package/dist/Checkbox/index.js +3 -2
- package/dist/ChoiceButtons/index.js +1 -1
- package/dist/{ChoiceButtons-DJ5EOGUA.css → ChoiceButtons-FLIFXFFS.css} +10 -0
- package/dist/ChoiceList/index.js +1 -1
- package/dist/{ChoiceList-RBL7FNQL.css → ChoiceList-EA2W6MOS.css} +36 -5
- package/dist/Combobox/index.js +3 -2
- package/dist/CommandPalette/index.js +3 -2
- package/dist/CommentThread/index.js +6 -5
- package/dist/Composer/Composer.d.ts +4 -0
- package/dist/Composer/index.js +3 -2
- package/dist/{Composer-ABGJIAIR.css → Composer-PXITWNEK.css} +26 -15
- package/dist/ConfirmField/index.js +3 -2
- package/dist/DataTable/index.js +4 -3
- package/dist/DataView/index.js +7 -6
- package/dist/DatasetSource/DatasetSource.d.ts +4 -0
- package/dist/DatasetSource/index.js +1 -1
- package/dist/{DatasetSource-XFPZBRXL.css → DatasetSource-SMGX4PS5.css} +38 -4
- package/dist/DateTimePicker/index.js +2 -1
- package/dist/{DateTimePicker-HG2KQXQ6.css → DateTimePicker-2IVTKFV2.css} +15 -2
- package/dist/DocTabsEditor/index.js +3 -2
- package/dist/Document/Document.d.ts +15 -3
- package/dist/Document/index.js +2 -1
- package/dist/{Document-JUGCSQ4L.css → Document-YFWTWXJP.css} +34 -2
- package/dist/{Editor-BVQHBF7L.js → Editor-HORWMUM3.js} +2 -1
- package/dist/FilterChip/index.js +1 -1
- package/dist/{FilterChip-EZ4QMW4E.css → FilterChip-VL33P3JL.css} +5 -1
- package/dist/Input/index.js +2 -1
- package/dist/{Input-GBZSFXLU.css → Input-ABGOFENS.css} +46 -10
- package/dist/LayersList/index.js +1 -1
- package/dist/{LayersList-NQZEIPZB.css → LayersList-TBNF4XGL.css} +16 -3
- package/dist/LinkInterstitial/index.js +2 -2
- package/dist/ListInput/index.js +3 -2
- package/dist/LivePreview/LivePreview.d.ts +120 -28
- package/dist/LivePreview/budget.d.ts +64 -20
- package/dist/LivePreview/index.d.ts +6 -4
- package/dist/LivePreview/index.js +1 -1
- package/dist/LivePreview/stills.d.ts +57 -0
- package/dist/LivePreview-BROGKR4N.css +113 -0
- package/dist/PresenterView/index.js +2 -2
- package/dist/PrincipalPicker/index.js +4 -3
- package/dist/RichEditor/index.js +1 -1
- package/dist/Select/index.js +2 -1
- package/dist/{Select-A54YS5EP.css → Select-W3CHTZXP.css} +18 -2
- package/dist/ShareDialog/index.js +3 -2
- package/dist/SheetColumnEditor/index.js +6 -5
- package/dist/SheetGrid/index.js +3 -3
- package/dist/SlideCompare/index.js +2 -2
- package/dist/SlideFilmstrip/index.js +2 -2
- package/dist/{SlideFilmstrip-4ITZLMO4.css → SlideFilmstrip-PAT7P4OG.css} +26 -7
- package/dist/SlideGrid/index.js +2 -2
- package/dist/{SlideGrid-S4LTJ4UU.css → SlideGrid-FJA33DV4.css} +11 -1
- package/dist/SlideStage/index.js +1 -1
- package/dist/{SlideStage-S2FISF4C.css → SlideStage-ZTTEQSS2.css} +4 -2
- package/dist/SourceEditor/index.js +2 -1
- package/dist/{SourceEditor-G2C3STPX.css → SourceEditor-QAYE2JS6.css} +19 -12
- package/dist/Switcher/index.js +4 -3
- package/dist/TagsInput/index.js +2 -1
- package/dist/{TagsInput-XMXTI5Q4.css → TagsInput-7EGBBXHS.css} +7 -1
- package/dist/ThemeGallery/index.js +1 -1
- package/dist/{ThemeGallery-HSUKBDWY.css → ThemeGallery-X35Y25EX.css} +26 -5
- package/dist/TimeWindowPicker/index.js +4 -3
- package/dist/{TimeWindowPicker-T763GLXH.css → TimeWindowPicker-DEFDV77Z.css} +15 -2
- package/dist/TreeCanvas/index.js +3 -3
- package/dist/VersionTimeline/index.js +2 -2
- package/dist/{chunk-V43UVX4H.js → chunk-27GD7LVR.js} +1 -1
- package/dist/{chunk-6JVRY5DQ.js → chunk-44WJLPQS.js} +2 -2
- package/dist/{chunk-ONL54WMH.js → chunk-46RL3E54.js} +1 -1
- package/dist/{chunk-UHJQDFKQ.js → chunk-4ZJLOKSS.js} +1 -1
- package/dist/{chunk-ACA27MZH.js → chunk-5QXRI35B.js} +1 -1
- package/dist/{chunk-LL5AFXU7.js → chunk-5RT5O4JR.js} +1 -1
- package/dist/{chunk-GMU6SQ6B.js → chunk-66NGUD5S.js} +2 -2
- package/dist/{chunk-3Y56GQPM.js → chunk-7VAUGG6B.js} +1 -1
- package/dist/{chunk-2CQLNML5.js → chunk-AOLCZDZ6.js} +3 -1
- package/dist/{chunk-NKZCJRKO.js → chunk-APDKUGSH.js} +2 -2
- package/dist/chunk-BGLKLXL3.js +29 -0
- package/dist/{chunk-Z6VW6CXX.js → chunk-BIQDJOJZ.js} +1 -1
- package/dist/{chunk-YSJC7AZC.js → chunk-BWOIUOO3.js} +1 -1
- package/dist/{chunk-PI7HKLIT.js → chunk-D7GNNID2.js} +3 -1
- package/dist/chunk-EAKC24BW.js +51 -0
- package/dist/{chunk-CCLNGVCM.js → chunk-EARDAJQY.js} +1 -1
- package/dist/chunk-EOQFPZEE.js +138 -0
- package/dist/{chunk-THROPJZC.js → chunk-F23N4MVU.js} +1 -1
- package/dist/{chunk-J6YZ4IYV.js → chunk-FG4O64DV.js} +3 -3
- package/dist/{chunk-E35CMI5D.js → chunk-FHHYXZSP.js} +31 -13
- package/dist/{chunk-AYB6AYNH.js → chunk-GMLAKNFY.js} +1 -1
- package/dist/{chunk-ZB5O3ELS.js → chunk-GRYZ5EP3.js} +4 -2
- package/dist/{chunk-QFNWMWWY.js → chunk-GS7ZTHPF.js} +4 -4
- package/dist/{chunk-ILAEBSLJ.js → chunk-H5NOLRGH.js} +2 -2
- package/dist/{chunk-W3UVOZKL.js → chunk-IPAU6FLH.js} +6 -2
- package/dist/{chunk-6QFAK2WV.js → chunk-IUYUS2SO.js} +4 -1
- package/dist/{chunk-22CQQDFW.js → chunk-JML75PGJ.js} +1 -1
- package/dist/{chunk-AXBRWRGV.js → chunk-JQLS3MZB.js} +1 -1
- package/dist/{chunk-FGYET26P.js → chunk-KJW2AS57.js} +1 -1
- package/dist/{chunk-QIXMNOBD.js → chunk-KYZMN6I6.js} +2 -2
- package/dist/{chunk-73A7D5CE.js → chunk-L4WZSVMT.js} +3 -1
- package/dist/{chunk-ULPL26BU.js → chunk-N5SKHIAP.js} +1 -1
- package/dist/{chunk-LV4APO72.js → chunk-NQGPD6NX.js} +1 -1
- package/dist/{chunk-7UYONN6K.js → chunk-OHA6WSAG.js} +6 -11
- package/dist/chunk-P5VGSVWG.js +39 -0
- package/dist/chunk-P6WFZDKS.js +111 -0
- package/dist/{chunk-CPEPST4S.js → chunk-PJIPUEJ3.js} +1 -1
- package/dist/{chunk-QS4ZGTEU.js → chunk-PPFX6GRK.js} +1 -1
- package/dist/{chunk-7DZDSSJS.js → chunk-RH2NCQBZ.js} +5 -4
- package/dist/{chunk-3VD3G3IL.js → chunk-T5RQGI6O.js} +1 -1
- package/dist/{chunk-F2KY4RLI.js → chunk-TVRBQMIX.js} +5 -3
- package/dist/{chunk-W7QBBKUE.js → chunk-UBZDYOCA.js} +7 -3
- package/dist/{chunk-QEFHYUCY.js → chunk-UWGUKMBK.js} +1 -1
- package/dist/{chunk-5YLON2PW.js → chunk-UYZZV4DZ.js} +1 -1
- package/dist/{chunk-BQ7AKL2N.js → chunk-VKKUGZ3G.js} +3 -1
- package/dist/{chunk-DEJHAOC5.js → chunk-WMXAX6VA.js} +1 -1
- package/dist/{chunk-VDPJGP4Q.js → chunk-WX2NIG4G.js} +1 -1
- package/dist/chunk-WYKWXRJ4.js +456 -0
- package/dist/{chunk-ZU3DUXD2.js → chunk-WZGYIVYH.js} +1 -1
- package/dist/{chunk-HUVG2FFT.js → chunk-Y5BD4MTE.js} +4 -2
- package/dist/chunk-YSGLEHND.js +56 -0
- package/dist/generated/index.d.ts +4 -0
- package/dist/generated/index.js +105 -100
- package/dist/index.js +105 -100
- package/dist/styles.css +1036 -163
- package/dist/utils/focusModality.d.ts +41 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +2 -1
- package/package.json +3 -3
- package/dist/LivePreview-SRO7KHO4.css +0 -65
- package/dist/chunk-KF6YGL4B.js +0 -160
- package/dist/chunk-TYKQ33CL.js +0 -35
- package/dist/{chunk-3P4Y5RX6.js → chunk-4BYHAOHH.js} +1 -1
- package/dist/{chunk-KD2IRYCT.js → chunk-5WDXPHEW.js} +1 -1
- package/dist/{chunk-OSFA5ROT.js → chunk-FEJANUZK.js} +0 -0
- package/dist/{chunk-FJJHD73S.js → chunk-GYBDPCRC.js} +1 -1
- package/dist/{chunk-VHZ3AXJD.js → chunk-NQCY44B3.js} +1 -1
- package/dist/{chunk-3WCNHYXE.js → chunk-PNNYVN52.js} +0 -0
- package/dist/{chunk-FF5OZV77.js → chunk-W3HYWD63.js} +2 -2
|
@@ -47,10 +47,17 @@
|
|
|
47
47
|
*/
|
|
48
48
|
.crewlet-time-window:focus-visible,
|
|
49
49
|
.crewlet-time-window.is-open {
|
|
50
|
-
outline:
|
|
50
|
+
outline: 2px solid var(--color-focus);
|
|
51
51
|
outline-offset: -1px;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
/* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
|
|
55
|
+
:root[data-crewlet-focus='pointer'] .crewlet-time-window:focus-visible,
|
|
56
|
+
:root[data-crewlet-focus='pointer'] .crewlet-time-window.is-open {
|
|
57
|
+
outline-width: 1px;
|
|
58
|
+
outline-color: var(--color-border-selected);
|
|
59
|
+
}
|
|
60
|
+
|
|
54
61
|
.crewlet-time-window.is-disabled,
|
|
55
62
|
.crewlet-time-window:disabled {
|
|
56
63
|
opacity: 0.55;
|
|
@@ -318,10 +325,16 @@ svg.crewlet-time-window__tick {
|
|
|
318
325
|
* own boundary (see Input.css), keyed on the box's own input.
|
|
319
326
|
*/
|
|
320
327
|
.crewlet-time-window__masked:has(.crewlet-time-window__masked-input:focus-visible) {
|
|
321
|
-
outline:
|
|
328
|
+
outline: 2px solid var(--color-focus);
|
|
322
329
|
outline-offset: -1px;
|
|
323
330
|
}
|
|
324
331
|
|
|
332
|
+
/* Narrowed and tinted for a pointer, as the text box's ring is. See Input.css. */
|
|
333
|
+
:root[data-crewlet-focus='pointer'] .crewlet-time-window__masked:has(.crewlet-time-window__masked-input:focus-visible) {
|
|
334
|
+
outline-width: 1px;
|
|
335
|
+
outline-color: var(--color-border-selected);
|
|
336
|
+
}
|
|
337
|
+
|
|
325
338
|
.crewlet-time-window__masked-input {
|
|
326
339
|
min-width: 0;
|
|
327
340
|
/* The `size` attribute the component sets is what holds the width open in
|
package/dist/TreeCanvas/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { TreeCanvas } from '../chunk-
|
|
1
|
+
export { TreeCanvas } from '../chunk-4ZJLOKSS.js';
|
|
2
2
|
import '../chunk-MY374UUD.js';
|
|
3
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-4BYHAOHH.js';
|
|
4
4
|
import '../chunk-LM3ISVJA.js';
|
|
5
|
-
import '../chunk-SMBKXWML.js';
|
|
6
5
|
import '../chunk-6ZJ3N7QI.js';
|
|
6
|
+
import '../chunk-SMBKXWML.js';
|
|
7
7
|
import '../chunk-OMV5W53A.js';
|
|
8
8
|
import '../chunk-R25RGPUB.js';
|
|
9
9
|
import '../chunk-OG6CL3EB.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { VersionTimeline } from '../chunk-
|
|
2
|
-
import '../chunk-AUQPBL4O.js';
|
|
1
|
+
export { VersionTimeline } from '../chunk-NQCY44B3.js';
|
|
3
2
|
import '../chunk-CI3VPIJN.js';
|
|
4
3
|
import '../chunk-3CZ7XAVY.js';
|
|
5
4
|
import '../chunk-EUCC37WY.js';
|
|
6
5
|
import '../chunk-5AQBPHZD.js';
|
|
7
6
|
import '../chunk-PZKHBB7D.js';
|
|
7
|
+
import '../chunk-AUQPBL4O.js';
|
|
8
8
|
import '../chunk-OG6CL3EB.js';
|
|
9
9
|
import '../chunk-BZFWDIV6.js';
|
|
10
10
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Switch } from './chunk-A722MUNR.js';
|
|
2
2
|
import { useReorder } from './chunk-XJ2QEBMM.js';
|
|
3
|
-
import { Checkbox } from './chunk-
|
|
3
|
+
import { Checkbox } from './chunk-PJIPUEJ3.js';
|
|
4
4
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
5
5
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
6
6
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Document } from './chunk-P6WFZDKS.js';
|
|
2
2
|
import { PrincipalAvatar } from './chunk-CI3VPIJN.js';
|
|
3
3
|
import { toInstant, RelativeTime, formatExact, toISO } from './chunk-3CZ7XAVY.js';
|
|
4
|
-
import {
|
|
4
|
+
import { Composer } from './chunk-RH2NCQBZ.js';
|
|
5
5
|
import { Count } from './chunk-BHHIIK3M.js';
|
|
6
6
|
import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
|
|
7
7
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
@@ -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-
|
|
2
|
+
import { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, Canvas } from './chunk-4BYHAOHH.js';
|
|
3
3
|
import { focusables } from './chunk-R25RGPUB.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
5
|
import './TreeCanvas-L2XYONWL.css';
|
|
@@ -2,7 +2,7 @@ import { CardHeaderSlotContext } from './chunk-AV2DXAEL.js';
|
|
|
2
2
|
import { Count } from './chunk-BHHIIK3M.js';
|
|
3
3
|
import { useHeadingLevel, HeadingLevelProvider, nextHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
|
-
import './Card-
|
|
5
|
+
import './Card-QOVASQNU.css';
|
|
6
6
|
import { createContext, useId, useState, isValidElement, useRef, useCallback, useMemo, Children, cloneElement, useContext, useEffect, Fragment } from 'react';
|
|
7
7
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
8
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Modal } from './chunk-XEGZHHRH.js';
|
|
2
2
|
import { useListbox, useOptionKeys } from './chunk-F73MC7EZ.js';
|
|
3
|
-
import { Popover } from './chunk-K3IJQNB7.js';
|
|
4
3
|
import { KeyChip, highlightMatch } from './chunk-FYTIJM2T.js';
|
|
5
|
-
import {
|
|
4
|
+
import { Popover } from './chunk-K3IJQNB7.js';
|
|
6
5
|
import { Skeleton } from './chunk-TEUQWOWZ.js';
|
|
6
|
+
import { Input } from './chunk-IUYUS2SO.js';
|
|
7
7
|
import { useMediaMatch } from './chunk-RTPQDNW3.js';
|
|
8
8
|
import { focusables, isComposing } from './chunk-R25RGPUB.js';
|
|
9
9
|
import { announce } from './chunk-RSAQOKH3.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Toolbar } from './chunk-PGRPNDWM.js';
|
|
2
|
-
import { ShortcutTip } from './chunk-
|
|
2
|
+
import { ShortcutTip } from './chunk-4BYHAOHH.js';
|
|
3
3
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
5
|
import './CanvasToolbar-EM5EVZED.css';
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Tag } from './chunk-GFV4LJHH.js';
|
|
2
2
|
import { useListbox } from './chunk-F73MC7EZ.js';
|
|
3
|
+
import { useFocusModality } from './chunk-YSGLEHND.js';
|
|
3
4
|
import { isComposing } from './chunk-R25RGPUB.js';
|
|
4
5
|
import { announce } from './chunk-RSAQOKH3.js';
|
|
5
6
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
6
7
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
7
|
-
import './TagsInput-
|
|
8
|
+
import './TagsInput-7EGBBXHS.css';
|
|
8
9
|
import { forwardRef, useState, useRef, useId, useImperativeHandle, useEffect, useMemo, useLayoutEffect } from 'react';
|
|
9
10
|
import { CheckGlyph, ChevronLeftGlyph, ChevronRightGlyph } from '@crewlethq/icons/glyphs';
|
|
10
11
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
@@ -40,6 +41,7 @@ var TagsInput = forwardRef(function TagsInput2({
|
|
|
40
41
|
"aria-describedby": describedBy,
|
|
41
42
|
"aria-invalid": invalid
|
|
42
43
|
}, ref) {
|
|
44
|
+
useFocusModality();
|
|
43
45
|
const [draft, setDraft] = useState("");
|
|
44
46
|
const [open, setOpen] = useState(false);
|
|
45
47
|
const field = useRef(null);
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { isApplePlatform, Kbd } from './chunk-SMBKXWML.js';
|
|
2
1
|
import { Tooltip } from './chunk-6ZJ3N7QI.js';
|
|
3
2
|
import { SegmentedControl } from './chunk-CCAXYHQS.js';
|
|
4
3
|
import { ArtifactIcon } from './chunk-ILDNJHRU.js';
|
|
4
|
+
import { isApplePlatform, Kbd } from './chunk-SMBKXWML.js';
|
|
5
5
|
import { Menu } from './chunk-BUVCV3WI.js';
|
|
6
6
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
7
7
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
8
8
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
9
9
|
import './ArtifactKinds-CVD3FCYO.css';
|
|
10
|
-
import './ArtifactBar-
|
|
10
|
+
import './ArtifactBar-FWPBBKQ5.css';
|
|
11
11
|
import { useId, useState, useRef, useEffect } from 'react';
|
|
12
12
|
import { ChevronLeftGlyph, EllipsisGlyph, ChevronDownGlyph } from '@crewlethq/icons/glyphs';
|
|
13
13
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
2
|
+
import './ArtifactAccess-Y53ZTRFS.css';
|
|
3
|
+
import { BuildingComplexGlyph, UsersGlyph, LockGlyph } from '@crewlethq/icons/glyphs';
|
|
4
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var ARTIFACT_ACCESSES = ["private", "shared", "company"];
|
|
7
|
+
var ACCESS_GLYPHS = {
|
|
8
|
+
private: LockGlyph,
|
|
9
|
+
shared: UsersGlyph,
|
|
10
|
+
company: BuildingComplexGlyph
|
|
11
|
+
};
|
|
12
|
+
var ARTIFACT_ACCESS_LABELS = {
|
|
13
|
+
private: "Private",
|
|
14
|
+
shared: "Shared",
|
|
15
|
+
company: "Company"
|
|
16
|
+
};
|
|
17
|
+
function ArtifactAccessGlyph({ access, size = "sm" }) {
|
|
18
|
+
const Drawn = ACCESS_GLYPHS[access];
|
|
19
|
+
return /* @__PURE__ */ jsx(Drawn, { size });
|
|
20
|
+
}
|
|
21
|
+
function ArtifactAccessLabel({ access, label, title, className }) {
|
|
22
|
+
const word = label ?? ARTIFACT_ACCESS_LABELS[access];
|
|
23
|
+
return /* @__PURE__ */ jsxs("span", { className: cx("crewlet-artifact-access", `crewlet-artifact-access--${access}`, className), title: title ?? word, children: [
|
|
24
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-artifact-access__glyph", "aria-hidden": "true", children: /* @__PURE__ */ jsx(ArtifactAccessGlyph, { access }) }),
|
|
25
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-artifact-access__word", children: word })
|
|
26
|
+
] });
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { ARTIFACT_ACCESSES, ARTIFACT_ACCESS_LABELS, ArtifactAccessGlyph, ArtifactAccessLabel };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FormField, Textarea, Input } from './chunk-
|
|
1
|
+
import { FormField, Textarea, Input } from './chunk-IUYUS2SO.js';
|
|
2
2
|
import { Kbd } from './chunk-SMBKXWML.js';
|
|
3
3
|
import { isComposing } from './chunk-R25RGPUB.js';
|
|
4
4
|
import { announce } from './chunk-RSAQOKH3.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
2
2
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
-
import './ChoiceButtons-
|
|
3
|
+
import './ChoiceButtons-FLIFXFFS.css';
|
|
4
4
|
import { useId } from 'react';
|
|
5
5
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { useFocusModality } from './chunk-YSGLEHND.js';
|
|
1
2
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
2
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
-
import './SourceEditor-
|
|
4
|
+
import './SourceEditor-QAYE2JS6.css';
|
|
4
5
|
import { forwardRef, useRef, useId, useState, useImperativeHandle, useLayoutEffect } from 'react';
|
|
5
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
7
|
|
|
@@ -37,6 +38,7 @@ var SourceEditor = forwardRef(
|
|
|
37
38
|
"aria-describedby": describedBy,
|
|
38
39
|
...rest
|
|
39
40
|
}, ref) {
|
|
41
|
+
useFocusModality();
|
|
40
42
|
const field = useRef(null);
|
|
41
43
|
const tabLeaves = useRef(false);
|
|
42
44
|
const keysId = useId();
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ArtifactKindGlyph } from './chunk-CE2THTQR.js';
|
|
2
|
+
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
3
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
|
+
import './ArtifactKinds-CVD3FCYO.css';
|
|
5
|
+
import './ArtifactMakeRow-XBA2MPSY.css';
|
|
6
|
+
import { useId } from 'react';
|
|
7
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
|
+
|
|
9
|
+
function ArtifactMakeRow({
|
|
10
|
+
items,
|
|
11
|
+
"aria-label": ariaLabel,
|
|
12
|
+
"aria-labelledby": ariaLabelledBy,
|
|
13
|
+
className
|
|
14
|
+
}) {
|
|
15
|
+
return /* @__PURE__ */ jsx("div", { className: cx("crewlet-make-row", className), children: /* @__PURE__ */ jsx("ul", { className: "crewlet-make-row__list", "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, children: items.map((item) => /* @__PURE__ */ jsx("li", { className: "crewlet-make-row__cell", children: /* @__PURE__ */ jsx(MakeItem, { item }) }, item.kind)) }) });
|
|
16
|
+
}
|
|
17
|
+
function MakeItem({ item }) {
|
|
18
|
+
const { kind, label, detail, href, disabledReason } = item;
|
|
19
|
+
const detailId = useId();
|
|
20
|
+
const reasonId = useId();
|
|
21
|
+
const off = disabledReason !== void 0 || href === void 0;
|
|
22
|
+
const body = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
23
|
+
/* @__PURE__ */ jsx("span", { className: cx("crewlet-make-row__mark", `crewlet-kind--${kind}`), "aria-hidden": "true", children: /* @__PURE__ */ jsx(ArtifactKindGlyph, { kind, size: "sm" }) }),
|
|
24
|
+
/* @__PURE__ */ jsxs("span", { className: "crewlet-make-row__words", children: [
|
|
25
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-make-row__name", children: label }),
|
|
26
|
+
detail ? /* @__PURE__ */ jsx("span", { id: detailId, className: "crewlet-make-row__detail", children: detail }) : null
|
|
27
|
+
] })
|
|
28
|
+
] });
|
|
29
|
+
const describedBy = detail ? detailId : void 0;
|
|
30
|
+
if (off) {
|
|
31
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
32
|
+
/* @__PURE__ */ jsx(
|
|
33
|
+
"span",
|
|
34
|
+
{
|
|
35
|
+
role: "link",
|
|
36
|
+
tabIndex: 0,
|
|
37
|
+
"aria-label": label,
|
|
38
|
+
"aria-disabled": "true",
|
|
39
|
+
"aria-describedby": disabledReason ? reasonId : describedBy,
|
|
40
|
+
title: disabledReason,
|
|
41
|
+
className: "crewlet-make-row__item crewlet-make-row__item--disabled",
|
|
42
|
+
children: body
|
|
43
|
+
}
|
|
44
|
+
),
|
|
45
|
+
disabledReason ? /* @__PURE__ */ jsx(VisuallyHidden, { id: reasonId, children: disabledReason }) : null
|
|
46
|
+
] });
|
|
47
|
+
}
|
|
48
|
+
return /* @__PURE__ */ jsx("a", { href, "aria-label": label, "aria-describedby": describedBy, className: "crewlet-make-row__item", children: body });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { ArtifactMakeRow };
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { Timeline } from './chunk-AUQPBL4O.js';
|
|
2
|
+
import { Section } from './chunk-3TFDQLW3.js';
|
|
3
|
+
import { Disclosure } from './chunk-MICH6QSJ.js';
|
|
4
|
+
import { Composer } from './chunk-RH2NCQBZ.js';
|
|
5
|
+
import { ArtifactPanel } from './chunk-Y5BD4MTE.js';
|
|
6
|
+
import { Button } from './chunk-OG6CL3EB.js';
|
|
7
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
8
|
+
import './AgentHandoffPanel-JWSW62GU.css';
|
|
9
|
+
import { useId, useRef, useEffect } from 'react';
|
|
10
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
11
|
+
|
|
12
|
+
var AGENT_HANDOFF_LABELS = {
|
|
13
|
+
title: "Ask an agent",
|
|
14
|
+
brief: "Brief",
|
|
15
|
+
starters: "Start from",
|
|
16
|
+
agent: "Who builds it",
|
|
17
|
+
carried: "Goes with it",
|
|
18
|
+
task: "The task as it is filed",
|
|
19
|
+
next: "What happens next",
|
|
20
|
+
step: "Step"
|
|
21
|
+
};
|
|
22
|
+
function AgentHandoffPanel({
|
|
23
|
+
onClose,
|
|
24
|
+
icon,
|
|
25
|
+
focusOnOpen,
|
|
26
|
+
intro,
|
|
27
|
+
brief,
|
|
28
|
+
onBriefChange,
|
|
29
|
+
briefLabel,
|
|
30
|
+
briefPlaceholder,
|
|
31
|
+
briefHelper,
|
|
32
|
+
briefMaxLength,
|
|
33
|
+
briefRef,
|
|
34
|
+
starters = [],
|
|
35
|
+
onStarter,
|
|
36
|
+
children,
|
|
37
|
+
agent,
|
|
38
|
+
carried = [],
|
|
39
|
+
task,
|
|
40
|
+
steps = [],
|
|
41
|
+
notice,
|
|
42
|
+
send,
|
|
43
|
+
labels,
|
|
44
|
+
className
|
|
45
|
+
}) {
|
|
46
|
+
const words = { ...AGENT_HANDOFF_LABELS, ...labels };
|
|
47
|
+
const briefId = useId();
|
|
48
|
+
const helperId = useId();
|
|
49
|
+
const held = send.disabledReason !== void 0 || send.busy === true;
|
|
50
|
+
const press = () => {
|
|
51
|
+
if (!held) send.onSend();
|
|
52
|
+
};
|
|
53
|
+
const body = useRef(null);
|
|
54
|
+
const sendNow = useRef(press);
|
|
55
|
+
sendNow.current = press;
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
const root = body.current;
|
|
58
|
+
if (!root) return void 0;
|
|
59
|
+
const doc = root.ownerDocument;
|
|
60
|
+
const onKeyDown = (event) => {
|
|
61
|
+
if (event.defaultPrevented || event.isComposing) return;
|
|
62
|
+
if (event.key !== "Enter" || !(event.metaKey || event.ctrlKey)) return;
|
|
63
|
+
if (!(event.target instanceof Node) || !root.contains(event.target)) return;
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
sendNow.current();
|
|
66
|
+
};
|
|
67
|
+
doc.addEventListener("keydown", onKeyDown);
|
|
68
|
+
return () => doc.removeEventListener("keydown", onKeyDown);
|
|
69
|
+
}, []);
|
|
70
|
+
return /* @__PURE__ */ jsx(
|
|
71
|
+
ArtifactPanel,
|
|
72
|
+
{
|
|
73
|
+
title: words.title,
|
|
74
|
+
icon,
|
|
75
|
+
onClose,
|
|
76
|
+
focusOnOpen,
|
|
77
|
+
className: cx("crewlet-agent-handoff", className),
|
|
78
|
+
footer: /* @__PURE__ */ jsxs("div", { className: "crewlet-agent-handoff__foot", children: [
|
|
79
|
+
send.disabledReason && !send.busy ? /* @__PURE__ */ jsx("p", { className: "crewlet-agent-handoff__reason", children: send.disabledReason }) : null,
|
|
80
|
+
/* @__PURE__ */ jsx(
|
|
81
|
+
Button,
|
|
82
|
+
{
|
|
83
|
+
className: "crewlet-agent-handoff__send",
|
|
84
|
+
variant: "primary",
|
|
85
|
+
block: true,
|
|
86
|
+
leadingIcon: send.media ? /* @__PURE__ */ jsx("span", { className: "crewlet-agent-handoff__media", "aria-hidden": true, children: send.media }) : void 0,
|
|
87
|
+
loading: send.busy,
|
|
88
|
+
disabledReason: send.busy ? void 0 : send.disabledReason,
|
|
89
|
+
onClick: press,
|
|
90
|
+
children: send.label
|
|
91
|
+
}
|
|
92
|
+
)
|
|
93
|
+
] }),
|
|
94
|
+
children: /* @__PURE__ */ jsxs("div", { ref: body, className: "crewlet-agent-handoff__body", children: [
|
|
95
|
+
intro ? /* @__PURE__ */ jsx("p", { className: "crewlet-agent-handoff__intro", children: intro }) : null,
|
|
96
|
+
/* @__PURE__ */ jsxs("div", { className: "crewlet-agent-handoff__brief", children: [
|
|
97
|
+
/* @__PURE__ */ jsx("label", { className: "crewlet-agent-handoff__label", htmlFor: briefId, children: briefLabel ?? words.brief }),
|
|
98
|
+
/* @__PURE__ */ jsx(
|
|
99
|
+
Composer,
|
|
100
|
+
{
|
|
101
|
+
ref: briefRef,
|
|
102
|
+
id: briefId,
|
|
103
|
+
label: briefLabel ?? words.brief,
|
|
104
|
+
"aria-describedby": briefHelper ? helperId : void 0,
|
|
105
|
+
value: brief,
|
|
106
|
+
onChange: onBriefChange,
|
|
107
|
+
onSubmit: press,
|
|
108
|
+
placeholder: briefPlaceholder,
|
|
109
|
+
maxLength: briefMaxLength,
|
|
110
|
+
rows: 4
|
|
111
|
+
}
|
|
112
|
+
),
|
|
113
|
+
briefHelper ? /* @__PURE__ */ jsx("p", { id: helperId, className: "crewlet-agent-handoff__helper", children: briefHelper }) : null,
|
|
114
|
+
starters.length > 0 && onStarter && brief.trim() === "" ? /* @__PURE__ */ jsx("div", { className: "crewlet-agent-handoff__starters", role: "group", "aria-label": words.starters, children: starters.map((s) => /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", onClick: () => onStarter(s.key), children: s.label }, s.key)) }) : null
|
|
115
|
+
] }),
|
|
116
|
+
children,
|
|
117
|
+
/* @__PURE__ */ jsx(Section, { title: words.agent, className: "crewlet-agent-handoff__section", children: agent }),
|
|
118
|
+
carried.length > 0 || task ? /* @__PURE__ */ jsxs(Section, { title: words.carried, className: "crewlet-agent-handoff__section", children: [
|
|
119
|
+
carried.length > 0 ? /* @__PURE__ */ jsx("ul", { className: "crewlet-agent-handoff__carried", children: carried.map((item) => /* @__PURE__ */ jsxs("li", { className: "crewlet-agent-handoff__item", children: [
|
|
120
|
+
item.icon ? /* @__PURE__ */ jsx("span", { className: "crewlet-agent-handoff__item-icon", "aria-hidden": true, children: item.icon }) : null,
|
|
121
|
+
/* @__PURE__ */ jsxs("span", { className: "crewlet-agent-handoff__item-words", children: [
|
|
122
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-agent-handoff__item-label", children: item.label }),
|
|
123
|
+
item.detail ? /* @__PURE__ */ jsx("span", { className: "crewlet-agent-handoff__item-detail", children: item.detail }) : null
|
|
124
|
+
] })
|
|
125
|
+
] }, item.key)) }) : null,
|
|
126
|
+
task ? /* @__PURE__ */ jsx(Disclosure, { title: words.task, size: "compact", headingLevel: "none", lazy: true, children: /* @__PURE__ */ jsxs("div", { className: "crewlet-agent-handoff__task", children: [
|
|
127
|
+
/* @__PURE__ */ jsx("p", { className: "crewlet-agent-handoff__task-title", children: task.title }),
|
|
128
|
+
/* @__PURE__ */ jsx("pre", { className: "crewlet-agent-handoff__task-body", children: task.body })
|
|
129
|
+
] }) }) : null
|
|
130
|
+
] }) : null,
|
|
131
|
+
steps.length > 0 ? /* @__PURE__ */ jsx(Section, { title: words.next, className: "crewlet-agent-handoff__section", children: /* @__PURE__ */ jsx(Timeline, { itemLabel: words.step, children: steps.map((step, i) => /* @__PURE__ */ jsx(Timeline.Item, { children: step }, i)) }) }) : null,
|
|
132
|
+
notice
|
|
133
|
+
] })
|
|
134
|
+
}
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export { AGENT_HANDOFF_LABELS, AgentHandoffPanel };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SlideNav } from './chunk-6VOS2GMB.js';
|
|
2
|
-
import { SlideStage, SLIDE_WIDTH, SLIDE_HEIGHT } from './chunk-
|
|
2
|
+
import { SlideStage, SLIDE_WIDTH, SLIDE_HEIGHT } from './chunk-NQGPD6NX.js';
|
|
3
3
|
import { Eyebrow } from './chunk-RK4XPHVG.js';
|
|
4
4
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Select } from './chunk-
|
|
1
|
+
import { Select } from './chunk-VKKUGZ3G.js';
|
|
2
2
|
import { SHEET_LABELS, SHEET_COLUMN_TYPES, optionHue, retypeColumn } from './chunk-LFSIKGRQ.js';
|
|
3
3
|
import { HueSwatch } from './chunk-SUXP4OBT.js';
|
|
4
4
|
import { NODE_HUES, NODE_HUE_NAMES } from './chunk-AYKXMIOR.js';
|
|
5
|
-
import { Checkbox } from './chunk-
|
|
6
|
-
import { FormField, Input } from './chunk-
|
|
5
|
+
import { Checkbox } from './chunk-PJIPUEJ3.js';
|
|
6
|
+
import { FormField, Input } from './chunk-IUYUS2SO.js';
|
|
7
7
|
import { Kbd } from './chunk-SMBKXWML.js';
|
|
8
8
|
import { Menu } from './chunk-BUVCV3WI.js';
|
|
9
9
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Note } from './chunk-5SZGKSGL.js';
|
|
2
|
-
import { CanvasToolbar, toolForKey } from './chunk-
|
|
3
|
-
import { IDENTITY_VIEW, Canvas } from './chunk-
|
|
2
|
+
import { CanvasToolbar, toolForKey } from './chunk-7VAUGG6B.js';
|
|
3
|
+
import { IDENTITY_VIEW, Canvas } from './chunk-4BYHAOHH.js';
|
|
4
4
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
6
|
-
import './CanvasBoard-
|
|
6
|
+
import './CanvasBoard-TS4P356F.css';
|
|
7
7
|
import { useState, useRef, useImperativeHandle, useCallback, useMemo, useEffect } from 'react';
|
|
8
8
|
import { MaximizeGlyph, PencilGlyph, TrashGlyph, MousePointer2Glyph, HandGlyph, FrameGlyph, TypeGlyph, StickyNoteGlyph } from '@crewlethq/icons/glyphs';
|
|
9
9
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -207,12 +207,23 @@ function useFrameGestures(zoom, minSide, maxSide, commit) {
|
|
|
207
207
|
}
|
|
208
208
|
var sameSelection = (a, b) => a === b || a !== null && b !== null && a.kind === b.kind && a.id === b.id;
|
|
209
209
|
function boardRoom(width, height) {
|
|
210
|
-
|
|
211
|
-
if (width >=
|
|
212
|
-
|
|
213
|
-
return { title, lines: 0 };
|
|
210
|
+
if (width >= PLACEHOLDER_FULL.width && height >= PLACEHOLDER_FULL.height) return { lines: 2 };
|
|
211
|
+
if (width >= PLACEHOLDER_SIZE.width && height >= PLACEHOLDER_SIZE.height) return { lines: 1 };
|
|
212
|
+
return { lines: 0 };
|
|
214
213
|
}
|
|
215
|
-
|
|
214
|
+
function boardName(title, position, room) {
|
|
215
|
+
const letters = Array.from(title).length;
|
|
216
|
+
if (room >= (Math.min(letters, BOARD_NAME_MIN_CHARS) + 1) * NAME_GLYPH_PX) {
|
|
217
|
+
return { text: title, whole: room >= letters * NAME_GLYPH_PX };
|
|
218
|
+
}
|
|
219
|
+
const number = String(position);
|
|
220
|
+
if (room >= number.length * NAME_GLYPH_PX) return { text: number, whole: false };
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
223
|
+
var BOARD_NAME_MIN_CHARS = 3;
|
|
224
|
+
var NAME_GLYPH_PX = 9;
|
|
225
|
+
var HANDLE_END = 9;
|
|
226
|
+
var OPEN_CONTROL = 30;
|
|
216
227
|
var PLACEHOLDER_SIZE = { width: 96, height: 32 };
|
|
217
228
|
var PLACEHOLDER_FULL = { width: 200, height: 64 };
|
|
218
229
|
var TYPING = "input, textarea, select, [contenteditable='true']";
|
|
@@ -412,16 +423,21 @@ function CanvasBoard({
|
|
|
412
423
|
},
|
|
413
424
|
ref: canvas,
|
|
414
425
|
children: /* @__PURE__ */ jsxs("div", { className: "crewlet-canvas-board__layer", style: zoomVar, children: [
|
|
415
|
-
drawnBoards.map((b) => {
|
|
426
|
+
drawnBoards.map((b, index) => {
|
|
416
427
|
const isLive = live.has(b.id);
|
|
417
428
|
const isActive = !editable && active === b.id && isLive;
|
|
418
429
|
const chosen = isSelected("board", b.id);
|
|
419
430
|
const room = boardRoom(b.w * view.k, b.h * view.k);
|
|
431
|
+
const name = boardName(
|
|
432
|
+
b.title,
|
|
433
|
+
index + 1,
|
|
434
|
+
b.w * view.k - (editable ? HANDLE_END : 0) - (onOpen ? OPEN_CONTROL : 0)
|
|
435
|
+
);
|
|
420
436
|
return /* @__PURE__ */ jsxs(
|
|
421
437
|
"section",
|
|
422
438
|
{
|
|
423
439
|
className: "crewlet-canvas-board__board",
|
|
424
|
-
"data-untitled": !
|
|
440
|
+
"data-untitled": !name || void 0,
|
|
425
441
|
"data-live": isLive || void 0,
|
|
426
442
|
"data-active": isActive || void 0,
|
|
427
443
|
"data-selected": chosen || void 0,
|
|
@@ -436,9 +452,10 @@ function CanvasBoard({
|
|
|
436
452
|
className: "crewlet-canvas-board__title crewlet-canvas-board__handle",
|
|
437
453
|
"aria-label": text.move(b.title),
|
|
438
454
|
"aria-pressed": chosen,
|
|
455
|
+
title: name?.whole === false ? b.title : void 0,
|
|
439
456
|
onFocus: () => setSelected({ kind: "board", id: b.id }),
|
|
440
457
|
...boardGestures.handle(b.id, "move", b),
|
|
441
|
-
children: b.title
|
|
458
|
+
children: name?.text ?? b.title
|
|
442
459
|
}
|
|
443
460
|
) : (
|
|
444
461
|
// The name selects its board, as a press on the board
|
|
@@ -449,8 +466,9 @@ function CanvasBoard({
|
|
|
449
466
|
"span",
|
|
450
467
|
{
|
|
451
468
|
className: "crewlet-canvas-board__title",
|
|
469
|
+
title: name?.whole === false ? b.title : void 0,
|
|
452
470
|
onClick: () => setSelected({ kind: "board", id: b.id }),
|
|
453
|
-
children: b.title
|
|
471
|
+
children: name?.text ?? b.title
|
|
454
472
|
}
|
|
455
473
|
)
|
|
456
474
|
),
|
|
@@ -680,4 +698,4 @@ function NoteView({
|
|
|
680
698
|
return /* @__PURE__ */ jsx("div", { className: "crewlet-canvas-board__note", "data-kind": "title", style: frame, ...paper, children: body });
|
|
681
699
|
}
|
|
682
700
|
|
|
683
|
-
export {
|
|
701
|
+
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 };
|
|
@@ -2,7 +2,7 @@ import { Tag } from './chunk-GFV4LJHH.js';
|
|
|
2
2
|
import { RelativeTime } from './chunk-3CZ7XAVY.js';
|
|
3
3
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
|
-
import './DatasetSource-
|
|
5
|
+
import './DatasetSource-SMGX4PS5.css';
|
|
6
6
|
import { useId, Children, isValidElement } from 'react';
|
|
7
7
|
import { ClockGlyph } from '@crewlethq/icons/glyphs';
|
|
8
8
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
@@ -40,6 +40,7 @@ function DatasetSource({
|
|
|
40
40
|
const text = { ...LABELS, ...labels, kinds: { ...LABELS.kinds, ...labels?.kinds } };
|
|
41
41
|
const titleId = useId();
|
|
42
42
|
const blocked = status === "refused" || status === "failed";
|
|
43
|
+
const open = selected && children !== void 0 && children !== null && children !== false;
|
|
43
44
|
const state = status === "loading" ? /* @__PURE__ */ jsx("span", { className: "crewlet-dataset-source__state", children: text.loading }) : blocked ? /* @__PURE__ */ jsx("span", { className: "crewlet-dataset-source__state crewlet-dataset-source__state--blocked", children: detail ?? (status === "refused" ? text.refused : text.failed) }) : status === "live" ? /* @__PURE__ */ jsx("span", { className: "crewlet-dataset-source__state", children: text.live }) : asOf !== void 0 && asOf !== null ? /* @__PURE__ */ jsxs("span", { className: "crewlet-dataset-source__state", children: [
|
|
44
45
|
text.asOf,
|
|
45
46
|
" ",
|
|
@@ -87,12 +88,13 @@ function DatasetSource({
|
|
|
87
88
|
"crewlet-dataset-source",
|
|
88
89
|
`crewlet-dataset-source--${status}`,
|
|
89
90
|
selected && "crewlet-dataset-source--selected",
|
|
91
|
+
open && "crewlet-dataset-source--open",
|
|
90
92
|
className
|
|
91
93
|
),
|
|
92
94
|
"aria-busy": status === "loading" || void 0,
|
|
93
95
|
children: [
|
|
94
96
|
onSelect ? /* @__PURE__ */ jsx("button", { type: "button", className: "crewlet-dataset-source__summary", "aria-pressed": selected, onClick: onSelect, children: summary }) : /* @__PURE__ */ jsx("div", { className: "crewlet-dataset-source__summary", children: summary }),
|
|
95
|
-
|
|
97
|
+
open ? /* @__PURE__ */ jsx("div", { className: "crewlet-dataset-source__preview", role: "group", "aria-labelledby": titleId, children }) : null
|
|
96
98
|
]
|
|
97
99
|
}
|
|
98
100
|
);
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { PageHeader } from './chunk-HOXGBLEY.js';
|
|
2
|
-
import { DataTable } from './chunk-
|
|
3
|
-
import { DateTimePicker } from './chunk-
|
|
2
|
+
import { DataTable } from './chunk-JML75PGJ.js';
|
|
3
|
+
import { DateTimePicker } from './chunk-L4WZSVMT.js';
|
|
4
4
|
import { useListbox, useOptionKeys } from './chunk-F73MC7EZ.js';
|
|
5
5
|
import { Toolbar } from './chunk-PGRPNDWM.js';
|
|
6
6
|
import { Popover } from './chunk-K3IJQNB7.js';
|
|
7
|
-
import { Input } from './chunk-6QFAK2WV.js';
|
|
8
|
-
import { Kbd } from './chunk-SMBKXWML.js';
|
|
9
7
|
import { RelativeTime } from './chunk-3CZ7XAVY.js';
|
|
8
|
+
import { Input } from './chunk-IUYUS2SO.js';
|
|
9
|
+
import { Kbd } from './chunk-SMBKXWML.js';
|
|
10
10
|
import { Count } from './chunk-BHHIIK3M.js';
|
|
11
11
|
import { Menu } from './chunk-BUVCV3WI.js';
|
|
12
12
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SlideStage } from './chunk-
|
|
1
|
+
import { SlideStage } from './chunk-NQGPD6NX.js';
|
|
2
2
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
-
import './SlideGrid-
|
|
3
|
+
import './SlideGrid-FJA33DV4.css';
|
|
4
4
|
import { EyeOffGlyph } from '@crewlethq/icons/glyphs';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
6
|
|