@crewlethq/ui 0.36.0 → 0.37.1
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 +41 -1
- package/dist/AgentHandoffPanel/index.js +4 -4
- package/dist/AppShell/index.d.ts +1 -0
- package/dist/AppShell/index.js +5 -3
- package/dist/{AppShell-JTSEOA57.css → AppShell-JBCZSSX3.css} +14 -2
- package/dist/ArrangeList/index.js +4 -4
- 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/index.js +9 -7
- package/dist/ArtifactCard/ArtifactCard.d.ts +1 -6
- package/dist/ArtifactCard/index.d.ts +2 -1
- package/dist/ArtifactCard/index.js +3 -2
- package/dist/ArtifactCover/index.js +3 -3
- package/dist/ArtifactKindIllustration/ArtifactKindIllustration.d.ts +1 -1
- package/dist/ArtifactKindIllustration/index.js +1 -1
- package/dist/{ArtifactKindIllustration-5KTP43QS.css → ArtifactKindIllustration-KLFL7KBG.css} +1 -1
- package/dist/ArtifactMakeRow/index.d.ts +1 -0
- package/dist/ArtifactMakeRow/index.js +2 -1
- package/dist/{ArtifactMakeRow-RWUTS5MC.css → ArtifactMakeRow-W3RD5YWZ.css} +7 -2
- 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/AvatarPicker/index.js +8 -6
- package/dist/Canvas/index.js +4 -3
- package/dist/CanvasBoard/index.js +7 -6
- package/dist/CanvasToolbar/index.js +6 -5
- package/dist/ChangeMark/index.js +4 -3
- package/dist/Checkbox/index.js +3 -3
- package/dist/ChoiceList/index.d.ts +1 -0
- package/dist/ChoiceList/index.js +2 -1
- package/dist/{ChoiceList-EA2W6MOS.css → ChoiceList-KFYFAECP.css} +26 -4
- package/dist/Combobox/index.d.ts +1 -0
- package/dist/Combobox/index.js +6 -5
- package/dist/{Combobox-4FUVYIE7.css → Combobox-YDONYDTM.css} +2 -1
- package/dist/CommandPalette/index.d.ts +1 -0
- package/dist/CommandPalette/index.js +7 -6
- package/dist/{CommandPalette-7CFGVBND.css → CommandPalette-TOZYLWLE.css} +5 -1
- package/dist/CommentThread/index.js +5 -5
- package/dist/Composer/index.js +3 -3
- package/dist/{Composer-PXITWNEK.css → Composer-TXULCPPV.css} +1 -1
- package/dist/ConfirmField/index.js +3 -3
- package/dist/DataTable/index.js +7 -7
- package/dist/DataView/index.js +12 -12
- package/dist/DatasetSource/index.d.ts +1 -0
- package/dist/DatasetSource/index.js +2 -1
- package/dist/{DatasetSource-SMGX4PS5.css → DatasetSource-FFKTD3ZU.css} +16 -1
- package/dist/DateTimePicker/index.js +4 -4
- package/dist/{DateTimePicker-2IVTKFV2.css → DateTimePicker-3A7JIIVL.css} +3 -3
- package/dist/DocTabsEditor/index.js +5 -5
- package/dist/Document/index.js +2 -2
- package/dist/{Document-YFWTWXJP.css → Document-TZ2NBLOR.css} +2 -2
- package/dist/{Editor-HORWMUM3.js → Editor-QV4JP242.js} +6 -6
- package/dist/FactList/index.js +4 -3
- package/dist/FollowBanner/index.js +3 -2
- package/dist/HitArea/hitArea.d.ts +7 -0
- package/dist/HitArea/index.d.ts +2 -0
- package/dist/HitArea/index.js +2 -0
- package/dist/HitArea-QUOS6ZDJ.css +35 -0
- package/dist/HuePicker/index.js +4 -3
- package/dist/Input/index.js +2 -2
- package/dist/{Input-ABGOFENS.css → Input-OQZBCRX5.css} +9 -4
- package/dist/Layer/index.js +2 -1
- package/dist/LinkInterstitial/index.js +4 -3
- package/dist/ListInput/index.js +4 -4
- package/dist/Listbox/index.js +3 -2
- package/dist/{Listbox-6WJNJQVQ.css → Listbox-NQV6E3FS.css} +3 -0
- package/dist/LivePreview/LivePreview.d.ts +15 -3
- package/dist/LivePreview/index.d.ts +2 -2
- package/dist/LivePreview/index.js +1 -1
- package/dist/{LivePreview-BROGKR4N.css → LivePreview-KQEDMQCY.css} +13 -0
- package/dist/MarkdownEditor/index.js +8 -6
- package/dist/Menu/index.js +3 -2
- package/dist/MergeConflicts/index.js +5 -4
- package/dist/Modal/index.js +3 -2
- package/dist/OrgTable/index.js +4 -3
- package/dist/Popover/index.js +3 -2
- package/dist/PresenterView/index.js +4 -3
- package/dist/PrincipalPicker/index.js +7 -6
- package/dist/RichEditor/index.js +1 -1
- package/dist/SegmentedControl/index.d.ts +1 -0
- package/dist/SegmentedControl/index.js +4 -3
- package/dist/{SegmentedControl-FLI45IOW.css → SegmentedControl-B7XCUOML.css} +9 -2
- package/dist/Select/index.d.ts +1 -0
- package/dist/Select/index.js +5 -4
- package/dist/{Select-W3CHTZXP.css → Select-F526HLNR.css} +5 -4
- package/dist/ShareDialog/index.js +7 -6
- package/dist/SheetColumnEditor/index.js +12 -11
- package/dist/SheetGrid/index.js +7 -6
- package/dist/{SheetGrid-YRDXTIIZ.css → SheetGrid-XK7T7M34.css} +9 -4
- package/dist/Shortcut/index.js +3 -2
- package/dist/SidebarNav/index.d.ts +1 -0
- package/dist/SidebarNav/index.js +2 -1
- package/dist/{SidebarNav-KF66MLOM.css → SidebarNav-7SGUZYKK.css} +21 -2
- package/dist/SlideCompare/index.js +4 -3
- package/dist/SlideFilmstrip/index.js +5 -4
- package/dist/SlideGrid/index.js +4 -3
- package/dist/SlideStage/index.js +3 -2
- package/dist/SourceEditor/index.js +2 -2
- package/dist/{SourceEditor-QAYE2JS6.css → SourceEditor-OKPWPFXK.css} +1 -1
- package/dist/Switcher/index.js +7 -7
- package/dist/Tabs/index.d.ts +1 -0
- package/dist/Tabs/index.js +2 -1
- package/dist/{Tabs-MMZXV5EF.css → Tabs-WIF7457H.css} +20 -3
- package/dist/TagsInput/index.js +4 -4
- package/dist/{TagsInput-7EGBBXHS.css → TagsInput-CLFHP6I2.css} +1 -1
- package/dist/ThemeGallery/index.js +4 -3
- package/dist/ThemeSwitcher/index.js +5 -4
- package/dist/TimeWindowPicker/index.js +8 -7
- package/dist/{TimeWindowPicker-DEFDV77Z.css → TimeWindowPicker-I3HXC74I.css} +3 -3
- package/dist/Toaster/index.js +2 -1
- package/dist/Toolbar/index.js +3 -2
- package/dist/Tooltip/index.js +3 -2
- package/dist/TreeCanvas/index.js +5 -4
- package/dist/TreeGrid/index.js +3 -2
- package/dist/VersionCompare/index.js +5 -4
- package/dist/{chunk-CCAXYHQS.js → chunk-2QZ2VPHR.js} +3 -1
- package/dist/chunk-2YTOOH3A.js +4 -0
- package/dist/{chunk-QWNVSR6G.js → chunk-3KYVFG47.js} +1 -1
- package/dist/{chunk-3PTUDKSR.js → chunk-3SBM4DGI.js} +4 -4
- package/dist/{chunk-H5NOLRGH.js → chunk-3V5T5K5H.js} +1 -1
- package/dist/chunk-4ISUIS6F.js +3 -0
- package/dist/{chunk-PLTCDSTU.js → chunk-4LRAJXHL.js} +1 -1
- package/dist/{chunk-4ZJLOKSS.js → chunk-5BUOMF6N.js} +2 -2
- package/dist/{chunk-47JQAGRV.js → chunk-66X5WDKE.js} +1 -1
- package/dist/{chunk-MRMHZ437.js → chunk-6NNY5WBF.js} +7 -6
- package/dist/{chunk-5RT5O4JR.js → chunk-7CGPPAYR.js} +1 -1
- package/dist/{chunk-F73MC7EZ.js → chunk-7KHM2FZH.js} +2 -2
- package/dist/{chunk-VL6CUNSX.js → chunk-7SDUKCNW.js} +4 -1
- package/dist/{chunk-XMRTFPWX.js → chunk-A23KDROH.js} +3 -3
- package/dist/{chunk-N5SKHIAP.js → chunk-A72JPXIV.js} +8 -6
- package/dist/{chunk-PJIPUEJ3.js → chunk-AXS6MBNH.js} +1 -1
- package/dist/{chunk-2FPENTCF.js → chunk-AYHIF6DH.js} +1 -1
- package/dist/{chunk-J6ON5SYE.js → chunk-B5J23C73.js} +1 -1
- package/dist/{chunk-7VAUGG6B.js → chunk-B5UHX5UC.js} +2 -2
- package/dist/chunk-BGLKLXL3.js +29 -0
- package/dist/{chunk-FHHYXZSP.js → chunk-C7OKDYBH.js} +2 -2
- package/dist/{chunk-JBUMD6DS.js → chunk-CFGGE3HO.js} +1 -1
- package/dist/{chunk-XGBLRDSU.js → chunk-CQFQGAZI.js} +17 -7
- package/dist/{chunk-GMLAKNFY.js → chunk-D2OL3ZSS.js} +1 -1
- package/dist/{chunk-D7GNNID2.js → chunk-D3EJSLCL.js} +2 -2
- package/dist/{chunk-BUVCV3WI.js → chunk-D6FEHY5G.js} +3 -2
- package/dist/{chunk-4BYHAOHH.js → chunk-DAERKOOG.js} +3 -2
- package/dist/{chunk-IQH3DDZ2.js → chunk-DOLATMGF.js} +2 -2
- package/dist/{chunk-W3HYWD63.js → chunk-DZSBFITC.js} +15 -8
- package/dist/{chunk-PPFX6GRK.js → chunk-EAEJ7CDM.js} +6 -3
- package/dist/{chunk-WZGYIVYH.js → chunk-EAQLI2SO.js} +4 -2
- package/dist/{chunk-GYBDPCRC.js → chunk-ECGGQX2H.js} +2 -2
- package/dist/{chunk-FG4O64DV.js → chunk-F3WZ5AKM.js} +5 -5
- package/dist/{chunk-SUXP4OBT.js → chunk-F4LPQA4E.js} +1 -1
- package/dist/{chunk-KYZMN6I6.js → chunk-FBW3Q2OY.js} +2 -2
- package/dist/{chunk-JQLS3MZB.js → chunk-FWBKMPNR.js} +1 -1
- package/dist/{chunk-OOWPSBIS.js → chunk-GMW4ZHST.js} +3 -3
- package/dist/{chunk-R25RGPUB.js → chunk-H5XTJ7GJ.js} +2 -3
- package/dist/{chunk-PGZ2R3ON.js → chunk-HDHZWIFL.js} +8 -6
- package/dist/{chunk-GRYZ5EP3.js → chunk-HMLAWVG6.js} +13 -2
- package/dist/{chunk-6ZJ3N7QI.js → chunk-I33UIUZD.js} +1 -1
- package/dist/{chunk-RH2NCQBZ.js → chunk-ISA2O2BK.js} +2 -2
- package/dist/{chunk-K3IJQNB7.js → chunk-KHJIEPZV.js} +3 -2
- package/dist/{chunk-ES4RKQ7B.js → chunk-MG3HTY6F.js} +7 -7
- package/dist/chunk-MICRGE3J.js +1 -0
- package/dist/{chunk-WNAYQQ6Y.js → chunk-MMPKN7WV.js} +2 -2
- package/dist/{chunk-PGRPNDWM.js → chunk-NR4CPM4T.js} +1 -1
- package/dist/{chunk-5WDXPHEW.js → chunk-NRBAXRWE.js} +1 -1
- package/dist/{chunk-66ADEPFB.js → chunk-NS4NSHVX.js} +5 -3
- package/dist/{chunk-YSGLEHND.js → chunk-NUZHC6MM.js} +14 -2
- package/dist/{chunk-WGD2HX2A.js → chunk-OED6LUWE.js} +1 -1
- package/dist/{chunk-OSZDHN5Z.js → chunk-OHA6WSAG.js} +5 -10
- package/dist/chunk-P5VGSVWG.js +39 -0
- package/dist/{chunk-KJW2AS57.js → chunk-PEUGPAKH.js} +1 -1
- package/dist/{chunk-IPAU6FLH.js → chunk-PPHTIKZO.js} +1 -1
- package/dist/{chunk-P6WFZDKS.js → chunk-PWG3VHRQ.js} +2 -2
- package/dist/{chunk-HOIZ6MIS.js → chunk-RLJXVFEH.js} +1 -1
- package/dist/{chunk-NQGPD6NX.js → chunk-RMEBFYL7.js} +1 -1
- package/dist/{chunk-APDKUGSH.js → chunk-S27UBCVX.js} +5 -4
- package/dist/{chunk-XEGZHHRH.js → chunk-SVGARBDY.js} +1 -1
- package/dist/{chunk-UWGUKMBK.js → chunk-SYBYFQTY.js} +2 -2
- package/dist/{chunk-IUYUS2SO.js → chunk-TYONQSOK.js} +2 -2
- package/dist/{chunk-L4WZSVMT.js → chunk-UB6MLXUL.js} +3 -3
- package/dist/{chunk-MJW6SQYB.js → chunk-UBZDYOCA.js} +1 -1
- package/dist/{chunk-2DV4THNQ.js → chunk-UWRBD2YO.js} +2 -2
- package/dist/{chunk-DEMALFHY.js → chunk-UXYEOWG5.js} +1 -1
- package/dist/{chunk-UCCC7YVZ.js → chunk-W7PAIVAP.js} +4 -2
- package/dist/{chunk-T5RQGI6O.js → chunk-X3UYTAOG.js} +1 -1
- package/dist/{chunk-VKKUGZ3G.js → chunk-XQZ6EWOE.js} +8 -5
- package/dist/{chunk-TVRBQMIX.js → chunk-YPMGP2X4.js} +6 -6
- package/dist/{chunk-EOQFPZEE.js → chunk-YSG3DW7W.js} +1 -1
- package/dist/{chunk-2QEDJSJC.js → chunk-ZMDYQ2HH.js} +1 -1
- package/dist/{chunk-27GD7LVR.js → chunk-ZMWXE4GT.js} +1 -1
- package/dist/generated/index.d.ts +3 -0
- package/dist/generated/index.js +109 -105
- package/dist/index.js +109 -105
- package/dist/styles.css +371 -63
- package/dist/utils/focusModality.d.ts +17 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/package.json +3 -3
- package/dist/chunk-WKEPORNM.js +0 -2
- /package/dist/{chunk-5BP6IS3N.js → chunk-4QQ3MND5.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { useFocusModality } from './chunk-
|
|
1
|
+
import { useFocusModality } from './chunk-NUZHC6MM.js';
|
|
2
2
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
|
-
import './SourceEditor-
|
|
4
|
+
import './SourceEditor-OKPWPFXK.css';
|
|
5
5
|
import { forwardRef, useRef, useId, useState, useImperativeHandle, useLayoutEffect } from 'react';
|
|
6
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
7
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { useLayerContainer, viewportBounds, LAYER_GAP, anchorGone, placePopup, LAYER_REPOSITION_EVENT } from './chunk-OMV5W53A.js';
|
|
2
|
-
import { usePopupLayer } from './chunk-
|
|
2
|
+
import { usePopupLayer } from './chunk-H5XTJ7GJ.js';
|
|
3
3
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
4
4
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
5
|
+
import { returnFocus } from './chunk-NUZHC6MM.js';
|
|
5
6
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
6
7
|
import './Menu-KEKAD3BZ.css';
|
|
7
8
|
import { useId, useState, useRef, useCallback, useLayoutEffect, useEffect } from 'react';
|
|
@@ -62,7 +63,7 @@ function Menu({
|
|
|
62
63
|
const giveFocusBack = useCallback(() => {
|
|
63
64
|
const back = opener.current;
|
|
64
65
|
const target = back && back.isConnected && back !== document.body ? back : triggerRef.current;
|
|
65
|
-
target
|
|
66
|
+
returnFocus(target);
|
|
66
67
|
}, []);
|
|
67
68
|
const close = useCallback(
|
|
68
69
|
(restore) => {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { LayerNodeBridge } from './chunk-LM3ISVJA.js';
|
|
2
|
-
import { Tooltip } from './chunk-
|
|
2
|
+
import { Tooltip } from './chunk-I33UIUZD.js';
|
|
3
3
|
import { Kbd } from './chunk-SMBKXWML.js';
|
|
4
4
|
import { LAYER_REPOSITION_EVENT, LayerHost } from './chunk-OMV5W53A.js';
|
|
5
5
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
6
6
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
7
|
+
import { returnFocus } from './chunk-NUZHC6MM.js';
|
|
7
8
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
8
9
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
9
10
|
import './Canvas-VUG2HLZK.css';
|
|
@@ -668,7 +669,7 @@ function ZoomReadout({
|
|
|
668
669
|
}
|
|
669
670
|
if (!returning.current) return;
|
|
670
671
|
returning.current = false;
|
|
671
|
-
button.current
|
|
672
|
+
returnFocus(button.current);
|
|
672
673
|
}, [typing]);
|
|
673
674
|
const close = (apply) => {
|
|
674
675
|
returning.current = true;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { FormField, Textarea, Input } from './chunk-
|
|
1
|
+
import { FormField, Textarea, Input } from './chunk-TYONQSOK.js';
|
|
2
2
|
import { Kbd } from './chunk-SMBKXWML.js';
|
|
3
3
|
import { announce } from './chunk-RSAQOKH3.js';
|
|
4
|
-
import { isComposing } from './chunk-
|
|
4
|
+
import { isComposing } from './chunk-H5XTJ7GJ.js';
|
|
5
5
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
6
6
|
import './ListInput-O7LJKOIG.css';
|
|
7
7
|
import { useState, useRef, useLayoutEffect } from 'react';
|
|
@@ -3,19 +3,19 @@ import { CursorFlag } from './chunk-3BYIWOTV.js';
|
|
|
3
3
|
import { presenceHueClass } from './chunk-I6POAB4V.js';
|
|
4
4
|
import { Tag } from './chunk-GFV4LJHH.js';
|
|
5
5
|
import { StatusDot } from './chunk-WIATRXEJ.js';
|
|
6
|
-
import { ChangeMark } from './chunk-
|
|
6
|
+
import { ChangeMark } from './chunk-66X5WDKE.js';
|
|
7
7
|
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';
|
|
8
8
|
import { presenceLabels } from './chunk-Z7JYG5TF.js';
|
|
9
|
-
import { Popover } from './chunk-
|
|
10
|
-
import { Tooltip } from './chunk-
|
|
9
|
+
import { Popover } from './chunk-KHJIEPZV.js';
|
|
10
|
+
import { Tooltip } from './chunk-I33UIUZD.js';
|
|
11
11
|
import { Avatar } from './chunk-PZKHBB7D.js';
|
|
12
|
-
import { Menu } from './chunk-
|
|
13
|
-
import { isComposing } from './chunk-
|
|
12
|
+
import { Menu } from './chunk-D6FEHY5G.js';
|
|
13
|
+
import { isComposing } from './chunk-H5XTJ7GJ.js';
|
|
14
14
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
15
15
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
16
16
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
17
17
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
18
|
-
import './SheetGrid-
|
|
18
|
+
import './SheetGrid-XK7T7M34.css';
|
|
19
19
|
import { useId, useRef, useMemo, useState, useLayoutEffect, useEffect, useCallback } from 'react';
|
|
20
20
|
import { CheckGlyph, StarGlyph, CircleAlertGlyph, ArrowUpGlyph, ArrowDownGlyph, TrashGlyph, EllipsisGlyph, RotateCcwClockGlyph, PlusGlyph } from '@crewlethq/icons/glyphs';
|
|
21
21
|
import { isCrewletCharacter } from '@crewlethq/icons/characters';
|
|
@@ -727,6 +727,7 @@ function SheetGrid({
|
|
|
727
727
|
const [rowHeight, setRowHeight] = useState(SHEET_ROW_HEIGHT);
|
|
728
728
|
const [headerHeight, setHeaderHeight] = useState(SHEET_ROW_HEIGHT);
|
|
729
729
|
const [viewport, setViewport] = useState(0);
|
|
730
|
+
const [crossbar, setCrossbar] = useState(0);
|
|
730
731
|
const [scrollTop, setScrollTop] = useState(0);
|
|
731
732
|
const [scrolledAcross, setScrolledAcross] = useState(false);
|
|
732
733
|
const [active, setActive] = useState(null);
|
|
@@ -759,6 +760,12 @@ function SheetGrid({
|
|
|
759
760
|
if (head > 0) setHeaderHeight(head);
|
|
760
761
|
setViewport(scroller.current?.clientHeight ?? 0);
|
|
761
762
|
setViewportWidth(scroller.current?.clientWidth ?? 0);
|
|
763
|
+
const box = scroller.current;
|
|
764
|
+
if (box) {
|
|
765
|
+
const edges = getComputedStyle(box);
|
|
766
|
+
const bar = box.offsetHeight - box.clientHeight - (parseFloat(edges.borderTopWidth) || 0) - (parseFloat(edges.borderBottomWidth) || 0);
|
|
767
|
+
setCrossbar(Math.max(0, Math.round(bar)));
|
|
768
|
+
}
|
|
762
769
|
};
|
|
763
770
|
measure();
|
|
764
771
|
if (typeof ResizeObserver !== "function") return void 0;
|
|
@@ -1172,7 +1179,7 @@ function SheetGrid({
|
|
|
1172
1179
|
"--crewlet-sheet-row-height": `${rowHeight}px`,
|
|
1173
1180
|
width: `${totalWidth}px`
|
|
1174
1181
|
};
|
|
1175
|
-
const contentHeight = headerHeight + rows.length * rowHeight + 2;
|
|
1182
|
+
const contentHeight = headerHeight + rows.length * rowHeight + 2 + crossbar;
|
|
1176
1183
|
const scrollerStyle = fit === "content" ? {
|
|
1177
1184
|
height: `${height !== void 0 ? Math.min(contentHeight, height) : contentHeight}px`,
|
|
1178
1185
|
"--crewlet-sheet-content-height": `${contentHeight}px`
|
|
@@ -1452,7 +1459,7 @@ function SheetGrid({
|
|
|
1452
1459
|
// OUTSIDE THE GRID'S ROLES: a grid's rows hold cells only, so the
|
|
1453
1460
|
// control stands beside the header row, sticks with it, and is its
|
|
1454
1461
|
// own tab stop after the grid's.
|
|
1455
|
-
/* @__PURE__ */ jsx("div", { className: "crewlet-sheet-grid__add-column", style: { height: `${headerHeight}px` }, children: /* @__PURE__ */ jsx(Tooltip, { content: labels.addColumn, children: /* @__PURE__ */ jsx(IconButton, { label: labels.addColumn, icon: /* @__PURE__ */ jsx(PlusGlyph, {}), size: "sm", title: "", onClick: onAddColumn }) }) })
|
|
1462
|
+
/* @__PURE__ */ jsx("div", { className: "crewlet-sheet-grid__add-column", style: { height: `${headerHeight}px` }, children: /* @__PURE__ */ jsx(Tooltip, { content: labels.addColumn, children: /* @__PURE__ */ jsx(IconButton, { label: labels.addColumn, icon: /* @__PURE__ */ jsx(PlusGlyph, { size: "xs" }), size: "sm", title: "", onClick: onAddColumn }) }) })
|
|
1456
1463
|
) : null
|
|
1457
1464
|
]
|
|
1458
1465
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { useListbox } from './chunk-
|
|
2
|
-
import { Input } from './chunk-
|
|
1
|
+
import { useListbox } from './chunk-7KHM2FZH.js';
|
|
2
|
+
import { Input } from './chunk-TYONQSOK.js';
|
|
3
|
+
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
3
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
|
-
import './
|
|
5
|
+
import './HitArea-QUOS6ZDJ.css';
|
|
6
|
+
import './Combobox-YDONYDTM.css';
|
|
5
7
|
import { forwardRef, useId, useMemo, useRef, useCallback } from 'react';
|
|
6
8
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
9
|
|
|
@@ -115,6 +117,7 @@ var Combobox = forwardRef(function Combobox2({
|
|
|
115
117
|
"aria-disabled": option.disabled || void 0,
|
|
116
118
|
className: cx(
|
|
117
119
|
"crewlet-listbox__option",
|
|
120
|
+
HIT_AREA_CLASS,
|
|
118
121
|
index === listbox.active && "is-highlight",
|
|
119
122
|
option.disabled && "is-disabled"
|
|
120
123
|
),
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
1
2
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
2
|
-
import './
|
|
3
|
+
import './HitArea-QUOS6ZDJ.css';
|
|
4
|
+
import './ChoiceList-KFYFAECP.css';
|
|
3
5
|
import { useId } from 'react';
|
|
4
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
7
|
|
|
@@ -10,7 +12,7 @@ function ChoiceList({ options, value, onChange, label, footer, disabled, classNa
|
|
|
10
12
|
const id = `${name}-${option.value}`;
|
|
11
13
|
const checked = option.value === value;
|
|
12
14
|
return /* @__PURE__ */ jsxs("div", { className: cx("crewlet-choice-list__item", option.separated && "is-separated"), children: [
|
|
13
|
-
/* @__PURE__ */ jsxs("label", { className: cx("crewlet-choice-list__row", option.media != null && "has-media", checked && "is-checked"), htmlFor: id, children: [
|
|
15
|
+
/* @__PURE__ */ jsxs("label", { className: cx("crewlet-choice-list__row", HIT_AREA_CLASS, option.media != null && "has-media", checked && "is-checked"), htmlFor: id, children: [
|
|
14
16
|
/* @__PURE__ */ jsx(
|
|
15
17
|
"input",
|
|
16
18
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HuePicker } from './chunk-
|
|
2
|
-
import { Popover } from './chunk-
|
|
1
|
+
import { HuePicker } from './chunk-F4LPQA4E.js';
|
|
2
|
+
import { Popover } from './chunk-KHJIEPZV.js';
|
|
3
3
|
import { NODE_HUE_NAMES } from './chunk-AYKXMIOR.js';
|
|
4
4
|
import { CharacterPicker } from './chunk-YEVG2X5R.js';
|
|
5
5
|
import { Avatar } from './chunk-PZKHBB7D.js';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Select } from './chunk-
|
|
1
|
+
import { Select } from './chunk-XQZ6EWOE.js';
|
|
2
2
|
import { SHEET_LABELS, SHEET_COLUMN_TYPES, optionHue, retypeColumn } from './chunk-LFSIKGRQ.js';
|
|
3
|
-
import { HueSwatch } from './chunk-
|
|
3
|
+
import { HueSwatch } from './chunk-F4LPQA4E.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-AXS6MBNH.js';
|
|
6
|
+
import { FormField, Input } from './chunk-TYONQSOK.js';
|
|
7
7
|
import { Kbd } from './chunk-SMBKXWML.js';
|
|
8
|
-
import { Menu } from './chunk-
|
|
8
|
+
import { Menu } from './chunk-D6FEHY5G.js';
|
|
9
9
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
10
10
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
11
11
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { SlideStage } from './chunk-
|
|
1
|
+
import { SlideStage } from './chunk-RMEBFYL7.js';
|
|
2
2
|
import { useReorder } from './chunk-XJ2QEBMM.js';
|
|
3
3
|
import { Kbd, isApplePlatform } from './chunk-SMBKXWML.js';
|
|
4
|
-
import { Menu } from './chunk-
|
|
4
|
+
import { Menu } from './chunk-D6FEHY5G.js';
|
|
5
5
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
6
6
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
7
7
|
import './SlideFilmstrip-PAT7P4OG.css';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Toolbar } from './chunk-
|
|
2
|
-
import { SegmentedControl } from './chunk-
|
|
3
|
-
import { tabId } from './chunk-
|
|
1
|
+
import { Toolbar } from './chunk-NR4CPM4T.js';
|
|
2
|
+
import { SegmentedControl } from './chunk-2QZ2VPHR.js';
|
|
3
|
+
import { tabId } from './chunk-7SDUKCNW.js';
|
|
4
4
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
6
6
|
import './MarkdownEditor-WOKV7CLK.css';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { returnFocus } from './chunk-NUZHC6MM.js';
|
|
1
2
|
import { useRef, useState, useLayoutEffect, useEffect, useCallback, useSyncExternalStore } from 'react';
|
|
2
3
|
import { zIndex } from '@crewlethq/tokens';
|
|
3
4
|
|
|
4
|
-
// src/Layer/stack.ts
|
|
5
5
|
var KEY = /* @__PURE__ */ Symbol.for("crewlet.layer-stack");
|
|
6
6
|
function sharedStack() {
|
|
7
7
|
const host = globalThis;
|
|
@@ -214,8 +214,7 @@ function useModalLayer({ onClose, dismissable = true, initialFocus }) {
|
|
|
214
214
|
if (holder && shared.entries.some((entry) => entry.panel()?.contains(holder))) return;
|
|
215
215
|
for (const el of back) {
|
|
216
216
|
if (!(el instanceof HTMLElement) || !el.isConnected || el === document.body) continue;
|
|
217
|
-
el
|
|
218
|
-
if (document.activeElement === el) return;
|
|
217
|
+
if (returnFocus(el)) return;
|
|
219
218
|
}
|
|
220
219
|
};
|
|
221
220
|
}, [back]);
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { useMediaMatch } from './chunk-RTPQDNW3.js';
|
|
2
|
-
import { Menu } from './chunk-
|
|
3
|
-
import { useModalLayer, focusables } from './chunk-
|
|
2
|
+
import { Menu } from './chunk-D6FEHY5G.js';
|
|
3
|
+
import { useModalLayer, focusables } from './chunk-H5XTJ7GJ.js';
|
|
4
|
+
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
4
5
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
5
6
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
6
7
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
7
|
-
import './
|
|
8
|
+
import './HitArea-QUOS6ZDJ.css';
|
|
9
|
+
import './AppShell-JBCZSSX3.css';
|
|
8
10
|
import { createContext, forwardRef, useContext, useId, useState, useRef, useCallback, useEffect, useLayoutEffect } from 'react';
|
|
9
11
|
import { breakpoint } from '@crewlethq/tokens';
|
|
10
12
|
import { ChevronUpGlyph, ChevronsUpDownGlyph, ChevronRightGlyph, MenuGlyph } from '@crewlethq/icons/glyphs';
|
|
@@ -45,7 +47,7 @@ function AccountRow({
|
|
|
45
47
|
"button",
|
|
46
48
|
{
|
|
47
49
|
type: "button",
|
|
48
|
-
className: "crewlet-account-row__who",
|
|
50
|
+
className: cx("crewlet-account-row__who", HIT_AREA_CLASS),
|
|
49
51
|
title,
|
|
50
52
|
"data-current": current ? "" : void 0,
|
|
51
53
|
...trigger,
|
|
@@ -60,7 +62,7 @@ function AccountRow({
|
|
|
60
62
|
) : href === void 0 ? /* @__PURE__ */ jsx("span", { className: "crewlet-account-row__who", children: who }) : /* @__PURE__ */ jsxs(
|
|
61
63
|
"a",
|
|
62
64
|
{
|
|
63
|
-
className: "crewlet-account-row__who",
|
|
65
|
+
className: cx("crewlet-account-row__who", HIT_AREA_CLASS),
|
|
64
66
|
href,
|
|
65
67
|
title,
|
|
66
68
|
"aria-current": current ? "page" : void 0,
|
|
@@ -286,7 +288,7 @@ var AppShellRailRow = forwardRef(function AppShellRailRow2({
|
|
|
286
288
|
{
|
|
287
289
|
ref,
|
|
288
290
|
type: "button",
|
|
289
|
-
className: cx(shape, "crewlet-app-shell__rail-row--action"),
|
|
291
|
+
className: cx(shape, "crewlet-app-shell__rail-row--action", HIT_AREA_CLASS),
|
|
290
292
|
"aria-label": label,
|
|
291
293
|
"aria-expanded": expanded,
|
|
292
294
|
"aria-haspopup": haspopup,
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Tag } from './chunk-GFV4LJHH.js';
|
|
2
2
|
import { RelativeTime } from './chunk-3CZ7XAVY.js';
|
|
3
|
+
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
3
4
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
4
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
|
-
import './
|
|
6
|
+
import './HitArea-QUOS6ZDJ.css';
|
|
7
|
+
import './DatasetSource-FFKTD3ZU.css';
|
|
6
8
|
import { useId, Children, isValidElement } from 'react';
|
|
7
9
|
import { ClockGlyph } from '@crewlethq/icons/glyphs';
|
|
8
10
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
@@ -93,7 +95,16 @@ function DatasetSource({
|
|
|
93
95
|
),
|
|
94
96
|
"aria-busy": status === "loading" || void 0,
|
|
95
97
|
children: [
|
|
96
|
-
onSelect ? /* @__PURE__ */ jsx(
|
|
98
|
+
onSelect ? /* @__PURE__ */ jsx(
|
|
99
|
+
"button",
|
|
100
|
+
{
|
|
101
|
+
type: "button",
|
|
102
|
+
className: cx("crewlet-dataset-source__summary", HIT_AREA_CLASS),
|
|
103
|
+
"aria-pressed": selected,
|
|
104
|
+
onClick: onSelect,
|
|
105
|
+
children: summary
|
|
106
|
+
}
|
|
107
|
+
) : /* @__PURE__ */ jsx("div", { className: "crewlet-dataset-source__summary", children: summary }),
|
|
97
108
|
open ? /* @__PURE__ */ jsx("div", { className: "crewlet-dataset-source__preview", role: "group", "aria-labelledby": titleId, children }) : null
|
|
98
109
|
]
|
|
99
110
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useLayerContainer, viewportBounds, LAYER_GAP, anchorGone, placePopup, LAYER_REPOSITION_EVENT } from './chunk-OMV5W53A.js';
|
|
2
|
-
import { usePopupLayer } from './chunk-
|
|
2
|
+
import { usePopupLayer } from './chunk-H5XTJ7GJ.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
4
|
import './Tooltip-LKQF7CE4.css';
|
|
5
5
|
import { useId, useState, useRef, useCallback, useEffect, useLayoutEffect, cloneElement } from 'react';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Textarea } from './chunk-
|
|
1
|
+
import { Textarea } from './chunk-TYONQSOK.js';
|
|
2
2
|
import { Kbd } from './chunk-SMBKXWML.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
|
-
import './Composer-
|
|
4
|
+
import './Composer-TXULCPPV.css';
|
|
5
5
|
import { forwardRef } from 'react';
|
|
6
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
7
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useLayerContainer, viewportBounds, LAYER_GAP, anchorGone, placePopup, LAYER_REPOSITION_EVENT } from './chunk-OMV5W53A.js';
|
|
2
|
-
import { usePopupLayer, focusables } from './chunk-
|
|
2
|
+
import { usePopupLayer, focusables } from './chunk-H5XTJ7GJ.js';
|
|
3
|
+
import { returnFocus } from './chunk-NUZHC6MM.js';
|
|
3
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
5
|
import './Popover-QCINR7WG.css';
|
|
5
6
|
import { useId, useState, useRef, useCallback, useLayoutEffect, useEffect, cloneElement } from 'react';
|
|
@@ -45,7 +46,7 @@ function Popover({
|
|
|
45
46
|
const close = useCallback(
|
|
46
47
|
(reason) => {
|
|
47
48
|
const held = panel.current?.contains(document.activeElement) ?? false;
|
|
48
|
-
if (reason === "escape" || reason === "tab" || reason === "content" && held) anchor.current
|
|
49
|
+
if (reason === "escape" || reason === "tab" || reason === "content" && held) returnFocus(anchor.current);
|
|
49
50
|
setOpen(false, reason);
|
|
50
51
|
},
|
|
51
52
|
[setOpen]
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { PageHeader } from './chunk-HOXGBLEY.js';
|
|
2
|
-
import { DataTable } from './chunk-
|
|
3
|
-
import { DateTimePicker } from './chunk-
|
|
4
|
-
import { useListbox, useOptionKeys } from './chunk-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { DataTable } from './chunk-A23KDROH.js';
|
|
3
|
+
import { DateTimePicker } from './chunk-UB6MLXUL.js';
|
|
4
|
+
import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
|
|
5
|
+
import { Popover } from './chunk-KHJIEPZV.js';
|
|
6
|
+
import { Toolbar } from './chunk-NR4CPM4T.js';
|
|
7
7
|
import { RelativeTime } from './chunk-3CZ7XAVY.js';
|
|
8
|
-
import { Input } from './chunk-
|
|
8
|
+
import { Input } from './chunk-TYONQSOK.js';
|
|
9
9
|
import { Kbd } from './chunk-SMBKXWML.js';
|
|
10
10
|
import { Count } from './chunk-BHHIIK3M.js';
|
|
11
|
-
import { Menu } from './chunk-
|
|
11
|
+
import { Menu } from './chunk-D6FEHY5G.js';
|
|
12
12
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
13
13
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
14
14
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import './HitArea-QUOS6ZDJ.css';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PrincipalAvatar } from './chunk-CI3VPIJN.js';
|
|
2
2
|
import { toInstant, RelativeTime, formatExact, toISO } from './chunk-3CZ7XAVY.js';
|
|
3
|
-
import { Document } from './chunk-
|
|
4
|
-
import { Composer } from './chunk-
|
|
3
|
+
import { Document } from './chunk-PWG3VHRQ.js';
|
|
4
|
+
import { Composer } from './chunk-ISA2O2BK.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,8 +1,10 @@
|
|
|
1
1
|
import { ArtifactKindGlyph } from './chunk-CE2THTQR.js';
|
|
2
|
+
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
2
3
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
3
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
|
+
import './HitArea-QUOS6ZDJ.css';
|
|
4
6
|
import './ArtifactKinds-CVD3FCYO.css';
|
|
5
|
-
import './ArtifactMakeRow-
|
|
7
|
+
import './ArtifactMakeRow-W3RD5YWZ.css';
|
|
6
8
|
import { useId } from 'react';
|
|
7
9
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
8
10
|
|
|
@@ -38,14 +40,14 @@ function MakeItem({ item }) {
|
|
|
38
40
|
"aria-disabled": "true",
|
|
39
41
|
"aria-describedby": disabledReason ? reasonId : describedBy,
|
|
40
42
|
title: disabledReason,
|
|
41
|
-
className: "crewlet-make-row__item crewlet-make-row__item--disabled",
|
|
43
|
+
className: cx("crewlet-make-row__item", "crewlet-make-row__item--disabled", HIT_AREA_CLASS),
|
|
42
44
|
children: body
|
|
43
45
|
}
|
|
44
46
|
),
|
|
45
47
|
disabledReason ? /* @__PURE__ */ jsx(VisuallyHidden, { id: reasonId, children: disabledReason }) : null
|
|
46
48
|
] });
|
|
47
49
|
}
|
|
48
|
-
return /* @__PURE__ */ jsx("a", { href, "aria-label": label, "aria-describedby": describedBy, className: "crewlet-make-row__item", children: body });
|
|
50
|
+
return /* @__PURE__ */ jsx("a", { href, "aria-label": label, "aria-describedby": describedBy, className: cx("crewlet-make-row__item", HIT_AREA_CLASS), children: body });
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
export { ArtifactMakeRow };
|
|
@@ -20,7 +20,7 @@ function trackFocusModality(doc = document) {
|
|
|
20
20
|
if (root.getAttribute(FOCUS_MODALITY_ATTRIBUTE) !== modality) root.setAttribute(FOCUS_MODALITY_ATTRIBUTE, modality);
|
|
21
21
|
};
|
|
22
22
|
const onKey = (event) => {
|
|
23
|
-
if (MODIFIERS.has(event.key)
|
|
23
|
+
if (MODIFIERS.has(event.key)) return;
|
|
24
24
|
if (event.key === "Tab" || !isTextEntry(event.target)) set("keyboard");
|
|
25
25
|
};
|
|
26
26
|
const onPointer = () => set("pointer");
|
|
@@ -52,5 +52,17 @@ function trackFocusModality(doc = document) {
|
|
|
52
52
|
function useFocusModality() {
|
|
53
53
|
useLayoutEffect(() => trackFocusModality(), []);
|
|
54
54
|
}
|
|
55
|
+
var FOCUS_RETURNED_ATTRIBUTE = "data-crewlet-focus-returned";
|
|
56
|
+
function returnFocus(el, options) {
|
|
57
|
+
if (!el) return false;
|
|
58
|
+
const clear = () => el.removeAttribute(FOCUS_RETURNED_ATTRIBUTE);
|
|
59
|
+
el.setAttribute(FOCUS_RETURNED_ATTRIBUTE, "");
|
|
60
|
+
el.addEventListener("blur", clear, { once: true });
|
|
61
|
+
el.focus(options);
|
|
62
|
+
if (el.ownerDocument.activeElement === el) return true;
|
|
63
|
+
el.removeEventListener("blur", clear);
|
|
64
|
+
clear();
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
55
67
|
|
|
56
|
-
export { FOCUS_MODALITY_ATTRIBUTE, trackFocusModality, useFocusModality };
|
|
68
|
+
export { FOCUS_MODALITY_ATTRIBUTE, FOCUS_RETURNED_ATTRIBUTE, returnFocus, trackFocusModality, useFocusModality };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Callout } from './chunk-SZZRIHGT.js';
|
|
2
|
-
import { isComposing } from './chunk-
|
|
2
|
+
import { isComposing } from './chunk-H5XTJ7GJ.js';
|
|
3
3
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
5
|
import { useEffect } from 'react';
|
|
@@ -1,26 +1,22 @@
|
|
|
1
1
|
import { Skeleton } from './chunk-TEUQWOWZ.js';
|
|
2
2
|
import { PrincipalAvatar } from './chunk-CI3VPIJN.js';
|
|
3
3
|
import { RelativeTime } from './chunk-3CZ7XAVY.js';
|
|
4
|
-
import { ArtifactKindGround } from './chunk-
|
|
4
|
+
import { ArtifactKindGround } from './chunk-UBZDYOCA.js';
|
|
5
5
|
import { Card } from './chunk-5QXRI35B.js';
|
|
6
6
|
import { AvatarStack } from './chunk-5AQBPHZD.js';
|
|
7
|
+
import { ArtifactAccessGlyph } from './chunk-BGLKLXL3.js';
|
|
7
8
|
import { ArtifactKindGlyph } from './chunk-CE2THTQR.js';
|
|
8
9
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
9
10
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
10
11
|
import './ArtifactKinds-CVD3FCYO.css';
|
|
11
12
|
import './ArtifactCard-OGTMO2KI.css';
|
|
12
13
|
import { useId } from 'react';
|
|
13
|
-
import { PinGlyph
|
|
14
|
+
import { PinGlyph } from '@crewlethq/icons/glyphs';
|
|
14
15
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
15
16
|
|
|
16
17
|
function ArtifactPreviewGlyph({ kind }) {
|
|
17
18
|
return /* @__PURE__ */ jsx(ArtifactKindGround, { kind });
|
|
18
19
|
}
|
|
19
|
-
var ACCESS_GLYPHS = {
|
|
20
|
-
private: LockGlyph,
|
|
21
|
-
shared: UsersGlyph,
|
|
22
|
-
company: BuildingComplexGlyph
|
|
23
|
-
};
|
|
24
20
|
var LABELS = {
|
|
25
21
|
kinds: { html: "HTML", doc: "Doc", slides: "Slides", design: "Design", dashboard: "Dashboard", sheet: "Sheet" },
|
|
26
22
|
pinned: "Pinned",
|
|
@@ -112,7 +108,6 @@ function ArtifactCard({
|
|
|
112
108
|
}
|
|
113
109
|
);
|
|
114
110
|
}
|
|
115
|
-
const Access = access ? ACCESS_GLYPHS[access] : null;
|
|
116
111
|
return /* @__PURE__ */ jsxs("div", { className: cx("crewlet-artifact-card", "crewlet-artifact-card--card", trashed && "crewlet-artifact-card--trashed", className), children: [
|
|
117
112
|
/* @__PURE__ */ jsxs("a", { href, className: "crewlet-artifact-card__link", "aria-labelledby": titleId, "aria-describedby": factsId, children: [
|
|
118
113
|
/* @__PURE__ */ jsx("span", { className: "crewlet-artifact-card__preview", "aria-hidden": true, children: preview ?? /* @__PURE__ */ jsx(ArtifactPreviewGlyph, { kind }) }),
|
|
@@ -128,8 +123,8 @@ function ArtifactCard({
|
|
|
128
123
|
pinned ? `, ${text.pinned}` : ""
|
|
129
124
|
] }),
|
|
130
125
|
/* @__PURE__ */ jsxs("span", { className: "crewlet-artifact-card__line crewlet-artifact-card__meta", children: [
|
|
131
|
-
|
|
132
|
-
/* @__PURE__ */ jsx(
|
|
126
|
+
access ? /* @__PURE__ */ jsxs("span", { className: "crewlet-artifact-card__access", title: text.access[access], children: [
|
|
127
|
+
/* @__PURE__ */ jsx(ArtifactAccessGlyph, { access }),
|
|
133
128
|
/* @__PURE__ */ jsx(VisuallyHidden, { children: text.access[access] })
|
|
134
129
|
] }) : null,
|
|
135
130
|
owner ? /* @__PURE__ */ jsxs("span", { className: "crewlet-artifact-card__owner", children: [
|
|
@@ -0,0 +1,39 @@
|
|
|
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 './ArtifactNameCell-RTVP4LO4.css';
|
|
6
|
+
import { PinGlyph } from '@crewlethq/icons/glyphs';
|
|
7
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
8
|
+
|
|
9
|
+
var LABELS = {
|
|
10
|
+
kinds: { html: "HTML", doc: "Doc", slides: "Slides", design: "Design", dashboard: "Dashboard", sheet: "Sheet" },
|
|
11
|
+
pinned: "Pinned"
|
|
12
|
+
};
|
|
13
|
+
function ArtifactNameCell({ kind, title, detail, pinned = false, trashed = false, className, labels }) {
|
|
14
|
+
const text = { ...LABELS, ...labels, kinds: { ...LABELS.kinds, ...labels?.kinds } };
|
|
15
|
+
const kindWord = text.kinds[kind];
|
|
16
|
+
const about = detail?.trim();
|
|
17
|
+
return /* @__PURE__ */ jsxs("span", { className: cx("crewlet-artifact-name", trashed && "crewlet-artifact-name--trashed", className), children: [
|
|
18
|
+
/* @__PURE__ */ jsx("span", { className: cx("crewlet-artifact-name__mark", `crewlet-kind--${kind}`), "aria-hidden": "true", children: /* @__PURE__ */ jsx(ArtifactKindGlyph, { kind, size: "sm" }) }),
|
|
19
|
+
/* @__PURE__ */ jsxs("span", { className: "crewlet-artifact-name__words", children: [
|
|
20
|
+
/* @__PURE__ */ jsxs("span", { className: "crewlet-artifact-name__title-row", children: [
|
|
21
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-artifact-name__title", title, children: title }),
|
|
22
|
+
pinned ? /* @__PURE__ */ jsxs("span", { className: "crewlet-artifact-name__pin", title: text.pinned, children: [
|
|
23
|
+
/* @__PURE__ */ jsx(PinGlyph, { size: "xs", "aria-hidden": "true" }),
|
|
24
|
+
/* @__PURE__ */ jsx(VisuallyHidden, { children: text.pinned })
|
|
25
|
+
] }) : null
|
|
26
|
+
] }),
|
|
27
|
+
/* @__PURE__ */ jsxs("span", { className: "crewlet-artifact-name__detail", title: about ? `${kindWord}, ${about}` : kindWord, children: [
|
|
28
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-artifact-name__kind", children: kindWord }),
|
|
29
|
+
about ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
30
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-artifact-name__dot", "aria-hidden": "true", children: "\xB7" }),
|
|
31
|
+
/* @__PURE__ */ jsx(VisuallyHidden, { children: ", " }),
|
|
32
|
+
/* @__PURE__ */ jsx("span", { className: "crewlet-artifact-name__about", children: about })
|
|
33
|
+
] }) : null
|
|
34
|
+
] })
|
|
35
|
+
] })
|
|
36
|
+
] });
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { ArtifactNameCell };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ThemeSwatch } from './chunk-MNFU2RNT.js';
|
|
2
|
-
import { useHighlightRest } from './chunk-
|
|
2
|
+
import { useHighlightRest } from './chunk-7KHM2FZH.js';
|
|
3
3
|
import { useRoving, tabStop } from './chunk-RKKO7QHH.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
5
|
import './ThemeGallery-X35Y25EX.css';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useFocusModality } from './chunk-
|
|
1
|
+
import { useFocusModality } from './chunk-NUZHC6MM.js';
|
|
2
2
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
-
import './Document-
|
|
3
|
+
import './Document-TZ2NBLOR.css';
|
|
4
4
|
import { forwardRef, useRef, useCallback, useLayoutEffect, useEffect } from 'react';
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
6
6
|
|