@crewlethq/ui 0.37.0 → 0.38.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 +58 -0
- package/dist/Accordion/index.js +1 -1
- package/dist/AgentHandoffPanel/index.js +5 -5
- package/dist/AppShell/index.d.ts +1 -0
- package/dist/AppShell/index.js +5 -3
- package/dist/{AppShell-JTSEOA57.css → AppShell-NDU4XMGF.css} +51 -6
- package/dist/ArrangeList/index.js +4 -4
- package/dist/ArtifactBar/index.js +9 -7
- package/dist/ArtifactCard/index.js +2 -2
- package/dist/ArtifactCover/index.js +3 -3
- package/dist/ArtifactMakeRow/ArtifactMakeRow.d.ts +3 -1
- package/dist/ArtifactMakeRow/index.d.ts +1 -0
- package/dist/ArtifactMakeRow/index.js +2 -1
- package/dist/{ArtifactMakeRow-XBA2MPSY.css → ArtifactMakeRow-6UX2LTF7.css} +49 -6
- package/dist/AuthLayout/index.js +2 -2
- 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/Card/index.js +1 -1
- package/dist/{Card-QOVASQNU.css → Card-G2ZGT5Z6.css} +43 -0
- 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 +3 -2
- 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/DescriptionList/DescriptionList.d.ts +12 -1
- package/dist/DescriptionList/index.js +1 -1
- package/dist/{DescriptionList-IXMRCSMK.css → DescriptionList-DEZISDLQ.css} +8 -1
- package/dist/Disclosure/index.js +1 -1
- package/dist/{Disclosure-VKBJJIZ7.css → Disclosure-P4FH3C35.css} +28 -2
- package/dist/DocTabsEditor/index.js +6 -6
- 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 +5 -5
- package/dist/Listbox/index.js +3 -2
- package/dist/{Listbox-6WJNJQVQ.css → Listbox-NQV6E3FS.css} +3 -0
- 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/PricingCard/index.js +2 -2
- 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 +9 -8
- 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 +6 -5
- 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/StatGroup/StatGroup.d.ts +11 -7
- package/dist/StatGroup/index.js +1 -1
- package/dist/StatGroup-DOFHX5QJ.css +168 -0
- package/dist/Switcher/index.js +8 -8
- package/dist/TableCells/index.js +2 -2
- 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/Tag/index.js +1 -1
- package/dist/{Tag-SRGTK5KI.css → Tag-2DQOVE6W.css} +15 -5
- package/dist/TagsInput/index.js +6 -6
- 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-H5NOLRGH.js → chunk-3V5T5K5H.js} +1 -1
- package/dist/{chunk-BIQDJOJZ.js → chunk-3ZUINC7C.js} +2 -2
- package/dist/{chunk-K4VP6ZKE.js → chunk-4BJK7FE5.js} +1 -1
- package/dist/chunk-4ISUIS6F.js +3 -0
- package/dist/{chunk-FG4O64DV.js → chunk-4L2BWSHR.js} +5 -5
- 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-66NGUD5S.js → chunk-6NNY5WBF.js} +8 -7
- 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-JML75PGJ.js → chunk-A23KDROH.js} +3 -3
- 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-AOLCZDZ6.js → chunk-BH52LIY6.js} +5 -5
- package/dist/{chunk-WX2NIG4G.js → chunk-BJI3RFXG.js} +1 -1
- package/dist/{chunk-JXRI5YD2.js → chunk-BT5H2THK.js} +2 -1
- package/dist/{chunk-FHHYXZSP.js → chunk-C7OKDYBH.js} +2 -2
- package/dist/{chunk-JBUMD6DS.js → chunk-CFGGE3HO.js} +1 -1
- package/dist/{chunk-WYKWXRJ4.js → chunk-CQFQGAZI.js} +1 -1
- 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-PGZ2R3ON.js → chunk-DYB66CNM.js} +23 -7
- 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-RH2NCQBZ.js → chunk-ETVEGR2Y.js} +2 -2
- 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-6ZJ3N7QI.js → chunk-I33UIUZD.js} +1 -1
- package/dist/{chunk-GRYZ5EP3.js → chunk-IPWU6ERC.js} +14 -3
- package/dist/{chunk-W3HYWD63.js → chunk-JZPK4IXR.js} +16 -9
- package/dist/{chunk-K3IJQNB7.js → chunk-KHJIEPZV.js} +3 -2
- package/dist/{chunk-GFV4LJHH.js → chunk-KYIAFNU7.js} +1 -1
- package/dist/{chunk-F2XSYBKH.js → chunk-MFS6F2P7.js} +4 -1
- package/dist/chunk-MICRGE3J.js +1 -0
- package/dist/{chunk-PGRPNDWM.js → chunk-NR4CPM4T.js} +1 -1
- package/dist/{chunk-5WDXPHEW.js → chunk-NRBAXRWE.js} +1 -1
- package/dist/{chunk-YSGLEHND.js → chunk-NUZHC6MM.js} +14 -2
- package/dist/{chunk-WGD2HX2A.js → chunk-OED6LUWE.js} +1 -1
- package/dist/{chunk-MICH6QSJ.js → chunk-OGXHZHRX.js} +1 -1
- package/dist/{chunk-OHA6WSAG.js → chunk-OTCXRJ7D.js} +1 -1
- package/dist/{chunk-N5SKHIAP.js → chunk-PAQXOP2M.js} +8 -6
- package/dist/{chunk-KJW2AS57.js → chunk-PEUGPAKH.js} +1 -1
- package/dist/{chunk-IPAU6FLH.js → chunk-PPHTIKZO.js} +1 -1
- package/dist/{chunk-44WJLPQS.js → chunk-PT6WKXKW.js} +2 -2
- package/dist/{chunk-P6WFZDKS.js → chunk-PWG3VHRQ.js} +2 -2
- package/dist/{chunk-EAKC24BW.js → chunk-R2IBCEU6.js} +16 -4
- 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-DQSXWQMJ.js → chunk-U3ILLCR2.js} +1 -1
- package/dist/{chunk-L4WZSVMT.js → chunk-UB6MLXUL.js} +3 -3
- package/dist/{chunk-EARDAJQY.js → chunk-UWRBD2YO.js} +2 -2
- package/dist/{chunk-F23N4MVU.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-EOQFPZEE.js → chunk-XBURIXHO.js} +2 -2
- package/dist/{chunk-VKKUGZ3G.js → chunk-XQZ6EWOE.js} +8 -5
- package/dist/{chunk-TVRBQMIX.js → chunk-YPMGP2X4.js} +6 -6
- package/dist/{chunk-GS7ZTHPF.js → chunk-YQG4PZGC.js} +7 -7
- package/dist/{chunk-5QXRI35B.js → chunk-ZK3VYY7L.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/{chunk-RIAZM6L3.js → chunk-ZNOXQACX.js} +1 -1
- package/dist/generated/index.d.ts +1 -0
- package/dist/generated/index.js +106 -104
- package/dist/index.js +106 -104
- package/dist/styles.css +508 -102
- 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/StatGroup-PADTJCUQ.css +0 -86
- package/dist/chunk-WKEPORNM.js +0 -2
- /package/dist/{chunk-PNNYVN52.js → chunk-4QQ3MND5.js} +0 -0
|
@@ -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-IUYUS2SO.js';
|
|
5
|
+
import { Checkbox } from './chunk-AXS6MBNH.js';
|
|
7
6
|
import { Kbd } from './chunk-SMBKXWML.js';
|
|
8
|
-
import {
|
|
7
|
+
import { FormField, Input } from './chunk-TYONQSOK.js';
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import { diffLines, diffStat, collapseDiff, DiffSummary, DiffView } from './chunk-BVWSLXTY.js';
|
|
2
|
-
import { SegmentedControl } from './chunk-
|
|
2
|
+
import { SegmentedControl } from './chunk-2QZ2VPHR.js';
|
|
3
3
|
import { EmptyState } from './chunk-RA2ULG6H.js';
|
|
4
4
|
import { useHeadingLevel, headingTag, nextHeadingLevel, HeadingLevelProvider } from './chunk-PQADV6P6.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
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-
|
|
3
|
-
import { focusables } from './chunk-
|
|
2
|
+
import { CANVAS_COMPOSE_CONTEXT, CANVAS_FIT_MAX_ZOOM, Canvas } from './chunk-DAERKOOG.js';
|
|
3
|
+
import { focusables } from './chunk-H5XTJ7GJ.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
5
|
import './TreeCanvas-L2XYONWL.css';
|
|
6
6
|
import { useState, useRef, useMemo, useLayoutEffect, useCallback, useImperativeHandle, useId, useSyncExternalStore } from 'react';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { changeText, sheetLabels } from './chunk-LFSIKGRQ.js';
|
|
2
|
-
import { Tooltip } from './chunk-
|
|
2
|
+
import { Tooltip } from './chunk-I33UIUZD.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
4
|
import './ChangeMark-3VMTW7MT.css';
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { Modal } from './chunk-
|
|
2
|
-
import { useListbox, useOptionKeys } from './chunk-
|
|
1
|
+
import { Modal } from './chunk-SVGARBDY.js';
|
|
2
|
+
import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
|
|
3
|
+
import { Popover } from './chunk-KHJIEPZV.js';
|
|
3
4
|
import { KeyChip, highlightMatch } from './chunk-FYTIJM2T.js';
|
|
4
|
-
import { Popover } from './chunk-K3IJQNB7.js';
|
|
5
5
|
import { Skeleton } from './chunk-TEUQWOWZ.js';
|
|
6
|
-
import { Input } from './chunk-
|
|
7
|
-
import { useMediaMatch } from './chunk-RTPQDNW3.js';
|
|
8
|
-
import { focusables, isComposing } from './chunk-R25RGPUB.js';
|
|
6
|
+
import { Input } from './chunk-TYONQSOK.js';
|
|
9
7
|
import { announce } from './chunk-RSAQOKH3.js';
|
|
8
|
+
import { useMediaMatch } from './chunk-RTPQDNW3.js';
|
|
9
|
+
import { focusables, isComposing } from './chunk-H5XTJ7GJ.js';
|
|
10
|
+
import { returnFocus } from './chunk-NUZHC6MM.js';
|
|
10
11
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
11
12
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
12
13
|
import './Switcher-K3EPA2RB.css';
|
|
@@ -40,7 +41,7 @@ function Switcher({ label, open, onOpenChange, trigger, className, ...panel }) {
|
|
|
40
41
|
}, []);
|
|
41
42
|
function done() {
|
|
42
43
|
close();
|
|
43
|
-
if (place === "anchored") document.getElementById(triggerId)
|
|
44
|
+
if (place === "anchored") returnFocus(document.getElementById(triggerId));
|
|
44
45
|
}
|
|
45
46
|
function leave(back) {
|
|
46
47
|
const button = document.getElementById(triggerId);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { usePopupLayer, isComposing } from './chunk-
|
|
2
|
-
import './Listbox-
|
|
1
|
+
import { usePopupLayer, isComposing } from './chunk-H5XTJ7GJ.js';
|
|
2
|
+
import './Listbox-NQV6E3FS.css';
|
|
3
3
|
import { useState, useRef, useCallback, useEffect, useMemo } from 'react';
|
|
4
4
|
|
|
5
5
|
function useListbox({
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { useRoving, tabStop } from './chunk-RKKO7QHH.js';
|
|
2
2
|
import { Count } from './chunk-BHHIIK3M.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 './Tabs-WIF7457H.css';
|
|
6
8
|
import React, { useRef, useImperativeHandle, useLayoutEffect } from 'react';
|
|
7
9
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
8
10
|
|
|
@@ -75,6 +77,7 @@ function Tabs({
|
|
|
75
77
|
const isActive = value !== void 0 && value === item.value;
|
|
76
78
|
const tabClassName = cx(
|
|
77
79
|
"crewlet-tabs__tab",
|
|
80
|
+
HIT_AREA_CLASS,
|
|
78
81
|
isActive && "is-active",
|
|
79
82
|
item.disabled && "is-disabled"
|
|
80
83
|
);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useClipboard } from './chunk-STJ7QBC3.js';
|
|
2
|
-
import { Modal } from './chunk-
|
|
3
|
-
import { Checkbox } from './chunk-
|
|
2
|
+
import { Modal } from './chunk-SVGARBDY.js';
|
|
3
|
+
import { Checkbox } from './chunk-AXS6MBNH.js';
|
|
4
4
|
import { EmptyValue } from './chunk-EUCC37WY.js';
|
|
5
5
|
import { useCardHeaderSlot } from './chunk-AV2DXAEL.js';
|
|
6
|
-
import { Menu } from './chunk-
|
|
6
|
+
import { Menu } from './chunk-D6FEHY5G.js';
|
|
7
7
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
8
8
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
9
9
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isComposing, isModalLayerOpen } from './chunk-
|
|
1
|
+
import { isComposing, isModalLayerOpen } from './chunk-H5XTJ7GJ.js';
|
|
2
2
|
import { useRef, useEffect } from 'react';
|
|
3
3
|
|
|
4
4
|
var TYPING_ROLES = /* @__PURE__ */ new Set(["combobox", "listbox", "textbox", "searchbox", "spinbutton"]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Toolbar } from './chunk-
|
|
2
|
-
import { ShortcutTip } from './chunk-
|
|
1
|
+
import { Toolbar } from './chunk-NR4CPM4T.js';
|
|
2
|
+
import { ShortcutTip } from './chunk-DAERKOOG.js';
|
|
3
3
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
5
|
import './CanvasToolbar-EM5EVZED.css';
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Tag } from './chunk-
|
|
2
|
-
import { useListbox } from './chunk-
|
|
3
|
-
import { useFocusModality } from './chunk-YSGLEHND.js';
|
|
4
|
-
import { isComposing } from './chunk-R25RGPUB.js';
|
|
1
|
+
import { Tag } from './chunk-KYIAFNU7.js';
|
|
2
|
+
import { useListbox } from './chunk-7KHM2FZH.js';
|
|
5
3
|
import { announce } from './chunk-RSAQOKH3.js';
|
|
4
|
+
import { isComposing } from './chunk-H5XTJ7GJ.js';
|
|
6
5
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
6
|
+
import { useFocusModality } from './chunk-NUZHC6MM.js';
|
|
7
7
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
8
|
-
import './TagsInput-
|
|
8
|
+
import './TagsInput-CLFHP6I2.css';
|
|
9
9
|
import { forwardRef, useState, useRef, useId, useImperativeHandle, useEffect, useMemo, useLayoutEffect } from 'react';
|
|
10
10
|
import { CheckGlyph, ChevronLeftGlyph, ChevronRightGlyph } from '@crewlethq/icons/glyphs';
|
|
11
11
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
2
|
-
import './StatGroup-
|
|
2
|
+
import './StatGroup-DOFHX5QJ.css';
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
5
5
|
function StatGroup({ columns = 4, flush = false, className, children, ...rest }) {
|
|
@@ -8,6 +8,7 @@ function StatGroup({ columns = 4, flush = false, className, children, ...rest })
|
|
|
8
8
|
{
|
|
9
9
|
...rest,
|
|
10
10
|
className: cx("crewlet-stat-group", flush && "crewlet-stat-group--flush", className),
|
|
11
|
+
"data-columns": columns,
|
|
11
12
|
style: { "--crewlet-stat-group-cols": columns, ...rest.style },
|
|
12
13
|
children
|
|
13
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
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-B5UHX5UC.js';
|
|
3
|
+
import { IDENTITY_VIEW, Canvas } from './chunk-DAERKOOG.js';
|
|
4
4
|
import { IconButton } from './chunk-4FQT6ZAY.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
6
6
|
import './CanvasBoard-TS4P356F.css';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
2
|
-
import './LivePreview-
|
|
2
|
+
import './LivePreview-KQEDMQCY.css';
|
|
3
3
|
import { createContext, useMemo, useContext, useRef, useState, useCallback, useEffect, useLayoutEffect } from 'react';
|
|
4
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
5
|
|
|
@@ -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,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-NDU4XMGF.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,
|
|
@@ -120,6 +122,16 @@ function AppShell({
|
|
|
120
122
|
},
|
|
121
123
|
[mainRef]
|
|
122
124
|
);
|
|
125
|
+
const [gutter, setGutter] = useState(0);
|
|
126
|
+
useLayoutEffect(() => {
|
|
127
|
+
if (!scroller) return void 0;
|
|
128
|
+
const measure = () => setGutter(Math.max(0, scroller.offsetWidth - scroller.clientWidth));
|
|
129
|
+
measure();
|
|
130
|
+
if (typeof ResizeObserver === "undefined") return void 0;
|
|
131
|
+
const observer = new ResizeObserver(measure);
|
|
132
|
+
observer.observe(scroller);
|
|
133
|
+
return () => observer.disconnect();
|
|
134
|
+
}, [scroller]);
|
|
123
135
|
const shell = {
|
|
124
136
|
narrow,
|
|
125
137
|
drawerOpen,
|
|
@@ -143,7 +155,11 @@ function AppShell({
|
|
|
143
155
|
!shell.hasRail && "crewlet-app-shell--no-rail",
|
|
144
156
|
className
|
|
145
157
|
),
|
|
146
|
-
style:
|
|
158
|
+
style: {
|
|
159
|
+
...style,
|
|
160
|
+
["--crewlet-app-shell-gutter"]: `${gutter}px`,
|
|
161
|
+
...drawerZ === null ? null : { ["--crewlet-app-shell-drawer-z"]: String(drawerZ) }
|
|
162
|
+
},
|
|
147
163
|
children: [
|
|
148
164
|
/* @__PURE__ */ jsx(
|
|
149
165
|
"a",
|
|
@@ -286,7 +302,7 @@ var AppShellRailRow = forwardRef(function AppShellRailRow2({
|
|
|
286
302
|
{
|
|
287
303
|
ref,
|
|
288
304
|
type: "button",
|
|
289
|
-
className: cx(shape, "crewlet-app-shell__rail-row--action"),
|
|
305
|
+
className: cx(shape, "crewlet-app-shell__rail-row--action", HIT_AREA_CLASS),
|
|
290
306
|
"aria-label": label,
|
|
291
307
|
"aria-expanded": expanded,
|
|
292
308
|
"aria-haspopup": haspopup,
|
|
@@ -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,7 +1,7 @@
|
|
|
1
|
-
import { Textarea } from './chunk-IUYUS2SO.js';
|
|
2
1
|
import { Kbd } from './chunk-SMBKXWML.js';
|
|
2
|
+
import { Textarea } from './chunk-TYONQSOK.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,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,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,8 +1,10 @@
|
|
|
1
|
-
import { Tag } from './chunk-
|
|
1
|
+
import { Tag } from './chunk-KYIAFNU7.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,21 +1,21 @@
|
|
|
1
1
|
import { TagGroup } from './chunk-O2EGEONV.js';
|
|
2
2
|
import { CursorFlag } from './chunk-3BYIWOTV.js';
|
|
3
3
|
import { presenceHueClass } from './chunk-I6POAB4V.js';
|
|
4
|
-
import { Tag } from './chunk-
|
|
4
|
+
import { Tag } from './chunk-KYIAFNU7.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,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]
|