@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/styles.css
CHANGED
|
@@ -3986,6 +3986,54 @@ a.crewlet-make-row__item:active {
|
|
|
3986
3986
|
}
|
|
3987
3987
|
|
|
3988
3988
|
|
|
3989
|
+
/* AsideLayout-TH5SQZNK.css */
|
|
3990
|
+
/*
|
|
3991
|
+
* AsideLayout: a main column with an aside beside it from 56rem of its own
|
|
3992
|
+
* width, and after it below that (AsideLayout.tsx).
|
|
3993
|
+
*/
|
|
3994
|
+
|
|
3995
|
+
.crewlet-aside-layout {
|
|
3996
|
+
container-type: inline-size;
|
|
3997
|
+
min-width: 0;
|
|
3998
|
+
}
|
|
3999
|
+
|
|
4000
|
+
.crewlet-aside-layout__columns {
|
|
4001
|
+
display: grid;
|
|
4002
|
+
grid-template-columns: minmax(0, 1fr);
|
|
4003
|
+
align-items: start;
|
|
4004
|
+
gap: var(--spacing-7);
|
|
4005
|
+
}
|
|
4006
|
+
|
|
4007
|
+
/* EACH COLUMN IS A STACK one step apart, so the blocks in it stand apart
|
|
4008
|
+
evenly without each carrying a margin of its own. */
|
|
4009
|
+
.crewlet-aside-layout__main,
|
|
4010
|
+
.crewlet-aside-layout__aside {
|
|
4011
|
+
display: flex;
|
|
4012
|
+
flex-direction: column;
|
|
4013
|
+
gap: var(--spacing-6);
|
|
4014
|
+
min-width: 0;
|
|
4015
|
+
}
|
|
4016
|
+
|
|
4017
|
+
/* FOLLOWING THE MAIN COLUMN, the aside is set off by one hairline, so its
|
|
4018
|
+
facts read as about the page rather than as more of it. */
|
|
4019
|
+
.crewlet-aside-layout__aside {
|
|
4020
|
+
padding-top: var(--spacing-6);
|
|
4021
|
+
border-top: 1px solid var(--color-border-default);
|
|
4022
|
+
}
|
|
4023
|
+
|
|
4024
|
+
@container (min-width: 56rem) {
|
|
4025
|
+
.crewlet-aside-layout__columns {
|
|
4026
|
+
grid-template-columns: minmax(0, 1fr) var(--crewlet-aside-layout-aside, 18rem);
|
|
4027
|
+
gap: var(--spacing-8);
|
|
4028
|
+
}
|
|
4029
|
+
|
|
4030
|
+
.crewlet-aside-layout__aside {
|
|
4031
|
+
padding-top: 0;
|
|
4032
|
+
border-top: 0;
|
|
4033
|
+
}
|
|
4034
|
+
}
|
|
4035
|
+
|
|
4036
|
+
|
|
3989
4037
|
/* AuthLayout-ODHBUPHQ.css */
|
|
3990
4038
|
/*
|
|
3991
4039
|
* The sign-in page: one narrow column near the top of the window.
|
|
@@ -6958,7 +7006,7 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
6958
7006
|
}
|
|
6959
7007
|
|
|
6960
7008
|
|
|
6961
|
-
/* CatalogTile-
|
|
7009
|
+
/* CatalogTile-26XN7L2A.css */
|
|
6962
7010
|
/*
|
|
6963
7011
|
* CatalogTile: mark, name and state, one sentence, and a foot with a quiet
|
|
6964
7012
|
* fact and one action.
|
|
@@ -7117,20 +7165,25 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
7117
7165
|
height: var(--size-row-sm);
|
|
7118
7166
|
}
|
|
7119
7167
|
|
|
7168
|
+
/*
|
|
7169
|
+
* THE NAME IS NEVER CUT. It is what the tile is: "C…" names nothing. Where
|
|
7170
|
+
* the line is short of room the state and the fact wrap under the name rather
|
|
7171
|
+
* than squeezing it, and a name longer than the whole line wraps at a word.
|
|
7172
|
+
* The grid folds a compact tile's tracks before it comes to that (see
|
|
7173
|
+
* TileGrid.css), so the wrap is the fallback and not the layout.
|
|
7174
|
+
*/
|
|
7120
7175
|
.crewlet-catalog-tile--compact .crewlet-catalog-tile__title {
|
|
7121
7176
|
flex: 1 1 auto;
|
|
7122
7177
|
flex-direction: row;
|
|
7178
|
+
flex-wrap: wrap;
|
|
7123
7179
|
align-items: center;
|
|
7124
|
-
gap: var(--spacing-2);
|
|
7180
|
+
gap: 0 var(--spacing-2);
|
|
7125
7181
|
padding-top: 0;
|
|
7126
7182
|
}
|
|
7127
7183
|
|
|
7128
7184
|
.crewlet-catalog-tile--compact .crewlet-catalog-tile__name {
|
|
7129
|
-
flex: 0
|
|
7130
|
-
|
|
7131
|
-
overflow: hidden;
|
|
7132
|
-
text-overflow: ellipsis;
|
|
7133
|
-
white-space: nowrap;
|
|
7185
|
+
flex: 0 0 auto;
|
|
7186
|
+
max-width: 100%;
|
|
7134
7187
|
}
|
|
7135
7188
|
|
|
7136
7189
|
.crewlet-catalog-tile--compact .crewlet-catalog-tile__status {
|
|
@@ -7138,7 +7191,8 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
7138
7191
|
}
|
|
7139
7192
|
|
|
7140
7193
|
.crewlet-catalog-tile--compact .crewlet-catalog-tile__meta {
|
|
7141
|
-
flex:
|
|
7194
|
+
flex: none;
|
|
7195
|
+
max-width: 100%;
|
|
7142
7196
|
}
|
|
7143
7197
|
|
|
7144
7198
|
.crewlet-catalog-tile--compact .crewlet-catalog-tile__description {
|
|
@@ -7176,6 +7230,38 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
7176
7230
|
}
|
|
7177
7231
|
|
|
7178
7232
|
|
|
7233
|
+
/* CharacterCount-S735DICR.css */
|
|
7234
|
+
/*
|
|
7235
|
+
* The count of a limited field (CharacterCount.tsx): the help line's own small
|
|
7236
|
+
* step, in its quiet ink until the limit is close.
|
|
7237
|
+
*/
|
|
7238
|
+
|
|
7239
|
+
.crewlet-character-count {
|
|
7240
|
+
flex: none;
|
|
7241
|
+
font-size: var(--font-size-xs);
|
|
7242
|
+
line-height: var(--font-line-height-normal);
|
|
7243
|
+
/* Figures of one width, so the count does not shift as a digit changes. */
|
|
7244
|
+
font-variant-numeric: tabular-nums;
|
|
7245
|
+
color: var(--color-text-tertiary);
|
|
7246
|
+
white-space: nowrap;
|
|
7247
|
+
}
|
|
7248
|
+
|
|
7249
|
+
.crewlet-character-count__of {
|
|
7250
|
+
margin-inline: 0.15em;
|
|
7251
|
+
}
|
|
7252
|
+
|
|
7253
|
+
.crewlet-character-count--near {
|
|
7254
|
+
color: var(--color-feedback-warning-ink);
|
|
7255
|
+
}
|
|
7256
|
+
|
|
7257
|
+
/* Past the limit the count is the refusal's ink and weight, so the number
|
|
7258
|
+
that says what to fix is the loudest thing on the line. */
|
|
7259
|
+
.crewlet-character-count--over {
|
|
7260
|
+
color: var(--color-feedback-danger-ink);
|
|
7261
|
+
font-weight: var(--font-weight-medium);
|
|
7262
|
+
}
|
|
7263
|
+
|
|
7264
|
+
|
|
7179
7265
|
/* CharacterPicker-ZEYIKUNQ.css */
|
|
7180
7266
|
/*
|
|
7181
7267
|
* The grid of characters.
|
|
@@ -14926,7 +15012,7 @@ svg.crewlet-datetime__chevron {
|
|
|
14926
15012
|
}
|
|
14927
15013
|
|
|
14928
15014
|
|
|
14929
|
-
/* EmptyState-
|
|
15015
|
+
/* EmptyState-7L4UAQBX.css */
|
|
14930
15016
|
/*
|
|
14931
15017
|
* The empty state.
|
|
14932
15018
|
*
|
|
@@ -15001,6 +15087,40 @@ svg.crewlet-datetime__chevron {
|
|
|
15001
15087
|
margin-top: var(--spacing-2);
|
|
15002
15088
|
}
|
|
15003
15089
|
|
|
15090
|
+
/*
|
|
15091
|
+
* INLINE: one left-aligned row on a dashed hairline, the sentence beside its
|
|
15092
|
+
* action. The dash says "nothing here yet" without a glyph, and the box keeps
|
|
15093
|
+
* the place the content will take, so the page does not move when it is
|
|
15094
|
+
* filled. Narrow, the action wraps under the words.
|
|
15095
|
+
*/
|
|
15096
|
+
.crewlet-empty-state--inline {
|
|
15097
|
+
flex-direction: row;
|
|
15098
|
+
flex-wrap: wrap;
|
|
15099
|
+
justify-content: space-between;
|
|
15100
|
+
gap: var(--spacing-2) var(--spacing-4);
|
|
15101
|
+
padding: var(--spacing-3) var(--spacing-4);
|
|
15102
|
+
border: 1px dashed var(--color-border-default);
|
|
15103
|
+
border-radius: var(--radius-md);
|
|
15104
|
+
text-align: start;
|
|
15105
|
+
}
|
|
15106
|
+
|
|
15107
|
+
.crewlet-empty-state__text {
|
|
15108
|
+
display: flex;
|
|
15109
|
+
flex: 1 1 16rem;
|
|
15110
|
+
flex-direction: column;
|
|
15111
|
+
gap: var(--spacing-1);
|
|
15112
|
+
min-width: 0;
|
|
15113
|
+
}
|
|
15114
|
+
|
|
15115
|
+
.crewlet-empty-state--inline .crewlet-empty-state__description {
|
|
15116
|
+
max-width: var(--size-measure);
|
|
15117
|
+
}
|
|
15118
|
+
|
|
15119
|
+
.crewlet-empty-state--inline .crewlet-empty-state__action {
|
|
15120
|
+
flex: none;
|
|
15121
|
+
margin-top: 0;
|
|
15122
|
+
}
|
|
15123
|
+
|
|
15004
15124
|
|
|
15005
15125
|
/* EmptyValue-4B6ODXHT.css */
|
|
15006
15126
|
/*
|
|
@@ -16405,7 +16525,82 @@ a.crewlet-icon-btn {
|
|
|
16405
16525
|
}
|
|
16406
16526
|
|
|
16407
16527
|
|
|
16408
|
-
/*
|
|
16528
|
+
/* InlineEditor-W55DDKML.css */
|
|
16529
|
+
/*
|
|
16530
|
+
* InlineEditor: one record's fields, then a bar. It draws no surface of its
|
|
16531
|
+
* own, so it reads as the card or the section it is opened in rather than as
|
|
16532
|
+
* a form dropped on top of it.
|
|
16533
|
+
*/
|
|
16534
|
+
|
|
16535
|
+
.crewlet-inline-editor {
|
|
16536
|
+
display: flex;
|
|
16537
|
+
flex-direction: column;
|
|
16538
|
+
gap: var(--spacing-3);
|
|
16539
|
+
min-width: 0;
|
|
16540
|
+
margin: 0;
|
|
16541
|
+
}
|
|
16542
|
+
|
|
16543
|
+
.crewlet-inline-editor__fields {
|
|
16544
|
+
display: flex;
|
|
16545
|
+
flex-direction: column;
|
|
16546
|
+
gap: var(--spacing-4);
|
|
16547
|
+
min-width: 0;
|
|
16548
|
+
}
|
|
16549
|
+
|
|
16550
|
+
.crewlet-inline-editor__error {
|
|
16551
|
+
font-size: var(--font-size-sm);
|
|
16552
|
+
line-height: var(--font-line-height-normal);
|
|
16553
|
+
color: var(--color-feedback-danger-ink);
|
|
16554
|
+
}
|
|
16555
|
+
|
|
16556
|
+
/*
|
|
16557
|
+
* THE BAR: the status at its start, the two controls at its end, on one line
|
|
16558
|
+
* where there is room. On a narrow card it wraps whole, the controls keeping
|
|
16559
|
+
* their order at the end, so Save is never the control that falls off.
|
|
16560
|
+
*/
|
|
16561
|
+
.crewlet-inline-editor__bar {
|
|
16562
|
+
display: flex;
|
|
16563
|
+
flex-wrap: wrap;
|
|
16564
|
+
align-items: center;
|
|
16565
|
+
justify-content: space-between;
|
|
16566
|
+
gap: var(--spacing-2) var(--spacing-3);
|
|
16567
|
+
padding-top: var(--spacing-3);
|
|
16568
|
+
border-top-width: 1px;
|
|
16569
|
+
border-top-style: solid;
|
|
16570
|
+
border-top-color: var(--color-border-default);
|
|
16571
|
+
}
|
|
16572
|
+
|
|
16573
|
+
.crewlet-inline-editor__start,
|
|
16574
|
+
.crewlet-inline-editor__end {
|
|
16575
|
+
display: inline-flex;
|
|
16576
|
+
align-items: center;
|
|
16577
|
+
gap: var(--spacing-2);
|
|
16578
|
+
min-width: 0;
|
|
16579
|
+
}
|
|
16580
|
+
|
|
16581
|
+
.crewlet-inline-editor__end {
|
|
16582
|
+
margin-inline-start: auto;
|
|
16583
|
+
}
|
|
16584
|
+
|
|
16585
|
+
.crewlet-inline-editor__hint {
|
|
16586
|
+
display: inline-flex;
|
|
16587
|
+
align-items: center;
|
|
16588
|
+
gap: var(--spacing-1);
|
|
16589
|
+
font-size: var(--font-size-xs);
|
|
16590
|
+
color: var(--color-text-tertiary);
|
|
16591
|
+
white-space: nowrap;
|
|
16592
|
+
}
|
|
16593
|
+
|
|
16594
|
+
/* A touch screen has no Mod+Enter to press: the hint goes where no keyboard
|
|
16595
|
+
is the main way in. */
|
|
16596
|
+
@media (hover: none) and (pointer: coarse) {
|
|
16597
|
+
.crewlet-inline-editor__hint {
|
|
16598
|
+
display: none;
|
|
16599
|
+
}
|
|
16600
|
+
}
|
|
16601
|
+
|
|
16602
|
+
|
|
16603
|
+
/* Input-VDSV7VWJ.css */
|
|
16409
16604
|
/*
|
|
16410
16605
|
* The form row: Input, Textarea, Label, FormField, FormRow, FormSection and
|
|
16411
16606
|
* ReadOnlyField.
|
|
@@ -16969,6 +17164,25 @@ a.crewlet-icon-btn {
|
|
|
16969
17164
|
color: var(--color-text-tertiary);
|
|
16970
17165
|
}
|
|
16971
17166
|
|
|
17167
|
+
/*
|
|
17168
|
+
* THE HELP LINE WITH A COUNT AT ITS END (`limit`). The help wraps in the room
|
|
17169
|
+
* the count leaves, and the count keeps its width and its line: it is the
|
|
17170
|
+
* figure a writer glances at, so it does not move as the sentence beside it
|
|
17171
|
+
* wraps.
|
|
17172
|
+
*/
|
|
17173
|
+
.crewlet-form-field__meta {
|
|
17174
|
+
display: flex;
|
|
17175
|
+
align-items: flex-start;
|
|
17176
|
+
justify-content: space-between;
|
|
17177
|
+
gap: var(--spacing-3);
|
|
17178
|
+
}
|
|
17179
|
+
|
|
17180
|
+
.crewlet-form-field__meta > .crewlet-form-field__helper,
|
|
17181
|
+
.crewlet-form-field__meta-spacer {
|
|
17182
|
+
flex: 1;
|
|
17183
|
+
min-width: 0;
|
|
17184
|
+
}
|
|
17185
|
+
|
|
16972
17186
|
/* SHOWN ONLY WHILE THE FIELD HAS FOCUS (`helperOnFocus`): a dense form reads as
|
|
16973
17187
|
labels and values at rest, and the sentence appears under the field the
|
|
16974
17188
|
reader is in. Still described, so a screen reader hears it on entry. */
|
|
@@ -17719,7 +17933,7 @@ a.crewlet-icon-btn {
|
|
|
17719
17933
|
}
|
|
17720
17934
|
|
|
17721
17935
|
|
|
17722
|
-
/* List-
|
|
17936
|
+
/* List-XY445TKY.css */
|
|
17723
17937
|
/*
|
|
17724
17938
|
* The non-tabular list. One row recipe, four framings.
|
|
17725
17939
|
*
|
|
@@ -17888,6 +18102,37 @@ a.crewlet-icon-btn {
|
|
|
17888
18102
|
color: var(--color-text-tertiary);
|
|
17889
18103
|
}
|
|
17890
18104
|
|
|
18105
|
+
/*
|
|
18106
|
+
* COMPACT: a row a small step tall, in the body's size at its normal leading,
|
|
18107
|
+
* so a list of statements that each run to two lines still stands on one
|
|
18108
|
+
* screen. Only the rhythm changes; the number column, the rule between rows
|
|
18109
|
+
* and the inset a card gives them stay where they were.
|
|
18110
|
+
*/
|
|
18111
|
+
.crewlet-list--compact .crewlet-list__row {
|
|
18112
|
+
min-height: 0;
|
|
18113
|
+
padding-block: var(--spacing-1);
|
|
18114
|
+
}
|
|
18115
|
+
|
|
18116
|
+
.crewlet-list--compact.crewlet-list--numbered-divided .crewlet-list__row {
|
|
18117
|
+
padding-block: var(--spacing-2);
|
|
18118
|
+
font-size: var(--font-size-sm);
|
|
18119
|
+
line-height: var(--font-line-height-normal);
|
|
18120
|
+
text-wrap: pretty;
|
|
18121
|
+
}
|
|
18122
|
+
|
|
18123
|
+
/*
|
|
18124
|
+
* THE WORDS AT A READING MEASURE (`measure`), while the row and its rule
|
|
18125
|
+
* still span the list. In a card the width of the page a policy otherwise
|
|
18126
|
+
* runs to some 150 characters a line. A maximum, never a width.
|
|
18127
|
+
*/
|
|
18128
|
+
.crewlet-list--measure-normal .crewlet-list__content {
|
|
18129
|
+
max-inline-size: var(--size-measure);
|
|
18130
|
+
}
|
|
18131
|
+
|
|
18132
|
+
.crewlet-list--measure-wide .crewlet-list__content {
|
|
18133
|
+
max-inline-size: var(--size-measure-wide);
|
|
18134
|
+
}
|
|
18135
|
+
|
|
17891
18136
|
/* ---- States ------------------------------------------------------------ */
|
|
17892
18137
|
|
|
17893
18138
|
/*
|
|
@@ -17995,7 +18240,7 @@ a.crewlet-icon-btn {
|
|
|
17995
18240
|
}
|
|
17996
18241
|
|
|
17997
18242
|
|
|
17998
|
-
/* ListInput-
|
|
18243
|
+
/* ListInput-DP2CSJ22.css */
|
|
17999
18244
|
/*
|
|
18000
18245
|
* ListInput: an ordered list of sentences, written in the box at the top and
|
|
18001
18246
|
* listed under it.
|
|
@@ -18011,6 +18256,7 @@ a.crewlet-icon-btn {
|
|
|
18011
18256
|
.crewlet-list-input__add {
|
|
18012
18257
|
display: flex;
|
|
18013
18258
|
align-items: flex-start;
|
|
18259
|
+
gap: var(--spacing-2);
|
|
18014
18260
|
}
|
|
18015
18261
|
|
|
18016
18262
|
.crewlet-list-input__add > * {
|
|
@@ -18067,10 +18313,75 @@ a.crewlet-icon-btn {
|
|
|
18067
18313
|
border-block-end-style: none;
|
|
18068
18314
|
}
|
|
18069
18315
|
|
|
18070
|
-
|
|
18071
|
-
|
|
18316
|
+
/*
|
|
18317
|
+
* THE FIELD TAKES THE ROW'S WIDTH, and holds the control with whatever is
|
|
18318
|
+
* said under it (its count, its refusal) as one column, so a note under an
|
|
18319
|
+
* item sits under the item's words and not under its number or its buttons.
|
|
18320
|
+
*/
|
|
18321
|
+
.crewlet-list-input__field {
|
|
18322
|
+
display: flex;
|
|
18072
18323
|
flex: 1;
|
|
18324
|
+
flex-direction: column;
|
|
18325
|
+
min-width: 0;
|
|
18326
|
+
}
|
|
18327
|
+
|
|
18328
|
+
.crewlet-list-input__field > .crewlet-input,
|
|
18329
|
+
.crewlet-list-input__field > .crewlet-textarea,
|
|
18330
|
+
.crewlet-list-input__field > .crewlet-textarea-shell {
|
|
18331
|
+
width: 100%;
|
|
18332
|
+
min-width: 0;
|
|
18333
|
+
}
|
|
18334
|
+
|
|
18335
|
+
/* What is said under one item: its refusal at the start, its count at the end. */
|
|
18336
|
+
.crewlet-list-input__note {
|
|
18337
|
+
display: flex;
|
|
18338
|
+
align-items: flex-start;
|
|
18339
|
+
justify-content: space-between;
|
|
18340
|
+
gap: var(--spacing-3);
|
|
18341
|
+
padding-bottom: var(--spacing-1);
|
|
18342
|
+
}
|
|
18343
|
+
|
|
18344
|
+
.crewlet-list-input__error {
|
|
18073
18345
|
min-width: 0;
|
|
18346
|
+
font-size: var(--font-size-xs);
|
|
18347
|
+
line-height: var(--font-line-height-normal);
|
|
18348
|
+
color: var(--color-feedback-danger-ink);
|
|
18349
|
+
}
|
|
18350
|
+
|
|
18351
|
+
/*
|
|
18352
|
+
* THE ROW A REMOVED ITEM LEAVES (`undoRemove`): the item's own place in the
|
|
18353
|
+
* order, at a row's height and on the row's rule, saying what happened in the
|
|
18354
|
+
* quiet ink with Undo beside it, so the list does not close up over the place
|
|
18355
|
+
* an Undo would put it back.
|
|
18356
|
+
*/
|
|
18357
|
+
.crewlet-list-input__removed {
|
|
18358
|
+
display: flex;
|
|
18359
|
+
align-items: center;
|
|
18360
|
+
gap: var(--spacing-2);
|
|
18361
|
+
padding: var(--spacing-1) var(--spacing-3);
|
|
18362
|
+
border-block-end-width: 1px;
|
|
18363
|
+
border-block-end-style: solid;
|
|
18364
|
+
border-block-end-color: var(--color-border-default);
|
|
18365
|
+
background: var(--color-surface-subtle);
|
|
18366
|
+
}
|
|
18367
|
+
|
|
18368
|
+
.crewlet-list-input__removed:last-child {
|
|
18369
|
+
border-block-end-style: none;
|
|
18370
|
+
}
|
|
18371
|
+
|
|
18372
|
+
.crewlet-list-input__removed-text {
|
|
18373
|
+
flex: 1;
|
|
18374
|
+
min-width: 0;
|
|
18375
|
+
font-size: var(--font-size-compact);
|
|
18376
|
+
color: var(--color-text-secondary);
|
|
18377
|
+
}
|
|
18378
|
+
|
|
18379
|
+
/* Where the new-item box was, once the list holds all it may. */
|
|
18380
|
+
.crewlet-list-input__full {
|
|
18381
|
+
margin: 0;
|
|
18382
|
+
font-size: var(--font-size-xs);
|
|
18383
|
+
line-height: var(--font-line-height-normal);
|
|
18384
|
+
color: var(--color-text-tertiary);
|
|
18074
18385
|
}
|
|
18075
18386
|
|
|
18076
18387
|
/*
|
|
@@ -18138,10 +18449,60 @@ a.crewlet-icon-btn {
|
|
|
18138
18449
|
opacity: 1;
|
|
18139
18450
|
}
|
|
18140
18451
|
|
|
18452
|
+
/*
|
|
18453
|
+
* THE GRIP (`reorderByDrag`) waits with the move pair: the pointer's way to
|
|
18454
|
+
* take hold of a row, shown under the pointer and while the row holds the
|
|
18455
|
+
* focus, in the quiet ink so the row's number stays the first mark on it.
|
|
18456
|
+
*/
|
|
18457
|
+
.crewlet-list-input__handle {
|
|
18458
|
+
display: inline-flex;
|
|
18459
|
+
flex: none;
|
|
18460
|
+
align-items: center;
|
|
18461
|
+
justify-content: center;
|
|
18462
|
+
margin-inline-start: calc(var(--spacing-1) * -1);
|
|
18463
|
+
color: var(--color-text-tertiary);
|
|
18464
|
+
cursor: grab;
|
|
18465
|
+
opacity: 0;
|
|
18466
|
+
transition: opacity var(--motion-duration-fast) var(--motion-easing-default);
|
|
18467
|
+
}
|
|
18468
|
+
|
|
18469
|
+
.crewlet-list-input__handle:active {
|
|
18470
|
+
cursor: grabbing;
|
|
18471
|
+
}
|
|
18472
|
+
|
|
18473
|
+
.crewlet-list-input__item:hover .crewlet-list-input__handle,
|
|
18474
|
+
.crewlet-list-input__item:focus-within .crewlet-list-input__handle {
|
|
18475
|
+
opacity: 1;
|
|
18476
|
+
}
|
|
18477
|
+
|
|
18478
|
+
/* The row being dragged keeps its place as an outline, so the list does not
|
|
18479
|
+
close up under the pointer and the reader can see where it came from. */
|
|
18480
|
+
.crewlet-list-input__item[data-reorder='dragging'] {
|
|
18481
|
+
outline-width: 1px;
|
|
18482
|
+
outline-style: dashed;
|
|
18483
|
+
outline-color: var(--color-border-strong);
|
|
18484
|
+
outline-offset: -1px;
|
|
18485
|
+
}
|
|
18486
|
+
|
|
18487
|
+
.crewlet-list-input__item[data-reorder='dragging'] > * {
|
|
18488
|
+
opacity: 0.4;
|
|
18489
|
+
}
|
|
18490
|
+
|
|
18141
18491
|
@media (prefers-reduced-motion: reduce) {
|
|
18142
18492
|
.crewlet-list-input__move {
|
|
18143
18493
|
transition: none;
|
|
18144
18494
|
}
|
|
18495
|
+
|
|
18496
|
+
.crewlet-list-input__handle {
|
|
18497
|
+
transition: none;
|
|
18498
|
+
}
|
|
18499
|
+
}
|
|
18500
|
+
|
|
18501
|
+
/* With a hidden legend the add control stands at the end of the box's row. */
|
|
18502
|
+
.crewlet-list-input__add-control {
|
|
18503
|
+
display: inline-flex;
|
|
18504
|
+
flex: none;
|
|
18505
|
+
align-self: center;
|
|
18145
18506
|
}
|
|
18146
18507
|
|
|
18147
18508
|
|
|
@@ -27856,6 +28217,62 @@ svg.crewlet-select__chevron {
|
|
|
27856
28217
|
}
|
|
27857
28218
|
|
|
27858
28219
|
|
|
28220
|
+
/* Statement-M4QDXIMO.css */
|
|
28221
|
+
/*
|
|
28222
|
+
* Statement: a label over the words a page exists to say (Statement.tsx).
|
|
28223
|
+
*
|
|
28224
|
+
* THE LABEL IS THE MICRO REGISTER and the words are a step over the body, at
|
|
28225
|
+
* the reading measure, so the statement outweighs everything around it and a
|
|
28226
|
+
* line of it is one an eye can follow back.
|
|
28227
|
+
*/
|
|
28228
|
+
|
|
28229
|
+
.crewlet-statement {
|
|
28230
|
+
display: flex;
|
|
28231
|
+
flex-direction: column;
|
|
28232
|
+
gap: var(--spacing-2);
|
|
28233
|
+
margin: 0;
|
|
28234
|
+
min-width: 0;
|
|
28235
|
+
}
|
|
28236
|
+
|
|
28237
|
+
.crewlet-statement__label {
|
|
28238
|
+
margin: 0;
|
|
28239
|
+
font-size: var(--font-size-2xs);
|
|
28240
|
+
font-weight: var(--font-weight-medium);
|
|
28241
|
+
letter-spacing: var(--font-letter-spacing-wide);
|
|
28242
|
+
line-height: var(--font-line-height-snug);
|
|
28243
|
+
text-transform: uppercase;
|
|
28244
|
+
color: var(--color-text-tertiary);
|
|
28245
|
+
}
|
|
28246
|
+
|
|
28247
|
+
/* THE AUTHOR'S OWN LINE BREAKS are kept, and no word stands alone on the last
|
|
28248
|
+
line. A long word (an address, a product name) breaks rather than widening
|
|
28249
|
+
the column. */
|
|
28250
|
+
.crewlet-statement__text {
|
|
28251
|
+
margin: 0;
|
|
28252
|
+
max-width: var(--size-measure);
|
|
28253
|
+
font-size: var(--font-size-lg);
|
|
28254
|
+
line-height: var(--font-line-height-relaxed);
|
|
28255
|
+
color: var(--color-text-primary);
|
|
28256
|
+
white-space: pre-wrap;
|
|
28257
|
+
overflow-wrap: anywhere;
|
|
28258
|
+
text-wrap: pretty;
|
|
28259
|
+
}
|
|
28260
|
+
|
|
28261
|
+
/* A BLOCK under the label is drawn as given: its own register, the column's
|
|
28262
|
+
width. */
|
|
28263
|
+
.crewlet-statement__body {
|
|
28264
|
+
min-width: 0;
|
|
28265
|
+
}
|
|
28266
|
+
|
|
28267
|
+
/* ON A PHONE the words step down to the body's own step over it, so a
|
|
28268
|
+
mission is a paragraph rather than a poster. */
|
|
28269
|
+
@media (width < 640px) {
|
|
28270
|
+
.crewlet-statement__text {
|
|
28271
|
+
font-size: var(--font-size-md);
|
|
28272
|
+
}
|
|
28273
|
+
}
|
|
28274
|
+
|
|
28275
|
+
|
|
27859
28276
|
/* StatusDot-7OMCQCZF.css */
|
|
27860
28277
|
/*
|
|
27861
28278
|
* The status dot: a 7px mark in its tone's fill, beside the word it belongs
|
|
@@ -30325,7 +30742,7 @@ b.crewlet-switcher__match {
|
|
|
30325
30742
|
}
|
|
30326
30743
|
|
|
30327
30744
|
|
|
30328
|
-
/* Text-
|
|
30745
|
+
/* Text-XOCOU34C.css */
|
|
30329
30746
|
/*
|
|
30330
30747
|
* The type registers, one rule each.
|
|
30331
30748
|
*
|
|
@@ -30394,6 +30811,15 @@ b.crewlet-switcher__match {
|
|
|
30394
30811
|
color: var(--color-text-primary);
|
|
30395
30812
|
}
|
|
30396
30813
|
|
|
30814
|
+
.crewlet-text--passage {
|
|
30815
|
+
font-size: var(--font-size-sm);
|
|
30816
|
+
line-height: var(--font-line-height-relaxed);
|
|
30817
|
+
color: var(--color-text-primary);
|
|
30818
|
+
white-space: pre-wrap;
|
|
30819
|
+
overflow-wrap: anywhere;
|
|
30820
|
+
text-wrap: pretty;
|
|
30821
|
+
}
|
|
30822
|
+
|
|
30397
30823
|
.crewlet-text--cell {
|
|
30398
30824
|
font-size: var(--font-size-compact);
|
|
30399
30825
|
line-height: var(--font-line-height-snug);
|
|
@@ -30878,7 +31304,7 @@ b.crewlet-switcher__match {
|
|
|
30878
31304
|
}
|
|
30879
31305
|
|
|
30880
31306
|
|
|
30881
|
-
/* TileGrid-
|
|
31307
|
+
/* TileGrid-UYMVVVJK.css */
|
|
30882
31308
|
/*
|
|
30883
31309
|
* TileGrid: tiles on a fixed track count that folds by the grid's own width.
|
|
30884
31310
|
*
|
|
@@ -30932,6 +31358,36 @@ b.crewlet-switcher__match {
|
|
|
30932
31358
|
}
|
|
30933
31359
|
}
|
|
30934
31360
|
|
|
31361
|
+
/*
|
|
31362
|
+
* COMPACT TILES FOLD WIDER. A compact `CatalogTile` puts its mark, name,
|
|
31363
|
+
* state, fact and action on ONE line, which needs about 30rem; the folds above
|
|
31364
|
+
* are sized for a comfortable tile, whose parts stack. Measured at a 1024px
|
|
31365
|
+
* window, two compact tiles on 415px tracks cut the name to its first letter.
|
|
31366
|
+
* So a grid holding a compact tile folds where a track would be narrower than
|
|
31367
|
+
* 30rem, counting the gaps: two tracks need 61rem, three 92rem (folding
|
|
31368
|
+
* straight to one, as three always do), and four 123rem before they go to
|
|
31369
|
+
* two. Declared here, on the grid, because the grid chooses the track count
|
|
31370
|
+
* and the tile cannot.
|
|
31371
|
+
*/
|
|
31372
|
+
@container crewlet-tile-grid (width < 123rem) {
|
|
31373
|
+
.crewlet-tile-grid[data-columns='4']:has(.crewlet-catalog-tile--compact) > .crewlet-tile-grid__track {
|
|
31374
|
+
--crewlet-tile-grid-tracks: 2;
|
|
31375
|
+
}
|
|
31376
|
+
}
|
|
31377
|
+
|
|
31378
|
+
@container crewlet-tile-grid (width < 92rem) {
|
|
31379
|
+
.crewlet-tile-grid[data-columns='3']:has(.crewlet-catalog-tile--compact) > .crewlet-tile-grid__track {
|
|
31380
|
+
--crewlet-tile-grid-tracks: 1;
|
|
31381
|
+
}
|
|
31382
|
+
}
|
|
31383
|
+
|
|
31384
|
+
@container crewlet-tile-grid (width < 61rem) {
|
|
31385
|
+
/* As specific as the two rules above and after them, so it wins at every count. */
|
|
31386
|
+
.crewlet-tile-grid[data-columns]:has(.crewlet-catalog-tile--compact) > .crewlet-tile-grid__track {
|
|
31387
|
+
--crewlet-tile-grid-tracks: 1;
|
|
31388
|
+
}
|
|
31389
|
+
}
|
|
31390
|
+
|
|
30935
31391
|
|
|
30936
31392
|
/* TimeWindowPicker-I3HXC74I.css */
|
|
30937
31393
|
/*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crewlethq/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.46.0",
|
|
4
4
|
"description": "Crewlet shared React components built on @crewlethq/tokens and @crewlethq/icons.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"clean": "rm -rf dist src/generated"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@crewlethq/icons": "0.
|
|
46
|
-
"@crewlethq/tokens": "0.
|
|
45
|
+
"@crewlethq/icons": "0.46.0",
|
|
46
|
+
"@crewlethq/tokens": "0.46.0",
|
|
47
47
|
"prosemirror-commands": "1.7.2",
|
|
48
48
|
"prosemirror-gapcursor": "1.4.1",
|
|
49
49
|
"prosemirror-history": "1.5.1",
|