@crewlethq/ui 0.71.0 → 0.73.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 +19 -1
- package/dist/AgentHandoffPanel/index.js +4 -4
- package/dist/ArrangeFrame/index.js +2 -2
- package/dist/ArrangeList/index.js +4 -4
- package/dist/ArtifactCard/index.js +4 -4
- package/dist/BriefCard/BriefCard.d.ts +48 -35
- package/dist/BriefCard/index.d.ts +2 -2
- package/dist/BriefCard/index.js +1 -1
- package/dist/{BriefCard-L66R5U32.css → BriefCard-VKTH3BSW.css} +33 -45
- package/dist/Checkbox/index.js +3 -3
- package/dist/ColorField/index.js +3 -3
- package/dist/Combobox/index.js +3 -3
- package/dist/CommandPalette/index.js +3 -3
- package/dist/CommentThread/index.js +4 -4
- package/dist/Composer/index.js +3 -3
- package/dist/ConfirmField/index.js +3 -3
- package/dist/DataGrid/index.js +4 -4
- package/dist/DataTable/index.js +4 -4
- package/dist/DataView/index.js +5 -5
- package/dist/DeepWorkCard/index.js +2 -2
- package/dist/DocTabsEditor/index.js +3 -3
- package/dist/{Editor-NNQEALNT.js → Editor-6PBP444G.js} +2 -2
- package/dist/Input/index.js +2 -2
- package/dist/ListInput/index.js +3 -3
- package/dist/PresenterView/index.js +2 -2
- package/dist/PrincipalPicker/index.js +4 -4
- package/dist/ProposalCard/index.js +4 -4
- package/dist/RecordChip/RecordChip.d.ts +46 -0
- package/dist/RecordChip/RecordChipList.d.ts +17 -0
- package/dist/RecordChip/index.d.ts +5 -0
- package/dist/RecordChip/index.js +6 -0
- package/dist/RecordChip-53J66RA6.css +184 -0
- package/dist/ResultTableCard/index.js +2 -2
- package/dist/RichEditor/index.js +1 -1
- package/dist/SelectionBar/index.js +2 -2
- package/dist/SheetColumnEditor/index.js +4 -4
- package/dist/SheetGrid/index.js +1 -1
- package/dist/SlideFilmstrip/index.js +1 -1
- package/dist/Switcher/index.js +3 -3
- package/dist/Table/Table.d.ts +29 -2
- package/dist/Table/index.js +1 -1
- package/dist/{Table-RUYMMWXT.css → Table-MN3FIA2O.css} +28 -0
- package/dist/TagsInput/index.js +2 -2
- package/dist/TimeRangePicker/index.js +3 -3
- package/dist/TimeWindowPicker/index.js +3 -3
- package/dist/ValueField/index.js +4 -4
- package/dist/{chunk-3EETQFAM.js → chunk-4HCYBQ6B.js} +1 -1
- package/dist/chunk-4KSCGXLJ.js +106 -0
- package/dist/{chunk-H32JW6CZ.js → chunk-52D5EFHL.js} +2 -2
- package/dist/chunk-75NQV4R4.js +72 -0
- package/dist/{chunk-J5WWMC35.js → chunk-AMYU5W2H.js} +2 -2
- package/dist/{chunk-KAA3GFTP.js → chunk-AWQQ5I34.js} +2 -2
- package/dist/chunk-BFM5G2Z6.js +60 -0
- package/dist/{chunk-3LP3VPLT.js → chunk-BW6MQO2B.js} +1 -1
- package/dist/{chunk-6C6YK75K.js → chunk-EKZFB34W.js} +1 -1
- package/dist/{chunk-LQWORB5B.js → chunk-F5QBQP63.js} +2 -2
- package/dist/{chunk-PBCNINMB.js → chunk-FFWMTIMH.js} +1 -1
- package/dist/{chunk-YGWIWDXE.js → chunk-FX7FDPCM.js} +1 -1
- package/dist/{chunk-4MVLED6E.js → chunk-H6S6NRZL.js} +1 -1
- package/dist/{chunk-BWFJB5JD.js → chunk-HGWHIUZ5.js} +1 -1
- package/dist/{chunk-ADSOY7UM.js → chunk-I7YQNRTQ.js} +1 -1
- package/dist/{chunk-MFQPGMJT.js → chunk-IXPC5D36.js} +1 -1
- package/dist/{chunk-7LSSYHOT.js → chunk-J7INWERB.js} +1 -1
- package/dist/{chunk-SO5SXSTP.js → chunk-JXJNX7QQ.js} +1 -1
- package/dist/{chunk-FURJVZCT.js → chunk-LEM3ZY35.js} +1 -1
- package/dist/{chunk-JVII5264.js → chunk-LQXYAB2Q.js} +1 -1
- package/dist/{chunk-5OFRDX66.js → chunk-NATDVYEY.js} +1 -1
- package/dist/{chunk-W5AXJWOW.js → chunk-O4NQVNO5.js} +1 -1
- package/dist/{chunk-ZUBFVK6B.js → chunk-OFARYSWS.js} +1 -1
- package/dist/{chunk-3EY5SEGH.js → chunk-OSMR6TSC.js} +1 -1
- package/dist/{chunk-NXNLAZPK.js → chunk-SPWBT7FE.js} +1 -1
- package/dist/{chunk-BWAUL5MB.js → chunk-YAL6VBRK.js} +2 -2
- package/dist/{chunk-TWJERLT3.js → chunk-YZSG3JIY.js} +1 -1
- package/dist/generated/index.d.ts +1 -0
- package/dist/generated/index.js +64 -63
- package/dist/index.js +64 -63
- package/dist/styles.css +250 -47
- package/package.json +3 -3
- package/dist/chunk-5DJMFRSZ.js +0 -58
- package/dist/chunk-VBA5FSWV.js +0 -87
- package/dist/{chunk-HEIOLITO.js → chunk-5VMAJAVF.js} +1 -1
- package/dist/{chunk-ABZC3NLM.js → chunk-ABGLGAFJ.js} +0 -0
- package/dist/{chunk-PLNJEDGI.js → chunk-I4IO56EY.js} +1 -1
- package/dist/{chunk-P64MIA7C.js → chunk-JKMBC4NB.js} +1 -1
- package/dist/{chunk-V6X3DJ2G.js → chunk-PRN5IP2R.js} +1 -1
- package/dist/{chunk-L4HHWG4V.js → chunk-V2EV56MY.js} +1 -1
- package/dist/{chunk-ETSF7SU6.js → chunk-ZMML6NRS.js} +1 -1
package/dist/styles.css
CHANGED
|
@@ -5757,11 +5757,12 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
5757
5757
|
}
|
|
5758
5758
|
|
|
5759
5759
|
|
|
5760
|
-
/* BriefCard-
|
|
5760
|
+
/* BriefCard-VKTH3BSW.css */
|
|
5761
5761
|
/*
|
|
5762
|
-
* A brief inside the product's status card:
|
|
5763
|
-
* on the
|
|
5764
|
-
*
|
|
5762
|
+
* A brief inside the product's status card: the verdict in the head, then one
|
|
5763
|
+
* line on what the page is about, the ranked rows that wait on the reader, a
|
|
5764
|
+
* quiet line of context and the questions to ask next. No block carries a
|
|
5765
|
+
* label: the verdict already says what the rows are.
|
|
5765
5766
|
*/
|
|
5766
5767
|
.crewlet-brief-card__where {
|
|
5767
5768
|
display: inline-flex;
|
|
@@ -5776,35 +5777,19 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
5776
5777
|
.crewlet-brief-card__body {
|
|
5777
5778
|
display: flex;
|
|
5778
5779
|
flex-direction: column;
|
|
5779
|
-
gap: var(--spacing-
|
|
5780
|
+
gap: var(--spacing-3);
|
|
5780
5781
|
min-width: 0;
|
|
5781
5782
|
}
|
|
5782
5783
|
|
|
5783
|
-
.crewlet-brief-
|
|
5784
|
+
.crewlet-brief-card__about {
|
|
5784
5785
|
margin: 0;
|
|
5786
|
+
overflow-wrap: anywhere;
|
|
5785
5787
|
font-size: var(--font-size-md);
|
|
5786
5788
|
font-weight: var(--font-weight-medium);
|
|
5787
5789
|
line-height: var(--font-line-height-snug);
|
|
5788
5790
|
text-wrap: pretty;
|
|
5789
5791
|
}
|
|
5790
5792
|
|
|
5791
|
-
.crewlet-brief-card__block {
|
|
5792
|
-
display: flex;
|
|
5793
|
-
flex-direction: column;
|
|
5794
|
-
gap: var(--spacing-2);
|
|
5795
|
-
min-width: 0;
|
|
5796
|
-
}
|
|
5797
|
-
|
|
5798
|
-
.crewlet-brief-card__label {
|
|
5799
|
-
margin: 0;
|
|
5800
|
-
font-size: var(--font-size-2xs);
|
|
5801
|
-
font-weight: var(--font-weight-medium);
|
|
5802
|
-
letter-spacing: var(--font-letter-spacing-wide);
|
|
5803
|
-
text-transform: uppercase;
|
|
5804
|
-
line-height: var(--font-line-height-snug);
|
|
5805
|
-
color: var(--color-text-tertiary);
|
|
5806
|
-
}
|
|
5807
|
-
|
|
5808
5793
|
.crewlet-brief-card__needs {
|
|
5809
5794
|
display: flex;
|
|
5810
5795
|
flex-direction: column;
|
|
@@ -5816,7 +5801,8 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
5816
5801
|
/*
|
|
5817
5802
|
* A ROW IS THE LIST ROW'S GRAMMAR: the dot on the first line, the words and
|
|
5818
5803
|
* their one fact, and the action centred at the end, so a column of rows reads
|
|
5819
|
-
* down the dots and across to the presses.
|
|
5804
|
+
* down the dots and across to the presses. The first row, the one the brief
|
|
5805
|
+
* recommends, stands on the accent's softest ground.
|
|
5820
5806
|
*/
|
|
5821
5807
|
.crewlet-brief-card__need {
|
|
5822
5808
|
display: grid;
|
|
@@ -5830,6 +5816,26 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
5830
5816
|
border-top: 1px solid var(--color-border-default);
|
|
5831
5817
|
}
|
|
5832
5818
|
|
|
5819
|
+
.crewlet-brief-card__need--first {
|
|
5820
|
+
padding-inline: var(--spacing-3);
|
|
5821
|
+
margin-inline: calc(-1 * var(--spacing-3));
|
|
5822
|
+
border-radius: var(--radius-md);
|
|
5823
|
+
background: var(--color-brand-accent-soft);
|
|
5824
|
+
}
|
|
5825
|
+
|
|
5826
|
+
.crewlet-brief-card__need--first + .crewlet-brief-card__need {
|
|
5827
|
+
border-top: 0;
|
|
5828
|
+
}
|
|
5829
|
+
|
|
5830
|
+
.crewlet-brief-card__first {
|
|
5831
|
+
font-size: var(--font-size-2xs);
|
|
5832
|
+
font-weight: var(--font-weight-medium);
|
|
5833
|
+
letter-spacing: var(--font-letter-spacing-wide);
|
|
5834
|
+
text-transform: uppercase;
|
|
5835
|
+
line-height: var(--font-line-height-snug);
|
|
5836
|
+
color: var(--color-brand-accent-ink);
|
|
5837
|
+
}
|
|
5838
|
+
|
|
5833
5839
|
.crewlet-brief-card__need > .crewlet-button {
|
|
5834
5840
|
align-self: center;
|
|
5835
5841
|
}
|
|
@@ -5855,30 +5861,12 @@ a.crewlet-breadcrumb__crumb:focus-visible {
|
|
|
5855
5861
|
color: var(--color-text-tertiary);
|
|
5856
5862
|
}
|
|
5857
5863
|
|
|
5858
|
-
.crewlet-brief-
|
|
5859
|
-
display: inline-flex;
|
|
5860
|
-
align-items: center;
|
|
5861
|
-
gap: var(--spacing-2);
|
|
5864
|
+
.crewlet-brief-card__context {
|
|
5862
5865
|
margin: 0;
|
|
5863
|
-
font-size: var(--font-size-
|
|
5864
|
-
|
|
5865
|
-
|
|
5866
|
-
|
|
5867
|
-
/* The recommendation: one step, on the accent's softest ground. */
|
|
5868
|
-
.crewlet-brief-card__next {
|
|
5869
|
-
display: grid;
|
|
5870
|
-
grid-template-columns: auto minmax(0, 1fr) auto;
|
|
5871
|
-
align-items: center;
|
|
5872
|
-
gap: var(--spacing-3);
|
|
5873
|
-
padding: var(--spacing-2) var(--spacing-3);
|
|
5874
|
-
border-radius: var(--radius-md);
|
|
5875
|
-
background: var(--color-brand-accent-soft);
|
|
5866
|
+
font-size: var(--font-size-xs);
|
|
5867
|
+
line-height: var(--font-line-height-snug);
|
|
5868
|
+
color: var(--color-text-tertiary);
|
|
5876
5869
|
overflow-wrap: anywhere;
|
|
5877
|
-
font-size: var(--font-size-compact);
|
|
5878
|
-
}
|
|
5879
|
-
|
|
5880
|
-
.crewlet-brief-card__arrow {
|
|
5881
|
-
color: var(--color-brand-accent-ink);
|
|
5882
5870
|
}
|
|
5883
5871
|
|
|
5884
5872
|
/* The questions to ask next sit on the card's text edge: each row's own inset is pulled out. */
|
|
@@ -28052,6 +28040,193 @@ button.crewlet-presence-stack__member:focus-visible {
|
|
|
28052
28040
|
}
|
|
28053
28041
|
|
|
28054
28042
|
|
|
28043
|
+
/* RecordChip-53J66RA6.css */
|
|
28044
|
+
/*
|
|
28045
|
+
* A record inside a sentence. The text's own size on the text's own
|
|
28046
|
+
* baseline, so a line holding one is no taller than a line without: a quiet
|
|
28047
|
+
* hairline, the inset ground, and the key in mono.
|
|
28048
|
+
*/
|
|
28049
|
+
.crewlet-record-chip {
|
|
28050
|
+
display: inline-flex;
|
|
28051
|
+
align-items: center;
|
|
28052
|
+
gap: var(--spacing-1);
|
|
28053
|
+
max-width: 100%;
|
|
28054
|
+
margin: 0 1px;
|
|
28055
|
+
padding: 0 var(--spacing-1);
|
|
28056
|
+
border: 1px solid var(--color-border-default);
|
|
28057
|
+
border-radius: var(--radius-xs);
|
|
28058
|
+
background: var(--color-surface-inset);
|
|
28059
|
+
color: var(--color-text-primary);
|
|
28060
|
+
font: inherit;
|
|
28061
|
+
font-weight: var(--font-weight-medium);
|
|
28062
|
+
/*
|
|
28063
|
+
* EXACTLY ONE OF THE LINE'S OWN LINES, hairline included: `1lh` is the
|
|
28064
|
+
* line-height the chip inherits, and the two pixels are its top and bottom
|
|
28065
|
+
* border. At the snug step a label chip stood 20.2px in a 19.5px line and
|
|
28066
|
+
* moved every line it sat on by a pixel.
|
|
28067
|
+
*/
|
|
28068
|
+
line-height: calc(1lh - 2px);
|
|
28069
|
+
/*
|
|
28070
|
+
* TOP, NOT BASELINE: a key chip's text is mono at the micro step under the
|
|
28071
|
+
* parent's absolute leading, and on the baseline it sat about a pixel off
|
|
28072
|
+
* its neighbours' and pushed its line to 20.5px. At the line's top it is
|
|
28073
|
+
* the line's own height (19.5px in a 19.5px line) with the key within half
|
|
28074
|
+
* a pixel of the surrounding baseline.
|
|
28075
|
+
*/
|
|
28076
|
+
vertical-align: top;
|
|
28077
|
+
cursor: pointer;
|
|
28078
|
+
transition:
|
|
28079
|
+
background var(--motion-duration-fast) var(--motion-easing-default),
|
|
28080
|
+
border-color var(--motion-duration-fast) var(--motion-easing-default);
|
|
28081
|
+
}
|
|
28082
|
+
|
|
28083
|
+
.crewlet-record-chip:hover,
|
|
28084
|
+
.crewlet-record-chip[data-open] {
|
|
28085
|
+
border-color: var(--color-border-hover);
|
|
28086
|
+
background: var(--color-surface-hover);
|
|
28087
|
+
}
|
|
28088
|
+
|
|
28089
|
+
/* The chip draws its own hairline, so the ring lands on it rather than standing off it. */
|
|
28090
|
+
.crewlet-record-chip:focus-visible {
|
|
28091
|
+
outline: 2px solid var(--color-focus);
|
|
28092
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
28093
|
+
}
|
|
28094
|
+
|
|
28095
|
+
.crewlet-record-chip--code .crewlet-record-chip__text {
|
|
28096
|
+
font-family: var(--font-family-mono);
|
|
28097
|
+
font-size: var(--font-size-xs);
|
|
28098
|
+
}
|
|
28099
|
+
|
|
28100
|
+
.crewlet-record-chip__text {
|
|
28101
|
+
min-width: 0;
|
|
28102
|
+
overflow: hidden;
|
|
28103
|
+
text-overflow: ellipsis;
|
|
28104
|
+
white-space: nowrap;
|
|
28105
|
+
}
|
|
28106
|
+
|
|
28107
|
+
.crewlet-record-chip__glyph {
|
|
28108
|
+
display: inline-flex;
|
|
28109
|
+
flex: none;
|
|
28110
|
+
color: var(--color-text-tertiary);
|
|
28111
|
+
}
|
|
28112
|
+
|
|
28113
|
+
/* THE PEEK: a name, a few facts and the way to it, at the panel's own inset. */
|
|
28114
|
+
.crewlet-popover.crewlet-record-chip__peek {
|
|
28115
|
+
display: flex;
|
|
28116
|
+
flex-direction: column;
|
|
28117
|
+
gap: var(--spacing-2);
|
|
28118
|
+
max-height: min(420px, 70vh);
|
|
28119
|
+
padding: var(--spacing-3);
|
|
28120
|
+
font-size: var(--font-size-compact);
|
|
28121
|
+
color: var(--color-text-primary);
|
|
28122
|
+
}
|
|
28123
|
+
|
|
28124
|
+
.crewlet-record-chip__head {
|
|
28125
|
+
display: flex;
|
|
28126
|
+
align-items: flex-start;
|
|
28127
|
+
gap: var(--spacing-2);
|
|
28128
|
+
}
|
|
28129
|
+
|
|
28130
|
+
.crewlet-record-chip__head-glyph {
|
|
28131
|
+
display: inline-flex;
|
|
28132
|
+
flex: none;
|
|
28133
|
+
align-items: center;
|
|
28134
|
+
height: 1lh;
|
|
28135
|
+
color: var(--color-text-tertiary);
|
|
28136
|
+
}
|
|
28137
|
+
|
|
28138
|
+
.crewlet-record-chip__head-words {
|
|
28139
|
+
display: flex;
|
|
28140
|
+
flex-direction: column;
|
|
28141
|
+
gap: 2px;
|
|
28142
|
+
min-width: 0;
|
|
28143
|
+
}
|
|
28144
|
+
|
|
28145
|
+
.crewlet-record-chip__name {
|
|
28146
|
+
margin: 0;
|
|
28147
|
+
font-weight: var(--font-weight-medium);
|
|
28148
|
+
line-height: var(--font-line-height-normal);
|
|
28149
|
+
}
|
|
28150
|
+
|
|
28151
|
+
.crewlet-record-chip__name-code {
|
|
28152
|
+
font-family: var(--font-family-mono);
|
|
28153
|
+
font-size: var(--font-size-xs);
|
|
28154
|
+
font-weight: var(--font-weight-regular);
|
|
28155
|
+
color: var(--color-text-secondary);
|
|
28156
|
+
}
|
|
28157
|
+
|
|
28158
|
+
.crewlet-record-chip__meta {
|
|
28159
|
+
margin: 0;
|
|
28160
|
+
font-size: var(--font-size-xs);
|
|
28161
|
+
color: var(--color-text-tertiary);
|
|
28162
|
+
}
|
|
28163
|
+
|
|
28164
|
+
.crewlet-record-chip__body {
|
|
28165
|
+
display: flex;
|
|
28166
|
+
flex-direction: column;
|
|
28167
|
+
gap: var(--spacing-2);
|
|
28168
|
+
min-width: 0;
|
|
28169
|
+
}
|
|
28170
|
+
|
|
28171
|
+
/* Utilities start on the text edge, a ghost button's padding pulled into the gutter. */
|
|
28172
|
+
.crewlet-record-chip__actions {
|
|
28173
|
+
display: flex;
|
|
28174
|
+
flex-wrap: wrap;
|
|
28175
|
+
align-items: center;
|
|
28176
|
+
gap: var(--spacing-1);
|
|
28177
|
+
margin-inline-start: calc(-1 * (var(--spacing-2) + 1px));
|
|
28178
|
+
}
|
|
28179
|
+
|
|
28180
|
+
@media (prefers-reduced-motion: reduce) {
|
|
28181
|
+
.crewlet-record-chip {
|
|
28182
|
+
transition: none;
|
|
28183
|
+
}
|
|
28184
|
+
}
|
|
28185
|
+
|
|
28186
|
+
/* THE ALSO READ LINE: a caption-register lead and the chips after it, wrapping. */
|
|
28187
|
+
.crewlet-record-chip-list {
|
|
28188
|
+
display: flex;
|
|
28189
|
+
flex-wrap: wrap;
|
|
28190
|
+
align-items: baseline;
|
|
28191
|
+
gap: var(--spacing-1) var(--spacing-2);
|
|
28192
|
+
min-width: 0;
|
|
28193
|
+
font-size: var(--font-size-xs);
|
|
28194
|
+
line-height: var(--font-line-height-normal);
|
|
28195
|
+
color: var(--color-text-secondary);
|
|
28196
|
+
}
|
|
28197
|
+
|
|
28198
|
+
.crewlet-record-chip-list__label {
|
|
28199
|
+
flex: none;
|
|
28200
|
+
}
|
|
28201
|
+
|
|
28202
|
+
/*
|
|
28203
|
+
* THE LIST IS THE WRAPPING ROW. Not `display: contents`, which older WebKit
|
|
28204
|
+
* and Chromium drop from the accessibility tree along with the list's name,
|
|
28205
|
+
* so "Also read, list, 3 items" was never said.
|
|
28206
|
+
*/
|
|
28207
|
+
.crewlet-record-chip-list__items {
|
|
28208
|
+
display: flex;
|
|
28209
|
+
flex: 1 1 auto;
|
|
28210
|
+
flex-wrap: wrap;
|
|
28211
|
+
align-items: baseline;
|
|
28212
|
+
gap: var(--spacing-1) var(--spacing-2);
|
|
28213
|
+
min-width: 0;
|
|
28214
|
+
margin: 0;
|
|
28215
|
+
padding: 0;
|
|
28216
|
+
list-style: none;
|
|
28217
|
+
}
|
|
28218
|
+
|
|
28219
|
+
.crewlet-record-chip-list__item {
|
|
28220
|
+
display: inline-flex;
|
|
28221
|
+
min-width: 0;
|
|
28222
|
+
max-width: 100%;
|
|
28223
|
+
}
|
|
28224
|
+
|
|
28225
|
+
.crewlet-record-chip-list .crewlet-record-chip {
|
|
28226
|
+
margin: 0;
|
|
28227
|
+
}
|
|
28228
|
+
|
|
28229
|
+
|
|
28055
28230
|
/* RefusalCard-UM67F5HB.css */
|
|
28056
28231
|
/* The first sentence carries the weight; "Nothing changed." closes in the secondary ink. */
|
|
28057
28232
|
.crewlet-refusal-card__heading {
|
|
@@ -36315,7 +36490,7 @@ b.crewlet-switcher__match {
|
|
|
36315
36490
|
}
|
|
36316
36491
|
|
|
36317
36492
|
|
|
36318
|
-
/* Table-
|
|
36493
|
+
/* Table-MN3FIA2O.css */
|
|
36319
36494
|
/*
|
|
36320
36495
|
* Table: the operator's table, on the elements a table is made of.
|
|
36321
36496
|
*
|
|
@@ -36535,6 +36710,34 @@ b.crewlet-switcher__match {
|
|
|
36535
36710
|
}
|
|
36536
36711
|
}
|
|
36537
36712
|
|
|
36713
|
+
/*
|
|
36714
|
+
* COLUMNS SIZED BY THEIR WORDS (`columns="content"`), for a result read
|
|
36715
|
+
* beside an answer. Each column takes the room its words ask for, so a short
|
|
36716
|
+
* key keeps its line and the longest text takes the most and wraps between
|
|
36717
|
+
* words. A token longer than the table (a digest, a URL) wraps ANYWHERE: with
|
|
36718
|
+
* `break-word` it did not, because under an auto layout a word's whole width
|
|
36719
|
+
* is the column's minimum, and a sha256 in a 350px table pushed it to 606px.
|
|
36720
|
+
* `anywhere` lets the minimum shrink to a character. The figures (`end`
|
|
36721
|
+
* columns) and the nowrap columns never wrap, and the figures stay tabular.
|
|
36722
|
+
*/
|
|
36723
|
+
.crewlet-table--content .crewlet-table__table {
|
|
36724
|
+
table-layout: auto;
|
|
36725
|
+
font-variant-numeric: tabular-nums;
|
|
36726
|
+
}
|
|
36727
|
+
|
|
36728
|
+
.crewlet-table--content td:not(.crewlet-table__cell--nowrap, .crewlet-table__cell--end) {
|
|
36729
|
+
overflow-wrap: anywhere;
|
|
36730
|
+
}
|
|
36731
|
+
|
|
36732
|
+
.crewlet-table--content .crewlet-table__cell--end {
|
|
36733
|
+
white-space: nowrap;
|
|
36734
|
+
}
|
|
36735
|
+
|
|
36736
|
+
/* A column of short tokens (a task's key) keeps each on one line; only content columns offer it. */
|
|
36737
|
+
.crewlet-table--content .crewlet-table__cell--nowrap {
|
|
36738
|
+
white-space: nowrap;
|
|
36739
|
+
}
|
|
36740
|
+
|
|
36538
36741
|
|
|
36539
36742
|
/* TableCells-TKSNLRK3.css */
|
|
36540
36743
|
/* The read-only table cells. Each one holds a single line and shrinks inside
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crewlethq/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.73.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.73.0",
|
|
46
|
+
"@crewlethq/tokens": "0.73.0",
|
|
47
47
|
"prosemirror-commands": "1.7.2",
|
|
48
48
|
"prosemirror-gapcursor": "1.4.1",
|
|
49
49
|
"prosemirror-history": "1.5.1",
|
package/dist/chunk-5DJMFRSZ.js
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
2
|
-
import { cx } from './chunk-ODEQTPFM.js';
|
|
3
|
-
import './Table-RUYMMWXT.css';
|
|
4
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
-
|
|
6
|
-
var Table = ({
|
|
7
|
-
headers,
|
|
8
|
-
data,
|
|
9
|
-
caption,
|
|
10
|
-
captionHidden = false,
|
|
11
|
-
emptyMessage = "No data available",
|
|
12
|
-
actionButton,
|
|
13
|
-
maxHeight,
|
|
14
|
-
align,
|
|
15
|
-
footer,
|
|
16
|
-
framed = true,
|
|
17
|
-
className = ""
|
|
18
|
-
}) => {
|
|
19
|
-
const columnCount = Math.max(1, headers.length);
|
|
20
|
-
const edge = (index) => align?.[index] === "end" ? "crewlet-table__cell--end" : void 0;
|
|
21
|
-
return /* @__PURE__ */ jsxs("div", { className: cx("crewlet-table", !framed && "crewlet-table--flush", className), children: [
|
|
22
|
-
/* @__PURE__ */ jsx(
|
|
23
|
-
"div",
|
|
24
|
-
{
|
|
25
|
-
className: "crewlet-table__container",
|
|
26
|
-
style: (
|
|
27
|
-
// Only the height: the stylesheet scrolls both axes unconditionally,
|
|
28
|
-
// because with `overflow-x: auto` declared beside it a `visible`
|
|
29
|
-
// vertical axis was never reachable. See Table.css.
|
|
30
|
-
maxHeight ? { "--crewlet-table-max-height": maxHeight } : void 0
|
|
31
|
-
),
|
|
32
|
-
children: /* @__PURE__ */ jsxs("table", { className: "crewlet-table__table", children: [
|
|
33
|
-
caption != null && (captionHidden ? /* @__PURE__ */ jsx("caption", { children: /* @__PURE__ */ jsx(VisuallyHidden, { children: caption }) }) : /* @__PURE__ */ jsx("caption", { className: "crewlet-table__caption", children: caption })),
|
|
34
|
-
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { className: "crewlet-table__header", children: headers.map((header, index) => (
|
|
35
|
-
// The index is the key because a header is a position: the
|
|
36
|
-
// columns of one table do not reorder between renders.
|
|
37
|
-
/* @__PURE__ */ jsx("th", { scope: "col", className: edge(index), children: header }, index)
|
|
38
|
-
)) }) }),
|
|
39
|
-
/* @__PURE__ */ jsx("tbody", { children: data && data.length > 0 ? data.map((row, rowIndex) => /* @__PURE__ */ jsx("tr", { className: "crewlet-table__row", children: row.map((cell, cellIndex) => /* @__PURE__ */ jsx("td", { className: edge(cellIndex), children: cell }, cellIndex)) }, rowIndex)) : /* @__PURE__ */ jsx("tr", { children: /* @__PURE__ */ jsx("td", { className: "crewlet-table__empty", colSpan: columnCount, children: emptyMessage }) }) }),
|
|
40
|
-
footer && footer.length > 0 ? /* @__PURE__ */ jsx("tfoot", { children: /* @__PURE__ */ jsx("tr", { className: "crewlet-table__footer", children: footer.map(
|
|
41
|
-
(cell, index) => index === 0 ? /* @__PURE__ */ jsx("th", { scope: "row", className: edge(index), children: cell }, index) : /* @__PURE__ */ jsx("td", { className: edge(index), children: cell }, index)
|
|
42
|
-
) }) }) : null
|
|
43
|
-
] })
|
|
44
|
-
}
|
|
45
|
-
),
|
|
46
|
-
actionButton && /* @__PURE__ */ jsx(
|
|
47
|
-
"button",
|
|
48
|
-
{
|
|
49
|
-
type: "button",
|
|
50
|
-
className: "crewlet-table__action-btn",
|
|
51
|
-
onClick: actionButton.onClick,
|
|
52
|
-
children: /* @__PURE__ */ jsx("span", { className: "crewlet-table__action-text", children: actionButton.label })
|
|
53
|
-
}
|
|
54
|
-
)
|
|
55
|
-
] });
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export { Table };
|
package/dist/chunk-VBA5FSWV.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { SuggestionList, SuggestionRow } from './chunk-Y7PVLEZJ.js';
|
|
2
|
-
import { StatusCard } from './chunk-NTQPJJAN.js';
|
|
3
|
-
import { StatusDot } from './chunk-WIATRXEJ.js';
|
|
4
|
-
import { Button } from './chunk-DGXZ635L.js';
|
|
5
|
-
import { cx } from './chunk-ODEQTPFM.js';
|
|
6
|
-
import './BriefCard-L66R5U32.css';
|
|
7
|
-
import { useId } from 'react';
|
|
8
|
-
import { CircleCheckGlyph, ArrowRightGlyph, MessageCircleQuestionMarkGlyph } from '@crewlethq/icons/glyphs';
|
|
9
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
10
|
-
|
|
11
|
-
var BRIEF_CARD_MAX_NEEDS = 3;
|
|
12
|
-
var BRIEF_CARD_LABELS = {
|
|
13
|
-
heading: "Brief",
|
|
14
|
-
needs: "Needs you",
|
|
15
|
-
clear: "Nothing needs you.",
|
|
16
|
-
recommended: "Recommended",
|
|
17
|
-
followUps: "Ask next",
|
|
18
|
-
count: (n) => n === 1 ? "1 needs you" : `${n} need you`,
|
|
19
|
-
allClear: "All clear"
|
|
20
|
-
};
|
|
21
|
-
function BriefCard({
|
|
22
|
-
scope,
|
|
23
|
-
asOf,
|
|
24
|
-
summary,
|
|
25
|
-
needs,
|
|
26
|
-
recommended,
|
|
27
|
-
followUps,
|
|
28
|
-
labels: overrides,
|
|
29
|
-
className,
|
|
30
|
-
...rest
|
|
31
|
-
}) {
|
|
32
|
-
const labels = overrides ? { ...BRIEF_CARD_LABELS, ...overrides } : BRIEF_CARD_LABELS;
|
|
33
|
-
const id = useId();
|
|
34
|
-
const rows = needs.slice(0, BRIEF_CARD_MAX_NEEDS);
|
|
35
|
-
const hasScope = !(scope === void 0 || scope === null || scope === "");
|
|
36
|
-
const hasAsOf = !(asOf === void 0 || asOf === null || asOf === "");
|
|
37
|
-
const subtitle = hasScope || hasAsOf ? /* @__PURE__ */ jsxs("span", { className: "crewlet-brief-card__where", children: [
|
|
38
|
-
hasScope ? /* @__PURE__ */ jsx("span", { children: scope }) : null,
|
|
39
|
-
hasScope && hasAsOf ? /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "\xB7" }) : null,
|
|
40
|
-
hasAsOf ? /* @__PURE__ */ jsx("span", { className: "crewlet-brief-card__asof", children: asOf }) : null
|
|
41
|
-
] }) : void 0;
|
|
42
|
-
return /* @__PURE__ */ jsx(
|
|
43
|
-
StatusCard,
|
|
44
|
-
{
|
|
45
|
-
...rest,
|
|
46
|
-
title: labels.heading,
|
|
47
|
-
subtitle,
|
|
48
|
-
status: rows.length > 0 ? { label: labels.count(rows.length), tone: "warning" } : { label: labels.allClear, tone: "success", icon: /* @__PURE__ */ jsx(CircleCheckGlyph, { size: "xs" }) },
|
|
49
|
-
className: cx("crewlet-brief-card", className),
|
|
50
|
-
children: /* @__PURE__ */ jsxs("div", { className: "crewlet-brief-card__body", children: [
|
|
51
|
-
/* @__PURE__ */ jsx("p", { className: "crewlet-brief-card__summary", children: summary }),
|
|
52
|
-
/* @__PURE__ */ jsxs("section", { className: "crewlet-brief-card__block", "aria-labelledby": `${id}-needs`, children: [
|
|
53
|
-
/* @__PURE__ */ jsx("h4", { className: "crewlet-brief-card__label", id: `${id}-needs`, children: labels.needs }),
|
|
54
|
-
rows.length === 0 ? /* @__PURE__ */ jsxs("p", { className: "crewlet-brief-card__clear", children: [
|
|
55
|
-
/* @__PURE__ */ jsx(CircleCheckGlyph, { size: "sm", "aria-hidden": "true" }),
|
|
56
|
-
labels.clear
|
|
57
|
-
] }) : (
|
|
58
|
-
// A list the reader moves through by item; Safari drops the role of a list styled without markers.
|
|
59
|
-
// eslint-disable-next-line jsx-a11y/no-redundant-roles
|
|
60
|
-
/* @__PURE__ */ jsx("ul", { role: "list", className: "crewlet-brief-card__needs", children: rows.map((need) => /* @__PURE__ */ jsxs("li", { className: "crewlet-brief-card__need", children: [
|
|
61
|
-
/* @__PURE__ */ jsx("span", { className: "crewlet-brief-card__dot", children: /* @__PURE__ */ jsx(StatusDot, { tone: need.tone ?? "warning" }) }),
|
|
62
|
-
/* @__PURE__ */ jsxs("span", { className: "crewlet-brief-card__words", children: [
|
|
63
|
-
/* @__PURE__ */ jsx("span", { children: need.text }),
|
|
64
|
-
need.detail === void 0 || need.detail === null ? null : /* @__PURE__ */ jsx("span", { className: "crewlet-brief-card__detail", children: need.detail })
|
|
65
|
-
] }),
|
|
66
|
-
need.action ? /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", onClick: need.action.onSelect, children: need.action.label }) : null
|
|
67
|
-
] }, need.key)) })
|
|
68
|
-
)
|
|
69
|
-
] }),
|
|
70
|
-
recommended === null ? null : /* @__PURE__ */ jsxs("section", { className: "crewlet-brief-card__block", "aria-labelledby": `${id}-next`, children: [
|
|
71
|
-
/* @__PURE__ */ jsx("h4", { className: "crewlet-brief-card__label", id: `${id}-next`, children: labels.recommended }),
|
|
72
|
-
/* @__PURE__ */ jsxs("div", { className: "crewlet-brief-card__next", children: [
|
|
73
|
-
/* @__PURE__ */ jsx(ArrowRightGlyph, { size: "sm", "aria-hidden": "true", className: "crewlet-brief-card__arrow" }),
|
|
74
|
-
/* @__PURE__ */ jsx("span", { children: recommended.text }),
|
|
75
|
-
recommended.action ? /* @__PURE__ */ jsx(Button, { size: "small", variant: "primary", onClick: recommended.action.onSelect, children: recommended.action.label }) : null
|
|
76
|
-
] })
|
|
77
|
-
] }),
|
|
78
|
-
followUps && followUps.length > 0 ? /* @__PURE__ */ jsxs("section", { className: "crewlet-brief-card__block", "aria-labelledby": `${id}-ask`, children: [
|
|
79
|
-
/* @__PURE__ */ jsx("h4", { className: "crewlet-brief-card__label", id: `${id}-ask`, children: labels.followUps }),
|
|
80
|
-
/* @__PURE__ */ jsx(SuggestionList, { className: "crewlet-brief-card__follow-ups", children: followUps.map((f) => /* @__PURE__ */ jsx(SuggestionRow, { icon: /* @__PURE__ */ jsx(MessageCircleQuestionMarkGlyph, { size: "sm" }), onSelect: f.onSelect, children: f.question }, f.key)) })
|
|
81
|
-
] }) : null
|
|
82
|
-
] })
|
|
83
|
-
}
|
|
84
|
-
);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export { BRIEF_CARD_LABELS, BRIEF_CARD_MAX_NEEDS, BriefCard };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useListbox } from './chunk-7KHM2FZH.js';
|
|
2
2
|
import { Tag } from './chunk-I5OIKDX2.js';
|
|
3
|
-
import { announce } from './chunk-2G355KDJ.js';
|
|
4
3
|
import { isComposing } from './chunk-H5XTJ7GJ.js';
|
|
5
4
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
6
5
|
import { useFocusModality } from './chunk-NUZHC6MM.js';
|
|
6
|
+
import { announce } from './chunk-2G355KDJ.js';
|
|
7
7
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
8
8
|
import './TagsInput-MZXEHKJD.css';
|
|
9
9
|
import { forwardRef, useState, useRef, useId, useImperativeHandle, useEffect, useMemo, useLayoutEffect } from 'react';
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { announce } from './chunk-2G355KDJ.js';
|
|
2
1
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
2
|
+
import { announce } from './chunk-2G355KDJ.js';
|
|
3
3
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
4
4
|
import './ArrangeFrame-QCQZ5RF6.css';
|
|
5
5
|
import { forwardRef, useRef, useCallback, useState, useEffect } from 'react';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StepList } from './chunk-HJBHP66O.js';
|
|
2
|
-
import { ReceiptStrip } from './chunk-ZWCK4N4L.js';
|
|
3
2
|
import { Meter } from './chunk-RQFRRPV6.js';
|
|
3
|
+
import { ReceiptStrip } from './chunk-ZWCK4N4L.js';
|
|
4
4
|
import { StatusCard } from './chunk-NTQPJJAN.js';
|
|
5
5
|
import { Disclosure } from './chunk-222VILSP.js';
|
|
6
6
|
import { Spinner } from './chunk-XSPCITPN.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SlideStage, SLIDE_WIDTH, SLIDE_HEIGHT } from './chunk-RMEBFYL7.js';
|
|
2
1
|
import { SlideNav } from './chunk-5AJR6X75.js';
|
|
2
|
+
import { SlideStage, SLIDE_WIDTH, SLIDE_HEIGHT } from './chunk-RMEBFYL7.js';
|
|
3
3
|
import { Eyebrow } from './chunk-RK4XPHVG.js';
|
|
4
4
|
import { Button } from './chunk-DGXZ635L.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Toolbar } from './chunk-NR4CPM4T.js';
|
|
2
|
-
import { announce } from './chunk-2G355KDJ.js';
|
|
3
2
|
import { Button } from './chunk-DGXZ635L.js';
|
|
4
3
|
import { returnFocus } from './chunk-NUZHC6MM.js';
|
|
4
|
+
import { announce } from './chunk-2G355KDJ.js';
|
|
5
5
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
6
6
|
import './SelectionBar-SCAU6EBY.css';
|
|
7
7
|
import { useRef, useEffect } from 'react';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { characterCountState, CharacterCount } from './chunk-PGCLHYVP.js';
|
|
2
2
|
import { useHeadingLevel, headingTag, HeadingLevelProvider, nextHeadingLevel } from './chunk-PQADV6P6.js';
|
|
3
|
-
import { announce } from './chunk-2G355KDJ.js';
|
|
4
3
|
import { isComposing } from './chunk-H5XTJ7GJ.js';
|
|
5
4
|
import { IconButton } from './chunk-UAUP6XGK.js';
|
|
6
5
|
import { useFocusModality } from './chunk-NUZHC6MM.js';
|
|
6
|
+
import { announce } from './chunk-2G355KDJ.js';
|
|
7
7
|
import { VisuallyHidden } from './chunk-UT6CW3C7.js';
|
|
8
8
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
9
9
|
import './Input-GEFFMKBS.css';
|