@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
|
@@ -1,4 +1,26 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The list a form would save: `value` with the new-item box's text appended,
|
|
4
|
+
* trimmed, when there is any.
|
|
5
|
+
*
|
|
6
|
+
* WHY A FORM NEEDS IT. Text typed into the new-item box is not an item until
|
|
7
|
+
* Enter adds it, and a writer who types a policy and presses the form's Save
|
|
8
|
+
* expects it saved, not silently dropped. An owner that holds the box's text
|
|
9
|
+
* (`draft` and `onDraftChange`) counts it as unsaved and saves it with this,
|
|
10
|
+
* so the rule is written once rather than by each form.
|
|
11
|
+
*/
|
|
12
|
+
export declare function withDraft(value: readonly string[], draft: string | undefined): string[];
|
|
13
|
+
/** What a caller can ask the list to do from outside it. */
|
|
14
|
+
export interface ListInputHandle {
|
|
15
|
+
/**
|
|
16
|
+
* Puts the focus in the item at `index` (in `value`'s order), with the caret
|
|
17
|
+
* at its end: the first item a failed save refused, or the one a conflict
|
|
18
|
+
* kept. Does nothing for an index the list does not hold.
|
|
19
|
+
*/
|
|
20
|
+
focusItem: (index: number) => void;
|
|
21
|
+
/** Puts the focus in the new-item box, when the list is not full. */
|
|
22
|
+
focusNew: () => void;
|
|
23
|
+
}
|
|
2
24
|
export interface ListInputProps {
|
|
3
25
|
/** The list's name, such as "Responsibilities". It is the group's legend. */
|
|
4
26
|
label: string;
|
|
@@ -6,7 +28,26 @@ export interface ListInputProps {
|
|
|
6
28
|
itemName: string;
|
|
7
29
|
value: readonly string[];
|
|
8
30
|
onChange: (next: string[]) => void;
|
|
9
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* The text in the new-item box, held by the owner. Left out, the list holds
|
|
33
|
+
* it itself. Hold it wherever a form saves the list: text typed and not yet
|
|
34
|
+
* added is part of what the writer means to save, so the owner counts it
|
|
35
|
+
* as a change and saves it (`withDraft`) rather than dropping it.
|
|
36
|
+
*/
|
|
37
|
+
draft?: string | undefined;
|
|
38
|
+
/** Every change to the new-item box's text, an add clearing it included. */
|
|
39
|
+
onDraftChange?: ((next: string) => void) | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* The legend is kept for assistive technology and drawn for nobody, for a
|
|
42
|
+
* list whose name is already the heading right above it (a card titled
|
|
43
|
+
* "Standing policies"). The add control stays where it is.
|
|
44
|
+
*/
|
|
45
|
+
hideLabel?: boolean | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Items are paragraphs: Shift+Enter makes a newline. Without it each item
|
|
48
|
+
* is ONE line, which still wraps so a long one can be read while it is
|
|
49
|
+
* edited, and takes no line break however it arrives.
|
|
50
|
+
*/
|
|
10
51
|
multiline?: boolean | undefined;
|
|
11
52
|
/** Where the values come from, or what shape they take. */
|
|
12
53
|
helper?: ReactNode | undefined;
|
|
@@ -29,6 +70,45 @@ export interface ListInputProps {
|
|
|
29
70
|
* focus to its own first control. Named as `TagsInput`'s is.
|
|
30
71
|
*/
|
|
31
72
|
focusOnMount?: boolean | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Each row carries a grip it can be DRAGGED by, as well as Move up and Move
|
|
75
|
+
* down. Off by default. The grip is a pointer's affordance only, hidden from
|
|
76
|
+
* a screen reader and out of the tab order, because the keyboard already
|
|
77
|
+
* has the whole of reordering (Alt+Up and Alt+Down from the item, and the
|
|
78
|
+
* two buttons) and a third control per row that does the same thing is a
|
|
79
|
+
* row a keyboard has to Tab through for nothing.
|
|
80
|
+
*/
|
|
81
|
+
reorderByDrag?: boolean | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* The most items the list holds. Once it is full the new-item box gives way
|
|
84
|
+
* to a sentence saying so (`fullMessage`), the add control does nothing,
|
|
85
|
+
* and every item stays editable, movable and removable.
|
|
86
|
+
*/
|
|
87
|
+
maxItems?: number | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* The most characters one item holds, counted on its TRIMMED text as a
|
|
90
|
+
* server judging the saved list does, and as code points (see
|
|
91
|
+
* `countCharacters`). A SOFT limit, as `FormField`'s
|
|
92
|
+
* `limit` is: an item past it keeps what was typed, draws its count in the
|
|
93
|
+
* danger ink and is marked invalid; the new-item box refuses to add one,
|
|
94
|
+
* and shows its count from nine tenths of the way.
|
|
95
|
+
*/
|
|
96
|
+
maxLength?: number | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Removing an item leaves a row where it was, saying so, with Undo (which
|
|
99
|
+
* puts it back where it was, with the focus in it) and Dismiss. The focus
|
|
100
|
+
* goes to Undo. The row goes on the list's next change or on Dismiss, so an
|
|
101
|
+
* Undo never restores an item into a list that has moved on.
|
|
102
|
+
*/
|
|
103
|
+
undoRemove?: boolean | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* A refusal of one item, said under it and linked to it, which marks it
|
|
106
|
+
* invalid: a server's word about policy 3, or a rule only the caller knows.
|
|
107
|
+
* Called for every item on every render, with its index and its value.
|
|
108
|
+
*/
|
|
109
|
+
itemError?: ((index: number, value: string) => ReactNode) | undefined;
|
|
110
|
+
/** What the list says in place of the new-item box once it is full. */
|
|
111
|
+
fullMessage?: ((max: number) => string) | undefined;
|
|
32
112
|
/** The name of the control beside the legend that appends what the box holds. */
|
|
33
113
|
addLabel?: ((itemName: string) => string) | undefined;
|
|
34
114
|
itemLabel?: ((name: string, position: string) => string) | undefined;
|
|
@@ -39,6 +119,11 @@ export interface ListInputProps {
|
|
|
39
119
|
addedMessage?: ((itemName: string, position: string) => string) | undefined;
|
|
40
120
|
removedMessage?: ((itemName: string, position: string) => string) | undefined;
|
|
41
121
|
movedMessage?: ((itemName: string, position: number, count: number) => string) | undefined;
|
|
122
|
+
/** The row a removed item leaves (`undoRemove`): "Policy 3 removed." */
|
|
123
|
+
removedNotice?: ((name: string, position: number) => string) | undefined;
|
|
124
|
+
undoLabel?: string | undefined;
|
|
125
|
+
dismissLabel?: string | undefined;
|
|
126
|
+
restoredMessage?: ((itemName: string, position: string) => string) | undefined;
|
|
42
127
|
}
|
|
43
128
|
/**
|
|
44
129
|
* An ordered list of strings, edited in place.
|
|
@@ -75,4 +160,4 @@ export interface ListInputProps {
|
|
|
75
160
|
*
|
|
76
161
|
* Ported from the engine dashboard's `ui/ListField.tsx`.
|
|
77
162
|
*/
|
|
78
|
-
export declare
|
|
163
|
+
export declare const ListInput: import("react").ForwardRefExoticComponent<ListInputProps & import("react").RefAttributes<ListInputHandle>>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import './ListInput.css';
|
|
2
|
-
export { ListInput } from './ListInput.js';
|
|
3
|
-
export type { ListInputProps } from './ListInput.js';
|
|
2
|
+
export { ListInput, withDraft } from './ListInput.js';
|
|
3
|
+
export type { ListInputHandle, ListInputProps } from './ListInput.js';
|
package/dist/ListInput/index.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
export { ListInput } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { ListInput, withDraft } from '../chunk-SQZEVWVC.js';
|
|
2
|
+
import '../chunk-XJ2QEBMM.js';
|
|
3
|
+
import '../chunk-Z734SV4E.js';
|
|
4
|
+
import '../chunk-XCUUI7E7.js';
|
|
3
5
|
import '../chunk-SMBKXWML.js';
|
|
4
6
|
import '../chunk-PQADV6P6.js';
|
|
5
7
|
import '../chunk-RSAQOKH3.js';
|
|
6
8
|
import '../chunk-OMV5W53A.js';
|
|
9
|
+
import '../chunk-OG6CL3EB.js';
|
|
7
10
|
import '../chunk-H5XTJ7GJ.js';
|
|
8
11
|
import '../chunk-LACA4JGC.js';
|
|
9
12
|
import '../chunk-NUZHC6MM.js';
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
.crewlet-list-input__add {
|
|
14
14
|
display: flex;
|
|
15
15
|
align-items: flex-start;
|
|
16
|
+
gap: var(--spacing-2);
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
.crewlet-list-input__add > * {
|
|
@@ -69,10 +70,75 @@
|
|
|
69
70
|
border-block-end-style: none;
|
|
70
71
|
}
|
|
71
72
|
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
/*
|
|
74
|
+
* THE FIELD TAKES THE ROW'S WIDTH, and holds the control with whatever is
|
|
75
|
+
* said under it (its count, its refusal) as one column, so a note under an
|
|
76
|
+
* item sits under the item's words and not under its number or its buttons.
|
|
77
|
+
*/
|
|
78
|
+
.crewlet-list-input__field {
|
|
79
|
+
display: flex;
|
|
80
|
+
flex: 1;
|
|
81
|
+
flex-direction: column;
|
|
82
|
+
min-width: 0;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.crewlet-list-input__field > .crewlet-input,
|
|
86
|
+
.crewlet-list-input__field > .crewlet-textarea,
|
|
87
|
+
.crewlet-list-input__field > .crewlet-textarea-shell {
|
|
88
|
+
width: 100%;
|
|
89
|
+
min-width: 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* What is said under one item: its refusal at the start, its count at the end. */
|
|
93
|
+
.crewlet-list-input__note {
|
|
94
|
+
display: flex;
|
|
95
|
+
align-items: flex-start;
|
|
96
|
+
justify-content: space-between;
|
|
97
|
+
gap: var(--spacing-3);
|
|
98
|
+
padding-bottom: var(--spacing-1);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.crewlet-list-input__error {
|
|
102
|
+
min-width: 0;
|
|
103
|
+
font-size: var(--font-size-xs);
|
|
104
|
+
line-height: var(--font-line-height-normal);
|
|
105
|
+
color: var(--color-feedback-danger-ink);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/*
|
|
109
|
+
* THE ROW A REMOVED ITEM LEAVES (`undoRemove`): the item's own place in the
|
|
110
|
+
* order, at a row's height and on the row's rule, saying what happened in the
|
|
111
|
+
* quiet ink with Undo beside it, so the list does not close up over the place
|
|
112
|
+
* an Undo would put it back.
|
|
113
|
+
*/
|
|
114
|
+
.crewlet-list-input__removed {
|
|
115
|
+
display: flex;
|
|
116
|
+
align-items: center;
|
|
117
|
+
gap: var(--spacing-2);
|
|
118
|
+
padding: var(--spacing-1) var(--spacing-3);
|
|
119
|
+
border-block-end-width: 1px;
|
|
120
|
+
border-block-end-style: solid;
|
|
121
|
+
border-block-end-color: var(--color-border-default);
|
|
122
|
+
background: var(--color-surface-subtle);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.crewlet-list-input__removed:last-child {
|
|
126
|
+
border-block-end-style: none;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.crewlet-list-input__removed-text {
|
|
74
130
|
flex: 1;
|
|
75
131
|
min-width: 0;
|
|
132
|
+
font-size: var(--font-size-compact);
|
|
133
|
+
color: var(--color-text-secondary);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* Where the new-item box was, once the list holds all it may. */
|
|
137
|
+
.crewlet-list-input__full {
|
|
138
|
+
margin: 0;
|
|
139
|
+
font-size: var(--font-size-xs);
|
|
140
|
+
line-height: var(--font-line-height-normal);
|
|
141
|
+
color: var(--color-text-tertiary);
|
|
76
142
|
}
|
|
77
143
|
|
|
78
144
|
/*
|
|
@@ -140,8 +206,58 @@
|
|
|
140
206
|
opacity: 1;
|
|
141
207
|
}
|
|
142
208
|
|
|
209
|
+
/*
|
|
210
|
+
* THE GRIP (`reorderByDrag`) waits with the move pair: the pointer's way to
|
|
211
|
+
* take hold of a row, shown under the pointer and while the row holds the
|
|
212
|
+
* focus, in the quiet ink so the row's number stays the first mark on it.
|
|
213
|
+
*/
|
|
214
|
+
.crewlet-list-input__handle {
|
|
215
|
+
display: inline-flex;
|
|
216
|
+
flex: none;
|
|
217
|
+
align-items: center;
|
|
218
|
+
justify-content: center;
|
|
219
|
+
margin-inline-start: calc(var(--spacing-1) * -1);
|
|
220
|
+
color: var(--color-text-tertiary);
|
|
221
|
+
cursor: grab;
|
|
222
|
+
opacity: 0;
|
|
223
|
+
transition: opacity var(--motion-duration-fast) var(--motion-easing-default);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.crewlet-list-input__handle:active {
|
|
227
|
+
cursor: grabbing;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.crewlet-list-input__item:hover .crewlet-list-input__handle,
|
|
231
|
+
.crewlet-list-input__item:focus-within .crewlet-list-input__handle {
|
|
232
|
+
opacity: 1;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/* The row being dragged keeps its place as an outline, so the list does not
|
|
236
|
+
close up under the pointer and the reader can see where it came from. */
|
|
237
|
+
.crewlet-list-input__item[data-reorder='dragging'] {
|
|
238
|
+
outline-width: 1px;
|
|
239
|
+
outline-style: dashed;
|
|
240
|
+
outline-color: var(--color-border-strong);
|
|
241
|
+
outline-offset: -1px;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.crewlet-list-input__item[data-reorder='dragging'] > * {
|
|
245
|
+
opacity: 0.4;
|
|
246
|
+
}
|
|
247
|
+
|
|
143
248
|
@media (prefers-reduced-motion: reduce) {
|
|
144
249
|
.crewlet-list-input__move {
|
|
145
250
|
transition: none;
|
|
146
251
|
}
|
|
252
|
+
|
|
253
|
+
.crewlet-list-input__handle {
|
|
254
|
+
transition: none;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/* With a hidden legend the add control stands at the end of the box's row. */
|
|
259
|
+
.crewlet-list-input__add-control {
|
|
260
|
+
display: inline-flex;
|
|
261
|
+
flex: none;
|
|
262
|
+
align-self: center;
|
|
147
263
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-
|
|
1
|
+
export { MARKDOWN_FORMATS, MarkdownEditor, formatMarkdown, insertMarkdown, markdownWords } from '../chunk-SS4XCUUJ.js';
|
|
2
2
|
import '../chunk-NR4CPM4T.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
8
|
import '../chunk-BHHIIK3M.js';
|
|
9
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-TMM32U7D.js';
|
|
10
10
|
import '../chunk-OMV5W53A.js';
|
|
11
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
12
11
|
import '../chunk-2YTOOH3A.js';
|
|
13
12
|
import '../chunk-OG6CL3EB.js';
|
|
13
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
14
14
|
import '../chunk-LACA4JGC.js';
|
|
15
15
|
import '../chunk-NUZHC6MM.js';
|
|
16
16
|
import '../chunk-BZFWDIV6.js';
|
package/dist/Menu/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { Menu } from '../chunk-
|
|
1
|
+
export { Menu } from '../chunk-TMM32U7D.js';
|
|
2
2
|
import '../chunk-OMV5W53A.js';
|
|
3
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
4
3
|
import '../chunk-OG6CL3EB.js';
|
|
4
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
5
5
|
import '../chunk-LACA4JGC.js';
|
|
6
6
|
import '../chunk-NUZHC6MM.js';
|
|
7
7
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-
|
|
1
|
+
export { MERGE_CONFLICTS_LABELS, MergeConflicts } from '../chunk-XS2FJVMT.js';
|
|
2
2
|
import '../chunk-OOC7Q67K.js';
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-6FVGSWLS.js';
|
|
4
|
+
import '../chunk-ILFEWRLG.js';
|
|
5
5
|
import '../chunk-WIATRXEJ.js';
|
|
6
6
|
import '../chunk-EGMQURBR.js';
|
|
7
7
|
import '../chunk-BHHIIK3M.js';
|
|
8
|
-
import '../chunk-
|
|
8
|
+
import '../chunk-TMM32U7D.js';
|
|
9
9
|
import '../chunk-OMV5W53A.js';
|
|
10
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
11
10
|
import '../chunk-2YTOOH3A.js';
|
|
12
11
|
import '../chunk-OG6CL3EB.js';
|
|
12
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
13
13
|
import '../chunk-LACA4JGC.js';
|
|
14
14
|
import '../chunk-NUZHC6MM.js';
|
|
15
15
|
import '../chunk-BZFWDIV6.js';
|
package/dist/Modal/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { ConfirmModal, Modal } from '../chunk-
|
|
1
|
+
export { ConfirmModal, Modal } from '../chunk-6AKG2VLR.js';
|
|
2
2
|
import '../chunk-PQADV6P6.js';
|
|
3
3
|
import '../chunk-OMV5W53A.js';
|
|
4
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
5
4
|
import '../chunk-OG6CL3EB.js';
|
|
5
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
6
6
|
import '../chunk-LACA4JGC.js';
|
|
7
7
|
import '../chunk-NUZHC6MM.js';
|
|
8
8
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { PresenterView, formatStopwatch } from '../chunk-
|
|
2
|
-
import '../chunk-RRO7UEYU.js';
|
|
1
|
+
export { PresenterView, formatStopwatch } from '../chunk-ISDEXIXH.js';
|
|
3
2
|
import '../chunk-RMEBFYL7.js';
|
|
3
|
+
import '../chunk-RRO7UEYU.js';
|
|
4
4
|
import '../chunk-RK4XPHVG.js';
|
|
5
5
|
import '../chunk-OMV5W53A.js';
|
|
6
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
7
6
|
import '../chunk-OG6CL3EB.js';
|
|
7
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
8
8
|
import '../chunk-LACA4JGC.js';
|
|
9
9
|
import '../chunk-NUZHC6MM.js';
|
|
10
10
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
export { PrincipalPicker } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { PrincipalPicker } from '../chunk-HBSR5DL6.js';
|
|
2
|
+
import '../chunk-2UVMIM2J.js';
|
|
3
3
|
import '../chunk-7KHM2FZH.js';
|
|
4
4
|
import '../chunk-CI3VPIJN.js';
|
|
5
5
|
import '../chunk-5AQBPHZD.js';
|
|
6
6
|
import '../chunk-PZKHBB7D.js';
|
|
7
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-Z734SV4E.js';
|
|
8
|
+
import '../chunk-XCUUI7E7.js';
|
|
8
9
|
import '../chunk-PQADV6P6.js';
|
|
9
|
-
import '../chunk-
|
|
10
|
+
import '../chunk-RSAQOKH3.js';
|
|
10
11
|
import '../chunk-2YTOOH3A.js';
|
|
12
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
11
13
|
import '../chunk-LACA4JGC.js';
|
|
12
14
|
import '../chunk-NUZHC6MM.js';
|
|
13
15
|
import '../chunk-BZFWDIV6.js';
|
package/dist/RelatedRow/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { RelatedRow } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { RelatedRow } from '../chunk-N4GBDK4L.js';
|
|
2
|
+
import '../chunk-QP2P6GDQ.js';
|
|
3
3
|
import '../chunk-ZAC7SKUN.js';
|
|
4
4
|
import '../chunk-INHXF2CL.js';
|
|
5
5
|
import '../chunk-AV2DXAEL.js';
|
package/dist/RichEditor/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { RichEditor, preloadRichEditor } from '../chunk-
|
|
1
|
+
export { RichEditor, preloadRichEditor } from '../chunk-RWWLVDRE.js';
|
|
2
2
|
export { RICH_EDITOR_LABELS, richEditorLabels } from '../chunk-CSQTDGTS.js';
|
|
3
3
|
import '../chunk-BAKPMH3S.js';
|
|
4
4
|
import '../chunk-SZZRIHGT.js';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import '../chunk-OOC7Q67K.js';
|
|
2
|
-
export { SegmentedControl } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
2
|
+
export { SegmentedControl } from '../chunk-6FVGSWLS.js';
|
|
3
|
+
import '../chunk-ILFEWRLG.js';
|
|
4
4
|
import '../chunk-WIATRXEJ.js';
|
|
5
5
|
import '../chunk-EGMQURBR.js';
|
|
6
6
|
import '../chunk-BHHIIK3M.js';
|
|
7
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-TMM32U7D.js';
|
|
8
8
|
import '../chunk-OMV5W53A.js';
|
|
9
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
10
9
|
import '../chunk-2YTOOH3A.js';
|
|
11
10
|
import '../chunk-OG6CL3EB.js';
|
|
11
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
12
12
|
import '../chunk-LACA4JGC.js';
|
|
13
13
|
import '../chunk-NUZHC6MM.js';
|
|
14
14
|
import '../chunk-BZFWDIV6.js';
|
package/dist/Select/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { Select } from '../chunk-XQZ6EWOE.js';
|
|
2
2
|
import '../chunk-7KHM2FZH.js';
|
|
3
3
|
import '../chunk-OMV5W53A.js';
|
|
4
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
5
4
|
import '../chunk-2YTOOH3A.js';
|
|
5
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
6
6
|
import '../chunk-NUZHC6MM.js';
|
|
7
7
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from '../chunk-
|
|
1
|
+
export { ARTIFACT_ROLES, SHAREABLE_ROLES, ShareDialog, roleAtLeast } from '../chunk-5EBDOE3C.js';
|
|
2
2
|
import '../chunk-XQZ6EWOE.js';
|
|
3
3
|
import '../chunk-7SHAFLEX.js';
|
|
4
4
|
import '../chunk-STJ7QBC3.js';
|
|
5
5
|
import '../chunk-DTIW4CHZ.js';
|
|
6
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-6AKG2VLR.js';
|
|
7
7
|
import '../chunk-7KHM2FZH.js';
|
|
8
8
|
import '../chunk-SZZRIHGT.js';
|
|
9
9
|
import '../chunk-CI3VPIJN.js';
|
|
@@ -12,9 +12,9 @@ import '../chunk-PZKHBB7D.js';
|
|
|
12
12
|
import '../chunk-PQADV6P6.js';
|
|
13
13
|
import '../chunk-RTPQDNW3.js';
|
|
14
14
|
import '../chunk-OMV5W53A.js';
|
|
15
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
16
15
|
import '../chunk-2YTOOH3A.js';
|
|
17
16
|
import '../chunk-OG6CL3EB.js';
|
|
17
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
18
18
|
import '../chunk-LACA4JGC.js';
|
|
19
19
|
import '../chunk-NUZHC6MM.js';
|
|
20
20
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
export { SHEET_COLUMN_EDITOR_LABELS, SheetColumnEditor, SheetColumnTypeGlyph } from '../chunk-
|
|
1
|
+
export { SHEET_COLUMN_EDITOR_LABELS, SheetColumnEditor, SheetColumnTypeGlyph } from '../chunk-YBJVIY5E.js';
|
|
2
2
|
import '../chunk-XQZ6EWOE.js';
|
|
3
3
|
import '../chunk-FFMCMSJB.js';
|
|
4
4
|
import '../chunk-7KHM2FZH.js';
|
|
5
5
|
import '../chunk-LFSIKGRQ.js';
|
|
6
6
|
import '../chunk-Z7JYG5TF.js';
|
|
7
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-34RMTXDZ.js';
|
|
8
8
|
import '../chunk-AYKXMIOR.js';
|
|
9
|
-
import '../chunk-
|
|
10
|
-
import '../chunk-
|
|
11
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-RWET7W22.js';
|
|
10
|
+
import '../chunk-6FVGSWLS.js';
|
|
11
|
+
import '../chunk-ILFEWRLG.js';
|
|
12
12
|
import '../chunk-WIATRXEJ.js';
|
|
13
13
|
import '../chunk-EGMQURBR.js';
|
|
14
|
-
import '../chunk-
|
|
14
|
+
import '../chunk-Z734SV4E.js';
|
|
15
|
+
import '../chunk-XCUUI7E7.js';
|
|
15
16
|
import '../chunk-SMBKXWML.js';
|
|
16
17
|
import '../chunk-BHHIIK3M.js';
|
|
17
18
|
import '../chunk-PQADV6P6.js';
|
|
18
|
-
import '../chunk-
|
|
19
|
+
import '../chunk-RSAQOKH3.js';
|
|
20
|
+
import '../chunk-TMM32U7D.js';
|
|
19
21
|
import '../chunk-OMV5W53A.js';
|
|
20
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
21
22
|
import '../chunk-2YTOOH3A.js';
|
|
22
23
|
import '../chunk-OG6CL3EB.js';
|
|
24
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
23
25
|
import '../chunk-LACA4JGC.js';
|
|
24
26
|
import '../chunk-NUZHC6MM.js';
|
|
25
27
|
import '../chunk-BZFWDIV6.js';
|
package/dist/SheetGrid/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-
|
|
1
|
+
export { CellDisplay, CellEditor, CheckboxCell, DateCell, LongTextCell, MultiSelectCell, NumberCell, PersonCell, RatingCell, SelectCell, SheetCell, SheetGrid, StatusCell, TextCell, UrlCell } from '../chunk-ZZCCNVF3.js';
|
|
2
2
|
import '../chunk-O2EGEONV.js';
|
|
3
3
|
import '../chunk-CENOOTAV.js';
|
|
4
|
-
import '../chunk-KYIAFNU7.js';
|
|
5
4
|
import '../chunk-3BYIWOTV.js';
|
|
6
5
|
import '../chunk-I6POAB4V.js';
|
|
6
|
+
import '../chunk-KYIAFNU7.js';
|
|
7
7
|
import '../chunk-66X5WDKE.js';
|
|
8
8
|
import '../chunk-LFSIKGRQ.js';
|
|
9
9
|
import '../chunk-Z7JYG5TF.js';
|
|
@@ -14,10 +14,10 @@ import '../chunk-I33UIUZD.js';
|
|
|
14
14
|
import '../chunk-5AQBPHZD.js';
|
|
15
15
|
import '../chunk-PZKHBB7D.js';
|
|
16
16
|
import '../chunk-RSAQOKH3.js';
|
|
17
|
-
import '../chunk-
|
|
17
|
+
import '../chunk-TMM32U7D.js';
|
|
18
18
|
import '../chunk-OMV5W53A.js';
|
|
19
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
20
19
|
import '../chunk-OG6CL3EB.js';
|
|
20
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
21
21
|
import '../chunk-LACA4JGC.js';
|
|
22
22
|
import '../chunk-NUZHC6MM.js';
|
|
23
23
|
import '../chunk-BZFWDIV6.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { SLIDE_COMPARE_LABELS, SlideCompare } from '../chunk-7CGPPAYR.js';
|
|
2
2
|
import '../chunk-RMEBFYL7.js';
|
|
3
3
|
import '../chunk-OMV5W53A.js';
|
|
4
|
-
import '../chunk-H5XTJ7GJ.js';
|
|
5
4
|
import '../chunk-OG6CL3EB.js';
|
|
5
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
6
6
|
import '../chunk-NUZHC6MM.js';
|
|
7
7
|
import '../chunk-BZFWDIV6.js';
|
|
8
8
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { SlideFilmstrip } from '../chunk-
|
|
1
|
+
export { SlideFilmstrip } from '../chunk-SQ4JFHO7.js';
|
|
2
2
|
import '../chunk-RMEBFYL7.js';
|
|
3
3
|
import '../chunk-XJ2QEBMM.js';
|
|
4
4
|
import '../chunk-SMBKXWML.js';
|
|
5
5
|
import '../chunk-RSAQOKH3.js';
|
|
6
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-TMM32U7D.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';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import { type HeadingLevel } from '../utils/headingLevel.js';
|
|
3
|
+
/** What a statement says while nobody has written it, with the way to write it. */
|
|
4
|
+
export interface StatementEmpty {
|
|
5
|
+
/** "No mission yet". */
|
|
6
|
+
title: ReactNode;
|
|
7
|
+
/** What the statement is for, so the reader knows why to write it. */
|
|
8
|
+
description: ReactNode;
|
|
9
|
+
/** The one control that writes it: "Add a mission". */
|
|
10
|
+
action?: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export interface StatementProps extends Omit<HTMLAttributes<HTMLElement>, 'title' | 'children'> {
|
|
13
|
+
/** What the statement is: "Mission", "Vision". Its heading. */
|
|
14
|
+
label: ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* The statement itself. TEXT is set as the statement, a step over the body
|
|
17
|
+
* at the reading measure with its author's line breaks kept; a BLOCK (a
|
|
18
|
+
* numbered list of policies, a card) is drawn as given under the same
|
|
19
|
+
* label, so every statement on a page heads the same way. Absent, null or
|
|
20
|
+
* an empty string is a statement nobody has written, and `empty` is said in
|
|
21
|
+
* its place.
|
|
22
|
+
*/
|
|
23
|
+
children?: ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* REQUIRED: an unwritten statement is said as one, never drawn as a grey
|
|
26
|
+
* value standing where the statement would.
|
|
27
|
+
*/
|
|
28
|
+
empty: StatementEmpty;
|
|
29
|
+
/** The heading's level. Taken from where the statement sits by default. */
|
|
30
|
+
headingLevel?: HeadingLevel | undefined;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* One statement a company or a team makes about itself: its mission, its
|
|
34
|
+
* vision, a goal. A label over the words, set larger than the body at a
|
|
35
|
+
* reading measure, because these are the sentences a page exists to say.
|
|
36
|
+
*
|
|
37
|
+
* NOT A KEY AND A VALUE. In a description list a mission weighs what a time
|
|
38
|
+
* zone weighs; a statement is read, not looked up. And an unwritten one is an
|
|
39
|
+
* inline empty state with its own way to write it, rather than placeholder
|
|
40
|
+
* text in the value's place that reads as if somebody wrote it.
|
|
41
|
+
*
|
|
42
|
+
* A REGION NAMED BY ITS LABEL, so a reader moving by landmark or heading
|
|
43
|
+
* hears "Mission" and then the mission.
|
|
44
|
+
*/
|
|
45
|
+
export declare function Statement({ label, children, empty, headingLevel, className, ...rest }: StatementProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Statement: a label over the words a page exists to say (Statement.tsx).
|
|
3
|
+
*
|
|
4
|
+
* THE LABEL IS THE MICRO REGISTER and the words are a step over the body, at
|
|
5
|
+
* the reading measure, so the statement outweighs everything around it and a
|
|
6
|
+
* line of it is one an eye can follow back.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
.crewlet-statement {
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
gap: var(--spacing-2);
|
|
13
|
+
margin: 0;
|
|
14
|
+
min-width: 0;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.crewlet-statement__label {
|
|
18
|
+
margin: 0;
|
|
19
|
+
font-size: var(--font-size-2xs);
|
|
20
|
+
font-weight: var(--font-weight-medium);
|
|
21
|
+
letter-spacing: var(--font-letter-spacing-wide);
|
|
22
|
+
line-height: var(--font-line-height-snug);
|
|
23
|
+
text-transform: uppercase;
|
|
24
|
+
color: var(--color-text-tertiary);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* THE AUTHOR'S OWN LINE BREAKS are kept, and no word stands alone on the last
|
|
28
|
+
line. A long word (an address, a product name) breaks rather than widening
|
|
29
|
+
the column. */
|
|
30
|
+
.crewlet-statement__text {
|
|
31
|
+
margin: 0;
|
|
32
|
+
max-width: var(--size-measure);
|
|
33
|
+
font-size: var(--font-size-lg);
|
|
34
|
+
line-height: var(--font-line-height-relaxed);
|
|
35
|
+
color: var(--color-text-primary);
|
|
36
|
+
white-space: pre-wrap;
|
|
37
|
+
overflow-wrap: anywhere;
|
|
38
|
+
text-wrap: pretty;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* A BLOCK under the label is drawn as given: its own register, the column's
|
|
42
|
+
width. */
|
|
43
|
+
.crewlet-statement__body {
|
|
44
|
+
min-width: 0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* ON A PHONE the words step down to the body's own step over it, so a
|
|
48
|
+
mission is a paragraph rather than a poster. */
|
|
49
|
+
@media (width < 640px) {
|
|
50
|
+
.crewlet-statement__text {
|
|
51
|
+
font-size: var(--font-size-md);
|
|
52
|
+
}
|
|
53
|
+
}
|