@crewlethq/ui 0.44.0 → 0.46.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 +34 -2
- package/dist/AccessDeniedCard/index.js +2 -2
- package/dist/AgentHandoffPanel/index.js +6 -3
- package/dist/AppShell/index.js +3 -3
- package/dist/ArrangeList/index.js +5 -3
- package/dist/ArtifactBar/index.js +5 -5
- package/dist/ArtifactCard/index.js +3 -3
- package/dist/AsideLayout/AsideLayout.d.ts +24 -0
- package/dist/AsideLayout/index.d.ts +3 -0
- package/dist/AsideLayout/index.js +2 -0
- package/dist/AsideLayout-TH5SQZNK.css +45 -0
- package/dist/AvatarPicker/index.js +6 -6
- package/dist/Canvas/index.js +1 -1
- package/dist/CanvasBoard/index.js +1 -1
- package/dist/CanvasToolbar/index.js +1 -1
- package/dist/CatalogTile/index.js +1 -1
- package/dist/{CatalogTile-VPSLCKJE.css → CatalogTile-26XN7L2A.css} +13 -7
- package/dist/CharacterCount/CharacterCount.d.ts +63 -0
- package/dist/CharacterCount/index.d.ts +3 -0
- package/dist/CharacterCount/index.js +4 -0
- package/dist/CharacterCount-S735DICR.css +29 -0
- package/dist/Checkbox/index.js +5 -2
- package/dist/Combobox/index.js +5 -3
- package/dist/CommandPalette/index.js +6 -4
- package/dist/CommentThread/index.js +7 -4
- package/dist/Composer/index.js +5 -2
- package/dist/ConfirmField/index.js +5 -2
- package/dist/DataGrid/index.js +2 -2
- package/dist/DataTable/index.js +8 -6
- package/dist/DataView/index.js +10 -8
- package/dist/DateTimePicker/index.js +1 -1
- package/dist/DocTabsEditor/index.js +5 -4
- package/dist/EditingStatus/index.js +2 -1
- package/dist/{Editor-FXO2JVWK.js → Editor-6FXHMW64.js} +5 -3
- package/dist/EmptyState/EmptyState.d.ts +9 -2
- package/dist/EmptyState/index.js +1 -1
- package/dist/{EmptyState-C6HRBGT7.css → EmptyState-7L4UAQBX.css} +34 -0
- package/dist/FollowBanner/index.js +2 -2
- package/dist/HuePicker/index.js +5 -5
- package/dist/InlineEditor/InlineEditor.d.ts +86 -0
- package/dist/InlineEditor/index.d.ts +3 -0
- package/dist/InlineEditor/index.js +9 -0
- package/dist/InlineEditor-W55DDKML.css +72 -0
- package/dist/Input/FormField.d.ts +18 -1
- package/dist/Input/Textarea.d.ts +16 -0
- package/dist/Input/index.d.ts +2 -2
- package/dist/Input/index.js +4 -1
- package/dist/{Input-OQZBCRX5.css → Input-VDSV7VWJ.css} +19 -0
- package/dist/LinkInterstitial/index.js +3 -3
- package/dist/List/List.d.ts +16 -1
- package/dist/List/index.js +1 -1
- package/dist/{List-YHLIZFK4.css → List-XY445TKY.css} +31 -0
- package/dist/ListInput/ListInput.d.ts +87 -2
- package/dist/ListInput/index.d.ts +2 -2
- package/dist/ListInput/index.js +5 -2
- package/dist/{ListInput-O7LJKOIG.css → ListInput-DP2CSJ22.css} +118 -2
- package/dist/MarkdownEditor/index.js +5 -5
- package/dist/Menu/index.js +2 -2
- package/dist/MergeConflicts/index.js +5 -5
- package/dist/Modal/index.js +2 -2
- package/dist/PresenterView/index.js +3 -3
- package/dist/PrincipalPicker/index.js +6 -4
- package/dist/RelatedRow/index.js +2 -2
- package/dist/RichEditor/index.js +1 -1
- package/dist/SegmentedControl/index.js +4 -4
- package/dist/Select/index.js +1 -1
- package/dist/ShareDialog/index.js +3 -3
- package/dist/SheetColumnEditor/index.js +10 -8
- package/dist/SheetGrid/index.js +4 -4
- package/dist/SlideCompare/index.js +1 -1
- package/dist/SlideFilmstrip/index.js +3 -3
- package/dist/Statement/Statement.d.ts +45 -0
- package/dist/Statement/index.d.ts +3 -0
- package/dist/Statement/index.js +4 -0
- package/dist/Statement-M4QDXIMO.css +53 -0
- package/dist/Switcher/index.js +5 -4
- package/dist/Tabs/index.js +3 -3
- package/dist/Text/Text.d.ts +8 -0
- package/dist/Text/index.js +1 -1
- package/dist/{Text-S3Q4O3IG.css → Text-XOCOU34C.css} +9 -0
- package/dist/ThemeSwitcher/index.js +5 -5
- package/dist/TileGrid/index.js +1 -1
- package/dist/{TileGrid-I6LNYD2H.css → TileGrid-UYMVVVJK.css} +30 -0
- package/dist/TimeWindowPicker/index.js +5 -3
- package/dist/TreeCanvas/index.js +1 -1
- package/dist/VersionCompare/index.js +6 -6
- package/dist/{chunk-5AHDGYKN.js → chunk-2KQR6JKE.js} +2 -2
- package/dist/{chunk-NVMZQ3Y4.js → chunk-2LPNWAN6.js} +2 -2
- package/dist/{chunk-XIDD7PJO.js → chunk-2MYSESZF.js} +1 -1
- package/dist/{chunk-MVGCZ655.js → chunk-2UVMIM2J.js} +1 -1
- package/dist/{chunk-NF6SWHQI.js → chunk-32MTQ6DN.js} +2 -2
- package/dist/{chunk-QOP7QYUW.js → chunk-34RMTXDZ.js} +1 -1
- package/dist/{chunk-Q7HLZH32.js → chunk-3QSKDZR5.js} +1 -1
- package/dist/{chunk-BVFMLSE3.js → chunk-5EBDOE3C.js} +1 -1
- package/dist/{chunk-BF5WV7NM.js → chunk-6FVGSWLS.js} +1 -1
- package/dist/chunk-7P336RA5.js +147 -0
- package/dist/{chunk-UAGDFEBG.js → chunk-DY4DQ7EB.js} +1 -1
- package/dist/{chunk-4DIKLY53.js → chunk-HBSR5DL6.js} +1 -1
- package/dist/{chunk-KA75QPFM.js → chunk-ILFEWRLG.js} +1 -1
- package/dist/{chunk-AACPFUZW.js → chunk-KOJKX3U6.js} +4 -4
- package/dist/chunk-KY65C4XS.js +12 -0
- package/dist/{chunk-FG243QHY.js → chunk-KZDMAQNJ.js} +1 -1
- package/dist/{chunk-TC7DJTXI.js → chunk-MULOZYHL.js} +2 -0
- package/dist/chunk-MZJKPTA5.js +36 -0
- package/dist/{chunk-ZUTUI27P.js → chunk-N4GBDK4L.js} +1 -1
- package/dist/{chunk-7CXGSS7D.js → chunk-O6H5XXVK.js} +1 -1
- package/dist/{chunk-RA2ULG6H.js → chunk-PPUR46MK.js} +10 -1
- package/dist/{chunk-GI3S6RMM.js → chunk-PWZT6CZY.js} +3 -3
- package/dist/{chunk-NNTO3TNC.js → chunk-Q6CQMS6R.js} +1 -1
- package/dist/{chunk-IKBK4A5O.js → chunk-QP2P6GDQ.js} +1 -1
- package/dist/{chunk-KV3ODJXH.js → chunk-QTMUKRTN.js} +1 -1
- package/dist/{chunk-W53CWWX3.js → chunk-RCKRJXFV.js} +2 -2
- package/dist/{chunk-IUQQGIHL.js → chunk-RFPCHMSX.js} +2 -2
- package/dist/{chunk-X6IJ7DAX.js → chunk-RL75QTNT.js} +2 -2
- package/dist/{chunk-N3SHQ3VU.js → chunk-RRPQMMCZ.js} +1 -1
- package/dist/{chunk-EY7LACIR.js → chunk-RWET7W22.js} +1 -1
- package/dist/{chunk-TVSHR35W.js → chunk-RWWLVDRE.js} +1 -1
- package/dist/{chunk-LSRQJDGR.js → chunk-SEPSXOGJ.js} +1 -1
- package/dist/{chunk-MCOC3KQA.js → chunk-SQ4JFHO7.js} +1 -1
- package/dist/chunk-SQZEVWVC.js +436 -0
- package/dist/{chunk-DL5ERIFF.js → chunk-SS4XCUUJ.js} +2 -2
- package/dist/{chunk-GPIRKHGS.js → chunk-T7DXSFUX.js} +1 -1
- package/dist/{chunk-NZWX27J7.js → chunk-TDQ262TB.js} +19 -3
- package/dist/{chunk-5GNA4RKP.js → chunk-TGSIVB6H.js} +1 -1
- package/dist/{chunk-UO5VJHWP.js → chunk-U4HOKU6P.js} +2 -2
- package/dist/chunk-XCUUI7E7.js +62 -0
- package/dist/{chunk-ENHLVF6Q.js → chunk-XS2FJVMT.js} +1 -1
- package/dist/{chunk-FV6H7H5I.js → chunk-YBJVIY5E.js} +4 -4
- package/dist/{chunk-6MAQ2SVP.js → chunk-YR3ZURBM.js} +3 -3
- package/dist/{chunk-ZI5G5RS7.js → chunk-Z734SV4E.js} +55 -8
- package/dist/{chunk-OWIGEE2Y.js → chunk-ZZCCNVF3.js} +3 -3
- package/dist/generated/index.d.ts +4 -0
- package/dist/generated/index.js +95 -91
- package/dist/index.js +95 -91
- package/dist/styles.css +472 -16
- package/package.json +3 -3
- package/dist/chunk-NMYGJJJK.js +0 -263
- package/dist/{chunk-VXCT6L3F.js → chunk-245IXG5P.js} +0 -0
- package/dist/{chunk-OED6LUWE.js → chunk-4A4QG6UC.js} +1 -1
- package/dist/{chunk-FYINAYAJ.js → chunk-6AKG2VLR.js} +1 -1
- package/dist/{chunk-E6HXFFWO.js → chunk-ISDEXIXH.js} +1 -1
- package/dist/{chunk-U2XAJONO.js → chunk-OKE5YSLD.js} +1 -1
- package/dist/{chunk-PCI7ZJ6Z.js → chunk-TMM32U7D.js} +1 -1
package/dist/Switcher/index.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
export { Switcher } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { Switcher } from '../chunk-32MTQ6DN.js';
|
|
2
|
+
import '../chunk-6AKG2VLR.js';
|
|
3
3
|
import '../chunk-7KHM2FZH.js';
|
|
4
4
|
import '../chunk-KHJIEPZV.js';
|
|
5
5
|
import '../chunk-FYTIJM2T.js';
|
|
6
6
|
import '../chunk-TEUQWOWZ.js';
|
|
7
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-Z734SV4E.js';
|
|
8
|
+
import '../chunk-XCUUI7E7.js';
|
|
8
9
|
import '../chunk-PQADV6P6.js';
|
|
9
10
|
import '../chunk-RSAQOKH3.js';
|
|
10
11
|
import '../chunk-RTPQDNW3.js';
|
|
11
12
|
import '../chunk-OMV5W53A.js';
|
|
12
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
13
13
|
import '../chunk-OG6CL3EB.js';
|
|
14
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
14
15
|
import '../chunk-LACA4JGC.js';
|
|
15
16
|
import '../chunk-NUZHC6MM.js';
|
|
16
17
|
import '../chunk-BZFWDIV6.js';
|
package/dist/Tabs/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { TabPanel, Tabs, tabId } from '../chunk-
|
|
1
|
+
export { TabPanel, Tabs, tabId } from '../chunk-ILFEWRLG.js';
|
|
2
2
|
import '../chunk-WIATRXEJ.js';
|
|
3
3
|
import '../chunk-EGMQURBR.js';
|
|
4
4
|
import '../chunk-BHHIIK3M.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-TMM32U7D.js';
|
|
6
6
|
import '../chunk-OMV5W53A.js';
|
|
7
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
8
7
|
import '../chunk-2YTOOH3A.js';
|
|
9
8
|
import '../chunk-OG6CL3EB.js';
|
|
9
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
10
10
|
import '../chunk-LACA4JGC.js';
|
|
11
11
|
import '../chunk-NUZHC6MM.js';
|
|
12
12
|
import '../chunk-BZFWDIV6.js';
|
package/dist/Text/Text.d.ts
CHANGED
|
@@ -7,6 +7,14 @@ import type { ElementType, HTMLAttributes } from 'react';
|
|
|
7
7
|
export type TextVariant =
|
|
8
8
|
/** Body copy, 14px. The default, and the only one that needs no thought. */
|
|
9
9
|
'body'
|
|
10
|
+
/**
|
|
11
|
+
* Words somebody wrote to be read whole, at the body's size: a mission on
|
|
12
|
+
* its card, a policy, a comment. The relaxed leading, the author's own line
|
|
13
|
+
* breaks kept, balanced last lines, and a long word or address broken
|
|
14
|
+
* rather than pushed past the column. Body copy reflows what it is given;
|
|
15
|
+
* a passage keeps it as it was written.
|
|
16
|
+
*/
|
|
17
|
+
| 'passage'
|
|
10
18
|
/** A value inside a dense row or table cell, 13px. */
|
|
11
19
|
| 'cell'
|
|
12
20
|
/** Metadata under or beside a value, 12px, on the tertiary step. */
|
package/dist/Text/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { Text } from '../chunk-
|
|
1
|
+
export { Text } from '../chunk-QP2P6GDQ.js';
|
|
2
2
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -66,6 +66,15 @@
|
|
|
66
66
|
color: var(--color-text-primary);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
.crewlet-text--passage {
|
|
70
|
+
font-size: var(--font-size-sm);
|
|
71
|
+
line-height: var(--font-line-height-relaxed);
|
|
72
|
+
color: var(--color-text-primary);
|
|
73
|
+
white-space: pre-wrap;
|
|
74
|
+
overflow-wrap: anywhere;
|
|
75
|
+
text-wrap: pretty;
|
|
76
|
+
}
|
|
77
|
+
|
|
69
78
|
.crewlet-text--cell {
|
|
70
79
|
font-size: var(--font-size-compact);
|
|
71
80
|
line-height: var(--font-line-height-snug);
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
export { DensitySwitcher, ThemeSwitcher } from '../chunk-
|
|
1
|
+
export { DensitySwitcher, ThemeSwitcher } from '../chunk-SEPSXOGJ.js';
|
|
2
2
|
export { applyStoredPreferences, resolveTheme, useDensityPreference, useSystemTheme, useThemePreference } from '../chunk-Z24ZUSTX.js';
|
|
3
3
|
export { DENSITY_PREFERENCES, PALETTE_ID, THEME_PREFERENCES, applyDensity, applyPalette, applyTheme, isDensityPreference, isPaletteId, isThemePreference } from '../chunk-ZXXDZJQN.js';
|
|
4
4
|
import '../chunk-OOC7Q67K.js';
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-6FVGSWLS.js';
|
|
6
|
+
import '../chunk-ILFEWRLG.js';
|
|
7
7
|
import '../chunk-WIATRXEJ.js';
|
|
8
8
|
import '../chunk-EGMQURBR.js';
|
|
9
9
|
import '../chunk-BHHIIK3M.js';
|
|
10
|
-
import '../chunk-
|
|
10
|
+
import '../chunk-TMM32U7D.js';
|
|
11
11
|
import '../chunk-OMV5W53A.js';
|
|
12
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
13
12
|
import '../chunk-2YTOOH3A.js';
|
|
14
13
|
import '../chunk-OG6CL3EB.js';
|
|
14
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
15
15
|
import '../chunk-LACA4JGC.js';
|
|
16
16
|
import '../chunk-NUZHC6MM.js';
|
|
17
17
|
import '../chunk-BZFWDIV6.js';
|
package/dist/TileGrid/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { TileGrid } from '../chunk-
|
|
1
|
+
export { TileGrid } from '../chunk-Q6CQMS6R.js';
|
|
2
2
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -50,3 +50,33 @@
|
|
|
50
50
|
--crewlet-tile-grid-tracks: 1;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
+
|
|
54
|
+
/*
|
|
55
|
+
* COMPACT TILES FOLD WIDER. A compact `CatalogTile` puts its mark, name,
|
|
56
|
+
* state, fact and action on ONE line, which needs about 30rem; the folds above
|
|
57
|
+
* are sized for a comfortable tile, whose parts stack. Measured at a 1024px
|
|
58
|
+
* window, two compact tiles on 415px tracks cut the name to its first letter.
|
|
59
|
+
* So a grid holding a compact tile folds where a track would be narrower than
|
|
60
|
+
* 30rem, counting the gaps: two tracks need 61rem, three 92rem (folding
|
|
61
|
+
* straight to one, as three always do), and four 123rem before they go to
|
|
62
|
+
* two. Declared here, on the grid, because the grid chooses the track count
|
|
63
|
+
* and the tile cannot.
|
|
64
|
+
*/
|
|
65
|
+
@container crewlet-tile-grid (width < 123rem) {
|
|
66
|
+
.crewlet-tile-grid[data-columns='4']:has(.crewlet-catalog-tile--compact) > .crewlet-tile-grid__track {
|
|
67
|
+
--crewlet-tile-grid-tracks: 2;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@container crewlet-tile-grid (width < 92rem) {
|
|
72
|
+
.crewlet-tile-grid[data-columns='3']:has(.crewlet-catalog-tile--compact) > .crewlet-tile-grid__track {
|
|
73
|
+
--crewlet-tile-grid-tracks: 1;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@container crewlet-tile-grid (width < 61rem) {
|
|
78
|
+
/* As specific as the two rules above and after them, so it wins at every count. */
|
|
79
|
+
.crewlet-tile-grid[data-columns]:has(.crewlet-catalog-tile--compact) > .crewlet-tile-grid__track {
|
|
80
|
+
--crewlet-tile-grid-tracks: 1;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-
|
|
1
|
+
export { DEFAULT_TIME_WINDOW_LABELS, TIME_WINDOW_SPANS, TimeWindowPicker, describeTimeWindow, isTimeWindowSet, parseTimeWindowDuration, resolveTimeWindow, timeWindowMatchesPreset } from '../chunk-RL75QTNT.js';
|
|
2
2
|
import '../chunk-XQZ6EWOE.js';
|
|
3
3
|
import '../chunk-7KHM2FZH.js';
|
|
4
4
|
import '../chunk-KHJIEPZV.js';
|
|
5
5
|
import '../chunk-GXQ3B46I.js';
|
|
6
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-Z734SV4E.js';
|
|
7
|
+
import '../chunk-XCUUI7E7.js';
|
|
7
8
|
import '../chunk-PQADV6P6.js';
|
|
9
|
+
import '../chunk-RSAQOKH3.js';
|
|
8
10
|
import '../chunk-OMV5W53A.js';
|
|
9
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
10
11
|
import '../chunk-2YTOOH3A.js';
|
|
11
12
|
import '../chunk-OG6CL3EB.js';
|
|
13
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
12
14
|
import '../chunk-LACA4JGC.js';
|
|
13
15
|
import '../chunk-NUZHC6MM.js';
|
|
14
16
|
import '../chunk-BZFWDIV6.js';
|
package/dist/TreeCanvas/index.js
CHANGED
|
@@ -5,8 +5,8 @@ import '../chunk-LM3ISVJA.js';
|
|
|
5
5
|
import '../chunk-I33UIUZD.js';
|
|
6
6
|
import '../chunk-SMBKXWML.js';
|
|
7
7
|
import '../chunk-OMV5W53A.js';
|
|
8
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
9
8
|
import '../chunk-OG6CL3EB.js';
|
|
9
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
10
10
|
import '../chunk-LACA4JGC.js';
|
|
11
11
|
import '../chunk-NUZHC6MM.js';
|
|
12
12
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-
|
|
1
|
+
export { VERSION_COMPARE_LABELS, VERSION_COMPARE_LENSES, VersionCompare } from '../chunk-RFPCHMSX.js';
|
|
2
2
|
import '../chunk-BVWSLXTY.js';
|
|
3
3
|
import '../chunk-OOC7Q67K.js';
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-6FVGSWLS.js';
|
|
5
|
+
import '../chunk-ILFEWRLG.js';
|
|
6
6
|
import '../chunk-WIATRXEJ.js';
|
|
7
7
|
import '../chunk-EGMQURBR.js';
|
|
8
|
-
import '../chunk-
|
|
8
|
+
import '../chunk-PPUR46MK.js';
|
|
9
9
|
import '../chunk-BHHIIK3M.js';
|
|
10
10
|
import '../chunk-PQADV6P6.js';
|
|
11
|
-
import '../chunk-
|
|
11
|
+
import '../chunk-TMM32U7D.js';
|
|
12
12
|
import '../chunk-OMV5W53A.js';
|
|
13
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
14
13
|
import '../chunk-2YTOOH3A.js';
|
|
15
14
|
import '../chunk-OG6CL3EB.js';
|
|
15
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
16
16
|
import '../chunk-LACA4JGC.js';
|
|
17
17
|
import '../chunk-NUZHC6MM.js';
|
|
18
18
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useMediaMatch } from './chunk-RTPQDNW3.js';
|
|
2
|
-
import { Menu } from './chunk-
|
|
3
|
-
import { useModalLayer, focusables } from './chunk-H5XTJ7GJ.js';
|
|
2
|
+
import { Menu } from './chunk-TMM32U7D.js';
|
|
4
3
|
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
4
|
+
import { useModalLayer, focusables } from './chunk-H5XTJ7GJ.js';
|
|
5
5
|
import { IconButton } from './chunk-LACA4JGC.js';
|
|
6
6
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
7
7
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Document } from './chunk-PWG3VHRQ.js';
|
|
2
1
|
import { PrincipalAvatar } from './chunk-CI3VPIJN.js';
|
|
3
2
|
import { toInstant, RelativeTime, formatExact, toISO } from './chunk-3CZ7XAVY.js';
|
|
4
|
-
import {
|
|
3
|
+
import { Document } from './chunk-PWG3VHRQ.js';
|
|
4
|
+
import { Composer } from './chunk-O6H5XXVK.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 { useListbox } from './chunk-7KHM2FZH.js';
|
|
2
|
-
import { Input } from './chunk-
|
|
2
|
+
import { Input } from './chunk-Z734SV4E.js';
|
|
3
3
|
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
4
4
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
5
5
|
import './HitArea-QUOS6ZDJ.css';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Modal } from './chunk-
|
|
1
|
+
import { Modal } from './chunk-6AKG2VLR.js';
|
|
2
2
|
import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
|
|
3
3
|
import { Popover } from './chunk-KHJIEPZV.js';
|
|
4
4
|
import { KeyChip, highlightMatch } from './chunk-FYTIJM2T.js';
|
|
5
5
|
import { Skeleton } from './chunk-TEUQWOWZ.js';
|
|
6
|
-
import { Input } from './chunk-
|
|
6
|
+
import { Input } from './chunk-Z734SV4E.js';
|
|
7
7
|
import { announce } from './chunk-RSAQOKH3.js';
|
|
8
8
|
import { useMediaMatch } from './chunk-RTPQDNW3.js';
|
|
9
9
|
import { focusables, isComposing } from './chunk-H5XTJ7GJ.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Select } from './chunk-XQZ6EWOE.js';
|
|
2
2
|
import { CopyButton } from './chunk-7SHAFLEX.js';
|
|
3
|
-
import { Modal } from './chunk-
|
|
3
|
+
import { Modal } from './chunk-6AKG2VLR.js';
|
|
4
4
|
import { Callout } from './chunk-SZZRIHGT.js';
|
|
5
5
|
import { PrincipalAvatar } from './chunk-CI3VPIJN.js';
|
|
6
6
|
import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { EditingStatus } from './chunk-MULOZYHL.js';
|
|
2
|
+
import { Kbd } from './chunk-SMBKXWML.js';
|
|
3
|
+
import { Button } from './chunk-OG6CL3EB.js';
|
|
4
|
+
import { isComposing } from './chunk-H5XTJ7GJ.js';
|
|
5
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
6
|
+
import './InlineEditor-W55DDKML.css';
|
|
7
|
+
import { useRef, useLayoutEffect } from 'react';
|
|
8
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
9
|
+
|
|
10
|
+
var INLINE_EDITOR_LABELS = {
|
|
11
|
+
save: "Save",
|
|
12
|
+
cancel: "Cancel",
|
|
13
|
+
unchanged: "Nothing has changed yet.",
|
|
14
|
+
invalid: "Fix the highlighted field first.",
|
|
15
|
+
saving: "Saving. Wait for it to finish.",
|
|
16
|
+
shortcut: "to save"
|
|
17
|
+
};
|
|
18
|
+
function firstField(root) {
|
|
19
|
+
return root.querySelector(
|
|
20
|
+
'textarea:not([disabled]), input:not([disabled]):not([type="hidden"]), select:not([disabled]), [contenteditable="true"]'
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
function InlineEditor({
|
|
24
|
+
label,
|
|
25
|
+
children,
|
|
26
|
+
onSave,
|
|
27
|
+
onCancel,
|
|
28
|
+
dirty,
|
|
29
|
+
saving = false,
|
|
30
|
+
invalid = false,
|
|
31
|
+
error,
|
|
32
|
+
notice,
|
|
33
|
+
focusOnMount = true,
|
|
34
|
+
shortcutHint = true,
|
|
35
|
+
secondaryActions,
|
|
36
|
+
labels: overrides,
|
|
37
|
+
className,
|
|
38
|
+
onKeyDown,
|
|
39
|
+
...rest
|
|
40
|
+
}) {
|
|
41
|
+
const labels = { ...INLINE_EDITOR_LABELS, ...overrides };
|
|
42
|
+
const form = useRef(null);
|
|
43
|
+
const focusAtMount = useRef(focusOnMount);
|
|
44
|
+
useLayoutEffect(() => {
|
|
45
|
+
if (!focusAtMount.current || !form.current) return;
|
|
46
|
+
const field = firstField(form.current);
|
|
47
|
+
if (!field) return;
|
|
48
|
+
field.focus();
|
|
49
|
+
if (field instanceof HTMLTextAreaElement || field instanceof HTMLInputElement) {
|
|
50
|
+
const end = field.value.length;
|
|
51
|
+
try {
|
|
52
|
+
field.setSelectionRange(end, end);
|
|
53
|
+
} catch {
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}, []);
|
|
57
|
+
const blocked = saving ? labels.saving : invalid ? labels.invalid : !dirty ? labels.unchanged : null;
|
|
58
|
+
const save = () => {
|
|
59
|
+
if (blocked === null) onSave();
|
|
60
|
+
};
|
|
61
|
+
const submit = (event) => {
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
save();
|
|
64
|
+
};
|
|
65
|
+
const keys = (event) => {
|
|
66
|
+
onKeyDown?.(event);
|
|
67
|
+
if (event.defaultPrevented || isComposing(event)) return;
|
|
68
|
+
if (event.key === "Escape") {
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
if (!saving) onCancel();
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (event.key !== "Enter") return;
|
|
74
|
+
if ((event.metaKey || event.ctrlKey) && !event.altKey) {
|
|
75
|
+
event.preventDefault();
|
|
76
|
+
save();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (event.target instanceof HTMLInputElement) event.preventDefault();
|
|
80
|
+
};
|
|
81
|
+
return (
|
|
82
|
+
/*
|
|
83
|
+
* THE FORM LISTENS FOR ITS TWO KEYS, as React's own handler rather than a
|
|
84
|
+
* native one, because React's runs after every handler inside it: that is
|
|
85
|
+
* what lets an open menu's Escape close the menu and stop there. A
|
|
86
|
+
* native listener on the form would hear the key first, before anything
|
|
87
|
+
* inside had the chance to claim it.
|
|
88
|
+
*/
|
|
89
|
+
// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- see above
|
|
90
|
+
/* @__PURE__ */ jsxs(
|
|
91
|
+
"form",
|
|
92
|
+
{
|
|
93
|
+
...rest,
|
|
94
|
+
ref: form,
|
|
95
|
+
"aria-label": label,
|
|
96
|
+
"aria-busy": saving || void 0,
|
|
97
|
+
noValidate: true,
|
|
98
|
+
className: cx("crewlet-inline-editor", className),
|
|
99
|
+
onSubmit: submit,
|
|
100
|
+
onKeyDown: keys,
|
|
101
|
+
children: [
|
|
102
|
+
/* @__PURE__ */ jsx("div", { className: "crewlet-inline-editor__fields", children }),
|
|
103
|
+
notice ? /* @__PURE__ */ jsx("div", { className: "crewlet-inline-editor__notice", children: notice }) : null,
|
|
104
|
+
error ? /* @__PURE__ */ jsx("div", { className: "crewlet-inline-editor__error", role: "alert", children: error }) : null,
|
|
105
|
+
/* @__PURE__ */ jsxs("div", { className: "crewlet-inline-editor__bar", children: [
|
|
106
|
+
/* @__PURE__ */ jsxs("span", { className: "crewlet-inline-editor__start", children: [
|
|
107
|
+
/* @__PURE__ */ jsx(EditingStatus, { dirty, saving, labels: labels.status }),
|
|
108
|
+
secondaryActions
|
|
109
|
+
] }),
|
|
110
|
+
/* @__PURE__ */ jsxs("span", { className: "crewlet-inline-editor__end", children: [
|
|
111
|
+
shortcutHint ? /* @__PURE__ */ jsxs("span", { className: "crewlet-inline-editor__hint", children: [
|
|
112
|
+
/* @__PURE__ */ jsx(Kbd, { keys: ["Mod", "Enter"], subtle: true }),
|
|
113
|
+
" ",
|
|
114
|
+
labels.shortcut
|
|
115
|
+
] }) : null,
|
|
116
|
+
/* @__PURE__ */ jsx(
|
|
117
|
+
Button,
|
|
118
|
+
{
|
|
119
|
+
size: "small",
|
|
120
|
+
variant: "ghost",
|
|
121
|
+
...saving ? { disabledReason: labels.saving } : {},
|
|
122
|
+
onClick: () => {
|
|
123
|
+
if (!saving) onCancel();
|
|
124
|
+
},
|
|
125
|
+
children: labels.cancel
|
|
126
|
+
}
|
|
127
|
+
),
|
|
128
|
+
/* @__PURE__ */ jsx(
|
|
129
|
+
Button,
|
|
130
|
+
{
|
|
131
|
+
size: "small",
|
|
132
|
+
variant: "primary",
|
|
133
|
+
type: "submit",
|
|
134
|
+
loading: saving,
|
|
135
|
+
...blocked !== null && !saving ? { disabledReason: blocked } : {},
|
|
136
|
+
children: labels.save
|
|
137
|
+
}
|
|
138
|
+
)
|
|
139
|
+
] })
|
|
140
|
+
] })
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
)
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export { INLINE_EDITOR_LABELS, InlineEditor };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ConfirmModal } from './chunk-FYINAYAJ.js';
|
|
2
1
|
import { InlineCode } from './chunk-5CLW2CXT.js';
|
|
2
|
+
import { ConfirmModal } from './chunk-6AKG2VLR.js';
|
|
3
3
|
import { Callout } from './chunk-SZZRIHGT.js';
|
|
4
4
|
import './LinkInterstitial-ET4MSVSV.css';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { StatusDot } from './chunk-WIATRXEJ.js';
|
|
2
2
|
import { useRoving, tabStop } from './chunk-EGMQURBR.js';
|
|
3
3
|
import { Count } from './chunk-BHHIIK3M.js';
|
|
4
|
-
import { Menu } from './chunk-
|
|
4
|
+
import { Menu } from './chunk-TMM32U7D.js';
|
|
5
5
|
import { HIT_AREA_CLASS } from './chunk-2YTOOH3A.js';
|
|
6
6
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
7
7
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { PageHeader } from './chunk-HOXGBLEY.js';
|
|
2
2
|
import { DateTimePicker } from './chunk-UFXLNC2N.js';
|
|
3
|
-
import { DataTable } from './chunk-
|
|
3
|
+
import { DataTable } from './chunk-PWZT6CZY.js';
|
|
4
4
|
import { useListbox, useOptionKeys } from './chunk-7KHM2FZH.js';
|
|
5
|
-
import { Popover } from './chunk-KHJIEPZV.js';
|
|
6
5
|
import { Toolbar } from './chunk-NR4CPM4T.js';
|
|
6
|
+
import { Popover } from './chunk-KHJIEPZV.js';
|
|
7
7
|
import { RelativeTime } from './chunk-3CZ7XAVY.js';
|
|
8
|
-
import { Input } from './chunk-
|
|
8
|
+
import { Input } from './chunk-Z734SV4E.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-TMM32U7D.js';
|
|
12
12
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
13
13
|
import { IconButton } from './chunk-LACA4JGC.js';
|
|
14
14
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
2
|
+
import './AsideLayout-TH5SQZNK.css';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
function AsideLayout({ children, aside, asideLabel, className, ...rest }) {
|
|
6
|
+
return /* @__PURE__ */ jsx("div", { ...rest, className: cx("crewlet-aside-layout", className), children: /* @__PURE__ */ jsxs("div", { className: "crewlet-aside-layout__columns", children: [
|
|
7
|
+
/* @__PURE__ */ jsx("div", { className: "crewlet-aside-layout__main", children }),
|
|
8
|
+
/* @__PURE__ */ jsx("aside", { className: "crewlet-aside-layout__aside", "aria-label": asideLabel, children: aside })
|
|
9
|
+
] }) });
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { AsideLayout };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
1
2
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
2
3
|
import './EditingStatus-NNA2CKIL.css';
|
|
3
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -19,6 +20,7 @@ function EditingStatus({ dirty, saving = false, labels, className }) {
|
|
|
19
20
|
children: [
|
|
20
21
|
/* @__PURE__ */ jsx("span", { className: "crewlet-editing-status__dot", "aria-hidden": "true" }),
|
|
21
22
|
/* @__PURE__ */ jsx("span", { className: "crewlet-editing-status__label", children: text.editing }),
|
|
23
|
+
state && /* @__PURE__ */ jsx(VisuallyHidden, { children: ", " }),
|
|
22
24
|
state && /* @__PURE__ */ jsx("span", { className: "crewlet-editing-status__state", children: state })
|
|
23
25
|
]
|
|
24
26
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { EmptyState } from './chunk-PPUR46MK.js';
|
|
2
|
+
import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
|
|
3
|
+
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
|
+
import './Statement-M4QDXIMO.css';
|
|
5
|
+
import { useId } from 'react';
|
|
6
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
function Statement({ label, children, empty, headingLevel, className, ...rest }) {
|
|
9
|
+
const contextLevel = useHeadingLevel();
|
|
10
|
+
const Heading = headingTag(headingLevel ?? contextLevel);
|
|
11
|
+
const id = useId();
|
|
12
|
+
const written = !(children === void 0 || children === null || children === "" || children === false);
|
|
13
|
+
return /* @__PURE__ */ jsxs(
|
|
14
|
+
"section",
|
|
15
|
+
{
|
|
16
|
+
"aria-labelledby": id,
|
|
17
|
+
...rest,
|
|
18
|
+
className: cx("crewlet-statement", !written && "crewlet-statement--empty", className),
|
|
19
|
+
children: [
|
|
20
|
+
/* @__PURE__ */ jsx(Heading, { id, className: "crewlet-statement__label", children: label }),
|
|
21
|
+
written ? typeof children === "string" || typeof children === "number" ? /* @__PURE__ */ jsx("div", { className: "crewlet-statement__text", children }) : /* @__PURE__ */ jsx("div", { className: "crewlet-statement__body", children }) : /* @__PURE__ */ jsx(
|
|
22
|
+
EmptyState,
|
|
23
|
+
{
|
|
24
|
+
size: "inline",
|
|
25
|
+
headingLevel: "none",
|
|
26
|
+
title: empty.title,
|
|
27
|
+
description: empty.description,
|
|
28
|
+
action: empty.action
|
|
29
|
+
}
|
|
30
|
+
)
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export { Statement };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useHeadingLevel, headingTag } from './chunk-PQADV6P6.js';
|
|
2
2
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
-
import './EmptyState-
|
|
3
|
+
import './EmptyState-7L4UAQBX.css';
|
|
4
4
|
import { InboxGlyph } from '@crewlethq/icons/glyphs';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -18,6 +18,15 @@ function EmptyState({
|
|
|
18
18
|
const contextLevel = useHeadingLevel();
|
|
19
19
|
const level = headingLevel ?? contextLevel;
|
|
20
20
|
const Heading = level === "none" ? "div" : headingTag(level);
|
|
21
|
+
if (size === "inline") {
|
|
22
|
+
return /* @__PURE__ */ jsxs("div", { ...rest, className: cx("crewlet-empty-state", "crewlet-empty-state--inline", className), children: [
|
|
23
|
+
/* @__PURE__ */ jsxs("div", { className: "crewlet-empty-state__text", children: [
|
|
24
|
+
/* @__PURE__ */ jsx(Heading, { className: "crewlet-empty-state__title", children: title }),
|
|
25
|
+
/* @__PURE__ */ jsx("p", { className: "crewlet-empty-state__description", children: description })
|
|
26
|
+
] }),
|
|
27
|
+
action ? /* @__PURE__ */ jsx("div", { className: "crewlet-empty-state__action", children: action }) : null
|
|
28
|
+
] });
|
|
29
|
+
}
|
|
21
30
|
return /* @__PURE__ */ jsxs("div", { ...rest, className: cx("crewlet-empty-state", `crewlet-empty-state--${size}`, className), children: [
|
|
22
31
|
/* @__PURE__ */ jsx("span", { className: "crewlet-empty-state__mark", "aria-hidden": true, children: illustration ?? icon ?? /* @__PURE__ */ jsx(InboxGlyph, { size: size === "compact" ? "xl" : 32 }) }),
|
|
23
32
|
/* @__PURE__ */ jsx(Heading, { className: "crewlet-empty-state__title", children: title }),
|
|
@@ -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-6AKG2VLR.js';
|
|
3
|
+
import { Checkbox } from './chunk-RWET7W22.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-TMM32U7D.js';
|
|
7
7
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
8
8
|
import { IconButton } from './chunk-LACA4JGC.js';
|
|
9
9
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useReorder } from './chunk-XJ2QEBMM.js';
|
|
2
|
-
import { Input } from './chunk-
|
|
3
|
-
import { Menu } from './chunk-
|
|
2
|
+
import { Input } from './chunk-Z734SV4E.js';
|
|
3
|
+
import { Menu } from './chunk-TMM32U7D.js';
|
|
4
4
|
import { IconButton } from './chunk-LACA4JGC.js';
|
|
5
5
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
6
6
|
import { cx } from './chunk-ODEQTPFM.js';
|