@crewlethq/ui 0.48.2 → 0.49.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 +60 -0
- package/dist/AgentHandoffPanel/index.js +4 -4
- package/dist/AppShell/index.js +4 -4
- package/dist/{AppShell-5P575KYA.css → AppShell-BIUFNT3J.css} +30 -11
- package/dist/ArrangeList/index.js +4 -4
- package/dist/ArtifactBar/index.js +9 -9
- package/dist/{ArtifactBar-6PGWGKN2.css → ArtifactBar-UMZCTARR.css} +9 -0
- package/dist/ArtifactCard/ArtifactCard.d.ts +30 -1
- package/dist/ArtifactCard/index.js +12 -5
- package/dist/{ArtifactCard-OGTMO2KI.css → ArtifactCard-SOB63NV5.css} +72 -1
- package/dist/ArtifactCover/index.js +2 -2
- package/dist/ArtifactIcon/index.js +2 -2
- package/dist/ArtifactKindGlyph/ArtifactKindGlyph.d.ts +7 -3
- package/dist/ArtifactKindGlyph/index.js +1 -1
- package/dist/ArtifactKindIllustration/ArtifactKindIllustration.d.ts +4 -3
- package/dist/ArtifactKindIllustration/index.js +1 -1
- package/dist/{ArtifactKinds-CVD3FCYO.css → ArtifactKinds-O3CALPVX.css} +1 -0
- package/dist/ArtifactMakeRow/index.js +2 -2
- package/dist/ArtifactNameCell/ArtifactNameCell.d.ts +14 -1
- package/dist/ArtifactNameCell/index.d.ts +1 -1
- package/dist/ArtifactNameCell/index.js +2 -2
- package/dist/{ArtifactNameCell-RTVP4LO4.css → ArtifactNameCell-3AHLUSE5.css} +12 -0
- package/dist/AvatarPicker/index.js +7 -7
- package/dist/BrandChip/BrandChip.d.ts +26 -0
- package/dist/BrandChip/index.d.ts +3 -0
- package/dist/BrandChip/index.js +2 -0
- package/dist/BrandChip-SQWBC2WU.css +81 -0
- package/dist/BrandSample/BrandSample.d.ts +75 -0
- package/dist/BrandSample/index.d.ts +3 -0
- package/dist/BrandSample/index.js +5 -0
- package/dist/BrandSample-G5V7GKR2.css +185 -0
- package/dist/BrandScope/BrandScope.d.ts +61 -0
- package/dist/BrandScope/index.d.ts +4 -0
- package/dist/BrandScope/index.js +4 -0
- package/dist/BrandScope-H2KZHGT7.css +29 -0
- package/dist/Canvas/index.js +2 -2
- package/dist/CanvasBoard/index.js +4 -4
- package/dist/CanvasToolbar/index.js +3 -3
- package/dist/Checkbox/Checkbox.d.ts +8 -0
- package/dist/Checkbox/index.js +3 -3
- package/dist/{Checkbox-ALWG3WV2.css → Checkbox-MB22OW6P.css} +18 -0
- package/dist/ColorField/ColorField.d.ts +63 -0
- package/dist/ColorField/index.d.ts +3 -0
- package/dist/ColorField/index.js +11 -0
- package/dist/ColorField-2OIOWT3Z.css +68 -0
- package/dist/ColorSwatch/ColorSwatch.d.ts +43 -0
- package/dist/ColorSwatch/index.d.ts +3 -0
- package/dist/ColorSwatch/index.js +9 -0
- package/dist/ColorSwatch-DNMUFHNS.css +83 -0
- package/dist/Combobox/Combobox.d.ts +45 -4
- package/dist/Combobox/index.d.ts +1 -1
- package/dist/Combobox/index.js +3 -3
- package/dist/Combobox-GBCWXWEB.css +163 -0
- package/dist/CommandPalette/index.js +5 -5
- package/dist/CommentThread/index.js +5 -5
- package/dist/Composer/index.js +3 -3
- package/dist/ConfirmField/index.js +3 -3
- package/dist/ContrastBadge/ContrastBadge.d.ts +63 -0
- package/dist/ContrastBadge/index.d.ts +3 -0
- package/dist/ContrastBadge/index.js +6 -0
- package/dist/ContrastBadge-CBZPGG3G.css +47 -0
- package/dist/DataGrid/DataGrid.d.ts +28 -1
- package/dist/DataGrid/index.js +8 -1
- package/dist/{DataGrid-AQKPJD7W.css → DataGrid-VNGQESJA.css} +15 -0
- package/dist/DataTable/index.js +6 -6
- package/dist/DataView/index.js +10 -10
- package/dist/DateTimePicker/index.js +3 -3
- package/dist/DocTabsEditor/index.js +4 -4
- package/dist/{Editor-6U4BJ25W.js → Editor-MLGK3KOG.js} +3 -3
- package/dist/FolderTile/FolderTile.d.ts +91 -0
- package/dist/FolderTile/index.d.ts +3 -0
- package/dist/FolderTile/index.js +7 -0
- package/dist/FolderTile-FDT5Y63Z.css +231 -0
- package/dist/HuePicker/index.js +6 -6
- package/dist/Input/index.js +2 -2
- package/dist/LinkInterstitial/index.js +3 -3
- package/dist/ListInput/index.js +3 -3
- package/dist/LogoSlot/LogoSlot.d.ts +84 -0
- package/dist/LogoSlot/index.d.ts +3 -0
- package/dist/LogoSlot/index.js +9 -0
- package/dist/LogoSlot-T2UFOJXU.css +159 -0
- package/dist/MarkdownEditor/index.js +6 -6
- package/dist/Menu/index.js +2 -2
- package/dist/MergeConflicts/index.js +6 -6
- package/dist/Modal/Modal.d.ts +13 -0
- package/dist/Modal/index.js +2 -2
- package/dist/{Modal-TOEWHDCQ.css → Modal-3HMP7WAZ.css} +30 -0
- package/dist/OrgTable/index.js +1 -1
- package/dist/PresenterView/index.js +3 -3
- package/dist/PrincipalPicker/index.js +4 -4
- package/dist/RichEditor/index.js +1 -1
- package/dist/SegmentedControl/index.js +5 -5
- package/dist/Select/index.js +2 -2
- package/dist/SelectionBar/SelectionBar.d.ts +50 -0
- package/dist/SelectionBar/index.d.ts +3 -0
- package/dist/SelectionBar/index.js +9 -0
- package/dist/SelectionBar-XPWKUOSC.css +61 -0
- package/dist/ShareDialog/index.js +6 -6
- package/dist/SheetColumnEditor/index.js +10 -10
- package/dist/SheetGrid/index.js +4 -4
- package/dist/SlideFilmstrip/index.js +3 -3
- package/dist/Switcher/index.js +4 -4
- package/dist/Tabs/index.js +4 -4
- package/dist/TagsInput/index.js +2 -2
- package/dist/ThemeGallery/ThemeGallery.d.ts +13 -2
- package/dist/ThemeGallery/index.js +3 -1
- package/dist/{ThemeGallery-X35Y25EX.css → ThemeGallery-UEFZRT6W.css} +21 -0
- package/dist/ThemeSwitcher/index.js +6 -6
- package/dist/TimeWindowPicker/index.js +6 -6
- package/dist/TreeCanvas/index.js +3 -3
- package/dist/TreeGrid/index.js +1 -1
- package/dist/TypeSpecimen/TypeSpecimen.d.ts +49 -0
- package/dist/TypeSpecimen/index.d.ts +3 -0
- package/dist/TypeSpecimen/index.js +3 -0
- package/dist/TypeSpecimen-WK6YNHL7.css +96 -0
- package/dist/VersionCompare/index.js +6 -6
- package/dist/{chunk-RBUA7ZNK.js → chunk-34RMTXDZ.js} +1 -1
- package/dist/{chunk-YFUG6ARA.js → chunk-3QSKDZR5.js} +1 -1
- package/dist/chunk-5SGHW42B.js +23 -0
- package/dist/{chunk-R2EOET5Q.js → chunk-627KFRON.js} +2 -2
- package/dist/{chunk-SMVWDO72.js → chunk-6FVGSWLS.js} +1 -1
- package/dist/{chunk-ILDNJHRU.js → chunk-AVL52EME.js} +1 -1
- package/dist/chunk-B235ANDO.js +66 -0
- package/dist/{chunk-MZ3QFQDL.js → chunk-CAVWDJF4.js} +1 -1
- package/dist/{chunk-BLQRC7QR.js → chunk-D6MTBXAJ.js} +2 -2
- package/dist/{chunk-2MYSESZF.js → chunk-FB5CFQTG.js} +82 -12
- package/dist/{chunk-KNMQS3JY.js → chunk-GHY63X4C.js} +1 -1
- package/dist/{chunk-DY4DQ7EB.js → chunk-GP4YWZFO.js} +1 -1
- package/dist/{chunk-NRWJUGNA.js → chunk-H55D66IK.js} +1 -1
- package/dist/{chunk-JNFTFAPN.js → chunk-H7NMJ5AI.js} +2 -2
- package/dist/{chunk-GKRPPSWY.js → chunk-ILFEWRLG.js} +1 -1
- package/dist/chunk-ITI2Z44C.js +139 -0
- package/dist/{chunk-P5VGSVWG.js → chunk-J24Q4HTD.js} +17 -8
- package/dist/{chunk-2FDTSARB.js → chunk-JFDIMO3A.js} +2 -2
- package/dist/chunk-JKAFEFFC.js +44 -0
- package/dist/{chunk-6HYPQ5PY.js → chunk-JWNYI7UD.js} +1 -1
- package/dist/{chunk-WT5UPL6P.js → chunk-KHZYAEGZ.js} +1 -1
- package/dist/chunk-M4QM477B.js +80 -0
- package/dist/{chunk-YUDUYMZB.js → chunk-MIEBOO7Y.js} +2 -2
- package/dist/{chunk-IVA7ZWDS.js → chunk-NAWUXCBC.js} +5 -5
- package/dist/{chunk-YUAQSWNW.js → chunk-NCHKKYPQ.js} +6 -3
- package/dist/chunk-OCRVY42T.js +50 -0
- package/dist/chunk-OEEYL2CM.js +73 -0
- package/dist/chunk-P3OIM6OC.js +38 -0
- package/dist/{chunk-FWBKMPNR.js → chunk-P3QWT5VR.js} +1 -1
- package/dist/chunk-P5JBDHWC.js +206 -0
- package/dist/{chunk-WQJSOTEO.js → chunk-PGR2PKH6.js} +1 -1
- package/dist/{chunk-U2XAJONO.js → chunk-Q44X36QC.js} +80 -36
- package/dist/{chunk-R2IBCEU6.js → chunk-R3BA3C4Y.js} +2 -2
- package/dist/{chunk-HDMLHJFI.js → chunk-R6R2UHVG.js} +4 -4
- package/dist/{chunk-VBEMIZIJ.js → chunk-RFPCHMSX.js} +1 -1
- package/dist/{chunk-CE2THTQR.js → chunk-RSKW25Y5.js} +4 -3
- package/dist/{chunk-UBZDYOCA.js → chunk-RV6XB5UV.js} +12 -1
- package/dist/{chunk-LXCRHVMZ.js → chunk-SEPSXOGJ.js} +1 -1
- package/dist/{chunk-K2FNW3MK.js → chunk-SQ4JFHO7.js} +1 -1
- package/dist/{chunk-F45VSK2M.js → chunk-SS4XCUUJ.js} +2 -2
- package/dist/{chunk-E4BOVKNJ.js → chunk-UTESMBPL.js} +5 -3
- package/dist/chunk-UZMNR366.js +9 -0
- package/dist/{chunk-GQXVLFQB.js → chunk-V7GOOXPK.js} +1 -1
- package/dist/{chunk-KMNY3KEB.js → chunk-VBIM6HFC.js} +2 -2
- package/dist/{chunk-Z5RZXVQ7.js → chunk-VN47PYUF.js} +7 -7
- package/dist/{chunk-CNTBUK24.js → chunk-VP2ODUCC.js} +2 -2
- package/dist/{chunk-VIAQW6RK.js → chunk-VTSJMDGP.js} +5 -5
- package/dist/chunk-W6FOEBIL.js +119 -0
- package/dist/chunk-WLSEAIVC.js +48 -0
- package/dist/{chunk-DETVVKAH.js → chunk-WQ7S7CKZ.js} +3 -3
- package/dist/{chunk-OKUULQ22.js → chunk-WXOYHVWG.js} +2 -2
- package/dist/{chunk-NILOJV62.js → chunk-X4NIE7CI.js} +1 -1
- package/dist/{chunk-PZZHO6OS.js → chunk-XS2FJVMT.js} +1 -1
- package/dist/{chunk-6AKG2VLR.js → chunk-YCC2S7DF.js} +4 -1
- package/dist/{chunk-5CLWBPB5.js → chunk-ZCIL5IHU.js} +1 -1
- package/dist/chunk-ZH77BXMA.js +14 -0
- package/dist/generated/index.d.ts +10 -0
- package/dist/generated/index.js +101 -89
- package/dist/index.js +101 -89
- package/dist/styles.css +1370 -22
- package/dist/utils/fontFamily.d.ts +29 -0
- package/dist/utils/hexColour.d.ts +12 -0
- package/package.json +3 -3
- package/scripts/check-css-variables.mjs +18 -2
- package/dist/Combobox-YDONYDTM.css +0 -81
- package/dist/chunk-LOBV4QON.js +0 -137
- package/dist/{chunk-245IXG5P.js → chunk-3WMOEGEL.js} +0 -0
- package/dist/{chunk-ICPQIAD6.js → chunk-D7Q5MQRF.js} +1 -1
- package/dist/{chunk-ISDEXIXH.js → chunk-E6HXFFWO.js} +1 -1
- package/dist/{chunk-D4EOPIFL.js → chunk-EXRRTKWT.js} +1 -1
- package/dist/{chunk-S6J3EWDP.js → chunk-SXBJMBSV.js} +1 -1
- package/dist/{chunk-3JIZ2A6K.js → chunk-TMM32U7D.js} +1 -1
- package/dist/{chunk-LD3GEVQU.js → chunk-XQZ6EWOE.js} +1 -1
- package/dist/{chunk-K77LKW3X.js → chunk-ZFM5L7M4.js} +2 -2
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Whether one colour reads on another: a sample of the pair, the ratio and
|
|
3
|
+
* the level. The sample's two colours are the only values here that are not
|
|
4
|
+
* tokens, and they arrive through `--crewlet-contrast-badge-ink` and
|
|
5
|
+
* `--crewlet-contrast-badge-ground` only once both have passed `#rrggbb`.
|
|
6
|
+
*/
|
|
7
|
+
.crewlet-contrast-badge {
|
|
8
|
+
display: inline-flex;
|
|
9
|
+
flex-wrap: wrap;
|
|
10
|
+
align-items: center;
|
|
11
|
+
gap: var(--spacing-2);
|
|
12
|
+
min-width: 0;
|
|
13
|
+
font-size: var(--font-size-xs);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* THE SAMPLE HAS AN EDGE OF ITS OWN, so a ground that matches the page is
|
|
17
|
+
still a sample. */
|
|
18
|
+
.crewlet-contrast-badge__sample {
|
|
19
|
+
display: inline-flex;
|
|
20
|
+
flex: none;
|
|
21
|
+
align-items: center;
|
|
22
|
+
justify-content: center;
|
|
23
|
+
width: var(--size-control-sm);
|
|
24
|
+
height: var(--size-control-sm);
|
|
25
|
+
box-sizing: border-box;
|
|
26
|
+
border-radius: var(--radius-sm);
|
|
27
|
+
background: var(--crewlet-contrast-badge-ground, var(--color-surface-inset));
|
|
28
|
+
box-shadow: inset 0 0 0 1px var(--color-border-hover);
|
|
29
|
+
color: var(--crewlet-contrast-badge-ink, var(--color-text-tertiary));
|
|
30
|
+
font-size: var(--font-size-xs);
|
|
31
|
+
font-weight: var(--font-weight-semibold);
|
|
32
|
+
line-height: 1;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.crewlet-contrast-badge__label {
|
|
36
|
+
color: var(--color-text-secondary);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.crewlet-contrast-badge__ratio {
|
|
40
|
+
color: var(--color-text-primary);
|
|
41
|
+
font-family: var(--font-family-mono);
|
|
42
|
+
font-variant-numeric: tabular-nums;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.crewlet-contrast-badge__unmeasured {
|
|
46
|
+
color: var(--color-text-tertiary);
|
|
47
|
+
}
|
|
@@ -123,6 +123,20 @@ export interface DataGridBand<T> {
|
|
|
123
123
|
/** A per-band aggregate line, or the way to what the band did not fit. */
|
|
124
124
|
footer?: ReactNode;
|
|
125
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Rows a reader picks for a bulk action, by their `rowKey`: a column of boxes
|
|
128
|
+
* before the first, with a box over them in the head.
|
|
129
|
+
*/
|
|
130
|
+
export interface DataGridSelection<T> {
|
|
131
|
+
/** The keys of the rows picked. Controlled, and kept across pages and sorts by the host. */
|
|
132
|
+
selected: ReadonlySet<string>;
|
|
133
|
+
/** The keys as they should be now. */
|
|
134
|
+
onChange: (selected: ReadonlySet<string>) => void;
|
|
135
|
+
/** A row's box, said: "Select Q3 plan". The row's own words are its name, so this says what ticking it does. */
|
|
136
|
+
rowLabel: (row: T) => string;
|
|
137
|
+
/** A row that cannot be picked (the reader may not act on it): its box is drawn and disabled. */
|
|
138
|
+
isSelectable?: ((row: T) => boolean) | undefined;
|
|
139
|
+
}
|
|
126
140
|
/** The words a grid says, for an application that says them otherwise. */
|
|
127
141
|
export interface DataGridLabels {
|
|
128
142
|
/** "Hidden to fit: Due and Updated". */
|
|
@@ -131,6 +145,8 @@ export interface DataGridLabels {
|
|
|
131
145
|
showEveryColumn: string;
|
|
132
146
|
/** Joins the last two names of a list: "Due and Updated". */
|
|
133
147
|
and: string;
|
|
148
|
+
/** The head's box, over every row the grid draws. */
|
|
149
|
+
selectAll: string;
|
|
134
150
|
}
|
|
135
151
|
/**
|
|
136
152
|
* What an application drives a grid's cursor with. The grid binds no keys of
|
|
@@ -156,6 +172,17 @@ export interface DataGridProps<T> {
|
|
|
156
172
|
rowHref?: ((row: T) => string) | undefined;
|
|
157
173
|
/** The row the reader is on (the object a page or a side panel shows): tinted and announced as current. */
|
|
158
174
|
isSelected?: ((row: T) => boolean) | undefined;
|
|
175
|
+
/**
|
|
176
|
+
* Rows picked for a bulk action: a box on every row before the first
|
|
177
|
+
* column, and one in the head over every row drawn (ticked, clear, or mixed
|
|
178
|
+
* when some are). Shift with a box picks or clears every row between it and
|
|
179
|
+
* the box pressed before it, in the order the grid draws them.
|
|
180
|
+
*
|
|
181
|
+
* NOT `isSelected`, which is the one row the reader is ON. A picked row is
|
|
182
|
+
* tinted in the selected fill and its box says it; the current row keeps
|
|
183
|
+
* its own mark.
|
|
184
|
+
*/
|
|
185
|
+
selection?: DataGridSelection<T> | undefined;
|
|
159
186
|
isFailed?: ((row: T) => boolean) | undefined;
|
|
160
187
|
/**
|
|
161
188
|
* The sort as `key` or `-key` (descending), empty for the rows' own order.
|
|
@@ -264,4 +291,4 @@ export declare function fitGridColumns({ fit, width, overflows, visible, }: {
|
|
|
264
291
|
* lets its head stick against the page's scroller; an application whose
|
|
265
292
|
* scroller carries a sticky bar sets `--crewlet-data-grid-sticky-top`.
|
|
266
293
|
*/
|
|
267
|
-
export declare function DataGrid<T>({ rows, bands, columns, rowKey, onRowActivate, rowHref, isSelected, isFailed, sort: sortRaw, onSortChange, serverSorted, cols: colsRaw, onColsChange, empty, footer, onLoadMore, loadedNote, phoneRows, flush, handleRef, onPointerDown, labels, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, className, }: DataGridProps<T>): import("react").JSX.Element;
|
|
294
|
+
export declare function DataGrid<T>({ rows, bands, columns, rowKey, onRowActivate, rowHref, isSelected, selection, isFailed, sort: sortRaw, onSortChange, serverSorted, cols: colsRaw, onColsChange, empty, footer, onLoadMore, loadedNote, phoneRows, flush, handleRef, onPointerDown, labels, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledby, className, }: DataGridProps<T>): import("react").JSX.Element;
|
package/dist/DataGrid/index.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
export { ChooserList, ColumnChooser, DataGrid, columnChoicesOf, fitGridColumns, parseGridSort } from '../chunk-
|
|
1
|
+
export { ChooserList, ColumnChooser, DataGrid, columnChoicesOf, fitGridColumns, parseGridSort } from '../chunk-FB5CFQTG.js';
|
|
2
|
+
import '../chunk-NCHKKYPQ.js';
|
|
2
3
|
import '../chunk-PPUR46MK.js';
|
|
4
|
+
import '../chunk-EXRRTKWT.js';
|
|
5
|
+
import '../chunk-XCUUI7E7.js';
|
|
3
6
|
import '../chunk-PQADV6P6.js';
|
|
7
|
+
import '../chunk-RSAQOKH3.js';
|
|
4
8
|
import '../chunk-RTPQDNW3.js';
|
|
5
9
|
import '../chunk-OG6CL3EB.js';
|
|
10
|
+
import '../chunk-H5XTJ7GJ.js';
|
|
11
|
+
import '../chunk-LACA4JGC.js';
|
|
12
|
+
import '../chunk-NUZHC6MM.js';
|
|
6
13
|
import '../chunk-BZFWDIV6.js';
|
|
7
14
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -195,6 +195,21 @@ button.crewlet-data-grid__row-link {
|
|
|
195
195
|
background: var(--color-brand-accent-soft);
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
+
/*
|
|
199
|
+
* PICKED FOR A BULK ACTION (`selection`), as every chosen option is drawn:
|
|
200
|
+
* the selected fill, never the accent. One fill, so the hover overlay does not
|
|
201
|
+
* stack on it, and its box says it as well.
|
|
202
|
+
*/
|
|
203
|
+
.crewlet-data-grid__row--picked,
|
|
204
|
+
.crewlet-data-grid__row--picked:hover {
|
|
205
|
+
background: var(--color-surface-selected);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/* The selection box, centred in its track and standing above the row's link. */
|
|
209
|
+
.crewlet-data-grid__select {
|
|
210
|
+
display: inline-flex;
|
|
211
|
+
}
|
|
212
|
+
|
|
198
213
|
.crewlet-data-grid__row--cursor {
|
|
199
214
|
box-shadow: inset 2px 0 0 var(--color-brand-accent);
|
|
200
215
|
}
|
package/dist/DataTable/index.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-
|
|
1
|
+
export { ALL_ITEMS, CopyableCell, DATA_TABLE_LABELS, DataTable, RowActionsMenu } from '../chunk-WQ7S7CKZ.js';
|
|
2
|
+
import '../chunk-YCC2S7DF.js';
|
|
2
3
|
import '../chunk-STJ7QBC3.js';
|
|
3
4
|
import '../chunk-DTIW4CHZ.js';
|
|
4
|
-
import '../chunk-6AKG2VLR.js';
|
|
5
|
-
import '../chunk-YUAQSWNW.js';
|
|
6
5
|
import '../chunk-EUCC37WY.js';
|
|
7
6
|
import '../chunk-AV2DXAEL.js';
|
|
8
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-NCHKKYPQ.js';
|
|
8
|
+
import '../chunk-EXRRTKWT.js';
|
|
9
9
|
import '../chunk-XCUUI7E7.js';
|
|
10
10
|
import '../chunk-PQADV6P6.js';
|
|
11
11
|
import '../chunk-RSAQOKH3.js';
|
|
12
|
-
import '../chunk-
|
|
12
|
+
import '../chunk-TMM32U7D.js';
|
|
13
13
|
import '../chunk-OMV5W53A.js';
|
|
14
14
|
import '../chunk-OG6CL3EB.js';
|
|
15
15
|
import '../chunk-H5XTJ7GJ.js';
|
|
16
|
-
import '../chunk-NUZHC6MM.js';
|
|
17
16
|
import '../chunk-LACA4JGC.js';
|
|
17
|
+
import '../chunk-NUZHC6MM.js';
|
|
18
18
|
import '../chunk-BZFWDIV6.js';
|
|
19
19
|
import '../chunk-ODEQTPFM.js';
|
package/dist/DataView/index.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-
|
|
1
|
+
export { DATA_VIEW_TOOLBAR_LABELS, DataView, DataViewToolbar, FILTER_AXIS_LABELS, FilterAxisBar, FilterAxisChip, applyColumnFilters, applyFilters, blankFilterValue, defaultOperator, filterDefsFromColumns, filterHasValue, filterPredicate, formatFilterValue, operatorOf, tableColumns } from '../chunk-NAWUXCBC.js';
|
|
2
2
|
import '../chunk-DKB73KZI.js';
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-ZFM5L7M4.js';
|
|
4
|
+
import '../chunk-WQ7S7CKZ.js';
|
|
5
|
+
import '../chunk-YCC2S7DF.js';
|
|
6
|
+
import '../chunk-7KHM2FZH.js';
|
|
5
7
|
import '../chunk-STJ7QBC3.js';
|
|
6
8
|
import '../chunk-DTIW4CHZ.js';
|
|
7
|
-
import '../chunk-6AKG2VLR.js';
|
|
8
|
-
import '../chunk-7KHM2FZH.js';
|
|
9
|
-
import '../chunk-KHJIEPZV.js';
|
|
10
9
|
import '../chunk-GXQ3B46I.js';
|
|
11
10
|
import '../chunk-NR4CPM4T.js';
|
|
12
|
-
import '../chunk-
|
|
11
|
+
import '../chunk-KHJIEPZV.js';
|
|
13
12
|
import '../chunk-3CZ7XAVY.js';
|
|
14
13
|
import '../chunk-EUCC37WY.js';
|
|
15
14
|
import '../chunk-AV2DXAEL.js';
|
|
15
|
+
import '../chunk-NCHKKYPQ.js';
|
|
16
16
|
import '../chunk-SMBKXWML.js';
|
|
17
|
-
import '../chunk-
|
|
17
|
+
import '../chunk-EXRRTKWT.js';
|
|
18
18
|
import '../chunk-XCUUI7E7.js';
|
|
19
19
|
import '../chunk-BHHIIK3M.js';
|
|
20
20
|
import '../chunk-PQADV6P6.js';
|
|
21
21
|
import '../chunk-RSAQOKH3.js';
|
|
22
|
-
import '../chunk-
|
|
22
|
+
import '../chunk-TMM32U7D.js';
|
|
23
23
|
import '../chunk-OMV5W53A.js';
|
|
24
24
|
import '../chunk-OG6CL3EB.js';
|
|
25
25
|
import '../chunk-H5XTJ7GJ.js';
|
|
26
|
-
import '../chunk-NUZHC6MM.js';
|
|
27
26
|
import '../chunk-LACA4JGC.js';
|
|
27
|
+
import '../chunk-NUZHC6MM.js';
|
|
28
28
|
import '../chunk-BZFWDIV6.js';
|
|
29
29
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-
|
|
2
|
-
import '../chunk-KHJIEPZV.js';
|
|
1
|
+
export { DEFAULT_DATE_TIME_PICKER_LABELS, DateTimePicker } from '../chunk-ZFM5L7M4.js';
|
|
3
2
|
import '../chunk-GXQ3B46I.js';
|
|
3
|
+
import '../chunk-KHJIEPZV.js';
|
|
4
4
|
import '../chunk-OMV5W53A.js';
|
|
5
5
|
import '../chunk-OG6CL3EB.js';
|
|
6
6
|
import '../chunk-H5XTJ7GJ.js';
|
|
7
|
-
import '../chunk-NUZHC6MM.js';
|
|
8
7
|
import '../chunk-LACA4JGC.js';
|
|
8
|
+
import '../chunk-NUZHC6MM.js';
|
|
9
9
|
import '../chunk-BZFWDIV6.js';
|
|
10
10
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-
|
|
1
|
+
export { DOC_TABS_EDITOR_LABELS, DocTabsEditor } from '../chunk-627KFRON.js';
|
|
2
2
|
import '../chunk-XJ2QEBMM.js';
|
|
3
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-EXRRTKWT.js';
|
|
4
4
|
import '../chunk-XCUUI7E7.js';
|
|
5
5
|
import '../chunk-PQADV6P6.js';
|
|
6
6
|
import '../chunk-RSAQOKH3.js';
|
|
7
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-TMM32U7D.js';
|
|
8
8
|
import '../chunk-OMV5W53A.js';
|
|
9
9
|
import '../chunk-OG6CL3EB.js';
|
|
10
10
|
import '../chunk-H5XTJ7GJ.js';
|
|
11
|
-
import '../chunk-NUZHC6MM.js';
|
|
12
11
|
import '../chunk-LACA4JGC.js';
|
|
12
|
+
import '../chunk-NUZHC6MM.js';
|
|
13
13
|
import '../chunk-BZFWDIV6.js';
|
|
14
14
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -2,16 +2,16 @@ import { richEditorLabels } from './chunk-CSQTDGTS.js';
|
|
|
2
2
|
import { schema, readMarkdown, writeMarkdown } from './chunk-QH6VYJ3X.js';
|
|
3
3
|
import { safeHref, MARKDOWN_CALLOUT_TONES } from './chunk-BAKPMH3S.js';
|
|
4
4
|
import { Toolbar } from './chunk-NR4CPM4T.js';
|
|
5
|
-
import { FormField, Input } from './chunk-
|
|
5
|
+
import { FormField, Input } from './chunk-EXRRTKWT.js';
|
|
6
6
|
import './chunk-XCUUI7E7.js';
|
|
7
7
|
import './chunk-PQADV6P6.js';
|
|
8
8
|
import './chunk-RSAQOKH3.js';
|
|
9
|
-
import { Menu } from './chunk-
|
|
9
|
+
import { Menu } from './chunk-TMM32U7D.js';
|
|
10
10
|
import { placePopup, viewportBounds } from './chunk-OMV5W53A.js';
|
|
11
11
|
import { Button } from './chunk-OG6CL3EB.js';
|
|
12
12
|
import { usePopupLayer } from './chunk-H5XTJ7GJ.js';
|
|
13
|
-
import './chunk-NUZHC6MM.js';
|
|
14
13
|
import { IconButton } from './chunk-LACA4JGC.js';
|
|
14
|
+
import './chunk-NUZHC6MM.js';
|
|
15
15
|
import { VisuallyHidden } from './chunk-BZFWDIV6.js';
|
|
16
16
|
import { cx } from './chunk-ODEQTPFM.js';
|
|
17
17
|
import { forwardRef, useMemo, useRef, useState, useId, useSyncExternalStore, useCallback, useLayoutEffect, useEffect, useImperativeHandle } from 'react';
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* What a folder holds that the reader can open: its direct children only,
|
|
4
|
+
* counted from the reader's own view of them. A folder grants nothing, so a
|
|
5
|
+
* reader who can open nothing inside is told so rather than told it is empty.
|
|
6
|
+
*/
|
|
7
|
+
export interface FolderContents {
|
|
8
|
+
artifacts: number;
|
|
9
|
+
folders: number;
|
|
10
|
+
}
|
|
11
|
+
export interface FolderContentsLabels {
|
|
12
|
+
/** "12 artifacts", "1 artifact". */
|
|
13
|
+
artifacts: (count: number) => string;
|
|
14
|
+
/** "2 folders", "1 folder". */
|
|
15
|
+
folders: (count: number) => string;
|
|
16
|
+
/** Said when the reader can open nothing inside, which is never "Empty". */
|
|
17
|
+
nothing: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The line a folder's tile and its list row say about what is inside: "12
|
|
21
|
+
* artifacts · 2 folders", one part alone when the other is none, and "Nothing
|
|
22
|
+
* you can open yet" for neither.
|
|
23
|
+
*
|
|
24
|
+
* ONE PHRASING, EXPORTED, so the grid's tile and the list's name cell
|
|
25
|
+
* (`ArtifactNameCell kind="folder"`, whose `detail` takes this) never say the
|
|
26
|
+
* same count two ways.
|
|
27
|
+
*/
|
|
28
|
+
export declare function describeFolderContents(contents: FolderContents, labels?: Partial<FolderContentsLabels>): string;
|
|
29
|
+
export type FolderTileSize = 'tile' | 'row';
|
|
30
|
+
export interface FolderTileLabels extends FolderContentsLabels {
|
|
31
|
+
/** What it is, said after its name: the tile draws a folder rather than printing the word. */
|
|
32
|
+
folder: string;
|
|
33
|
+
/** Said when the tile is chosen, since the chosen edge is a picture of it. */
|
|
34
|
+
selected: string;
|
|
35
|
+
}
|
|
36
|
+
export interface FolderTileProps {
|
|
37
|
+
name: string;
|
|
38
|
+
/** The folder's page. The whole tile is one real link. */
|
|
39
|
+
href: string;
|
|
40
|
+
/**
|
|
41
|
+
* Who can see the folder, as a glyph and a short word: an
|
|
42
|
+
* `ArtifactAccessLabel` with the folder's own word ("Everyone", "Only you").
|
|
43
|
+
* Read as part of the tile's description.
|
|
44
|
+
*/
|
|
45
|
+
visibility?: ReactNode;
|
|
46
|
+
/** What is inside that the reader can open. Left out (still loading), no line is drawn. */
|
|
47
|
+
contents?: FolderContents | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* The tile's own controls (a More menu), drawn OUTSIDE its link at its
|
|
50
|
+
* trailing edge and shown on hover and while focus is inside the tile, so a
|
|
51
|
+
* keyboard reaches them after the link and they are never nested in it.
|
|
52
|
+
*/
|
|
53
|
+
actions?: ReactNode;
|
|
54
|
+
/** It is chosen (a selection the host keeps): the selected edge and fill. */
|
|
55
|
+
selected?: boolean | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Something held over it would land in it: the drop target's edge and fill.
|
|
58
|
+
* Reserved for dragging onto a folder, which the host drives.
|
|
59
|
+
*/
|
|
60
|
+
dropTarget?: boolean | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* `tile` is a gallery's (a grid of them, a few across); `row` is the full
|
|
63
|
+
* width, 44px row a phone takes. A tile takes the row's shape on its own
|
|
64
|
+
* under the phone breakpoint.
|
|
65
|
+
*/
|
|
66
|
+
size?: FolderTileSize | undefined;
|
|
67
|
+
className?: string | undefined;
|
|
68
|
+
labels?: Partial<FolderTileLabels> | undefined;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* A folder in a gallery: the folder glyph on a neutral tint, the name on one
|
|
72
|
+
* line, who can see it and what is inside, and a More menu.
|
|
73
|
+
*
|
|
74
|
+
* SHORTER THAN AN ARTIFACT'S CARD AND WITH NO PREVIEW, so a folder and an
|
|
75
|
+
* artifact never look alike and the kind's badge keeps its meaning. The tint
|
|
76
|
+
* is neutral for the same reason: a folder is not a kind.
|
|
77
|
+
*
|
|
78
|
+
* THE FACTS ARE NEVER CUT. Who can see the folder and what is inside wrap
|
|
79
|
+
* onto a second line where the tile is narrow; only the name, which carries
|
|
80
|
+
* its whole self on hover, is cut to one line.
|
|
81
|
+
*
|
|
82
|
+
* THE WHOLE TILE IS ONE LINK, named by the folder's name alone and described
|
|
83
|
+
* by the rest, so a reader moving by link hears "Q3 launch" and then, if they
|
|
84
|
+
* wait, "Folder, Everyone, 12 artifacts · 2 folders". The More menu sits
|
|
85
|
+
* beside the link rather than inside it.
|
|
86
|
+
*
|
|
87
|
+
* ITS COUNT IS THE READER'S OWN. A folder grants nothing on what it holds, so
|
|
88
|
+
* the count is of what this reader can open, and a folder holding only things
|
|
89
|
+
* they cannot open says "Nothing you can open yet", never "Empty".
|
|
90
|
+
*/
|
|
91
|
+
export declare function FolderTile({ name, href, visibility, contents, actions, selected, dropTarget, size, className, labels, }: FolderTileProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { FolderTile, describeFolderContents } from '../chunk-M4QM477B.js';
|
|
2
|
+
import '../chunk-INHXF2CL.js';
|
|
3
|
+
import '../chunk-AV2DXAEL.js';
|
|
4
|
+
import '../chunk-BHHIIK3M.js';
|
|
5
|
+
import '../chunk-PQADV6P6.js';
|
|
6
|
+
import '../chunk-BZFWDIV6.js';
|
|
7
|
+
import '../chunk-ODEQTPFM.js';
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* A folder in a gallery: a short tile on Card (no preview), the folder glyph
|
|
3
|
+
* on a neutral tint over the name and one quiet line, and a More menu in the
|
|
4
|
+
* top corner outside the link. `row` is the full width, 44px row a phone
|
|
5
|
+
* takes, and a tile becomes one under the phone breakpoint.
|
|
6
|
+
*
|
|
7
|
+
* ON TOP OF CARD, so every rule that changes Card's own layout carries Card's
|
|
8
|
+
* class too: the two sheets meet at equal weight and the bundle orders them by
|
|
9
|
+
* file name, which puts Card's after this one.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/*
|
|
13
|
+
* THE ARTIFACT CARD'S CORNER, so a folder tile and the cards below it read as
|
|
14
|
+
* one gallery, and Card's own hover step (the hairline darkens, nothing
|
|
15
|
+
* lifts). The chosen state is Card's (`selected`): the selected edge over the
|
|
16
|
+
* selected fill.
|
|
17
|
+
*/
|
|
18
|
+
.crewlet-card.crewlet-folder-tile {
|
|
19
|
+
/*
|
|
20
|
+
* THE TWO SHAPES ARE ONE LAYOUT AT TWO SIZES, so the row (and a tile under
|
|
21
|
+
* the phone breakpoint) restates these and nothing else.
|
|
22
|
+
*/
|
|
23
|
+
--crewlet-folder-tile-radius: var(--radius-xl);
|
|
24
|
+
--crewlet-folder-tile-gap: var(--spacing-3);
|
|
25
|
+
--crewlet-folder-tile-pad-block: var(--spacing-4);
|
|
26
|
+
--crewlet-folder-tile-pad-inline: var(--spacing-4);
|
|
27
|
+
--crewlet-folder-tile-floor: auto;
|
|
28
|
+
--crewlet-folder-tile-glyph: 40px;
|
|
29
|
+
--crewlet-folder-tile-glyph-radius: var(--radius-md);
|
|
30
|
+
--crewlet-folder-tile-name: var(--font-size-md);
|
|
31
|
+
--crewlet-folder-tile-facts: var(--font-size-sm);
|
|
32
|
+
--crewlet-folder-tile-actions-inset: var(--spacing-3);
|
|
33
|
+
/*
|
|
34
|
+
* A TILE STACKS: the glyph on top with the More menu level with it in the
|
|
35
|
+
* other corner, then the name and the facts the full width of the tile,
|
|
36
|
+
* where a gallery four across has room for "Everyone · 12 artifacts · 2
|
|
37
|
+
* folders". A row is one line of glyph and words with the menu centred on
|
|
38
|
+
* it, and only the row gives the menu room.
|
|
39
|
+
*/
|
|
40
|
+
--crewlet-folder-tile-direction: column;
|
|
41
|
+
--crewlet-folder-tile-align: flex-start;
|
|
42
|
+
--crewlet-folder-tile-actions-top: calc(
|
|
43
|
+
var(--crewlet-folder-tile-pad-block) + (var(--crewlet-folder-tile-glyph) - var(--size-control-sm)) / 2
|
|
44
|
+
);
|
|
45
|
+
--crewlet-folder-tile-actions-shift: 0;
|
|
46
|
+
--crewlet-folder-tile-reserve-link: 0px;
|
|
47
|
+
|
|
48
|
+
flex-direction: row;
|
|
49
|
+
align-items: stretch;
|
|
50
|
+
min-width: 0;
|
|
51
|
+
border-radius: var(--crewlet-folder-tile-radius);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* ---- the row: a phone's, full width at 44px ---- */
|
|
55
|
+
|
|
56
|
+
.crewlet-card.crewlet-folder-tile--row {
|
|
57
|
+
--crewlet-folder-tile-radius: var(--radius-lg);
|
|
58
|
+
--crewlet-folder-tile-gap: var(--spacing-2);
|
|
59
|
+
--crewlet-folder-tile-pad-block: var(--spacing-1);
|
|
60
|
+
--crewlet-folder-tile-pad-inline: var(--spacing-3);
|
|
61
|
+
--crewlet-folder-tile-floor: var(--size-control-lg);
|
|
62
|
+
--crewlet-folder-tile-glyph: 28px;
|
|
63
|
+
--crewlet-folder-tile-glyph-radius: var(--radius-sm);
|
|
64
|
+
--crewlet-folder-tile-name: var(--font-size-sm);
|
|
65
|
+
--crewlet-folder-tile-facts: var(--font-size-xs);
|
|
66
|
+
--crewlet-folder-tile-actions-inset: var(--spacing-2);
|
|
67
|
+
--crewlet-folder-tile-direction: row;
|
|
68
|
+
--crewlet-folder-tile-align: center;
|
|
69
|
+
--crewlet-folder-tile-actions-top: 50%;
|
|
70
|
+
--crewlet-folder-tile-actions-shift: -50%;
|
|
71
|
+
--crewlet-folder-tile-reserve-link: calc(var(--size-control-sm) + var(--spacing-1));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* UNDER THE PHONE BREAKPOINT A TILE IS THE ROW, strictly under, as the
|
|
75
|
+
package switches there everywhere else. */
|
|
76
|
+
@media (width < 640px) {
|
|
77
|
+
.crewlet-card.crewlet-folder-tile--tile {
|
|
78
|
+
--crewlet-folder-tile-radius: var(--radius-lg);
|
|
79
|
+
--crewlet-folder-tile-gap: var(--spacing-2);
|
|
80
|
+
--crewlet-folder-tile-pad-block: var(--spacing-1);
|
|
81
|
+
--crewlet-folder-tile-pad-inline: var(--spacing-3);
|
|
82
|
+
--crewlet-folder-tile-floor: var(--size-control-lg);
|
|
83
|
+
--crewlet-folder-tile-glyph: 28px;
|
|
84
|
+
--crewlet-folder-tile-glyph-radius: var(--radius-sm);
|
|
85
|
+
--crewlet-folder-tile-name: var(--font-size-sm);
|
|
86
|
+
--crewlet-folder-tile-facts: var(--font-size-xs);
|
|
87
|
+
--crewlet-folder-tile-actions-inset: var(--spacing-2);
|
|
88
|
+
--crewlet-folder-tile-direction: row;
|
|
89
|
+
--crewlet-folder-tile-align: center;
|
|
90
|
+
--crewlet-folder-tile-actions-top: 50%;
|
|
91
|
+
--crewlet-folder-tile-actions-shift: -50%;
|
|
92
|
+
--crewlet-folder-tile-reserve-link: calc(var(--size-control-sm) + var(--spacing-1));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/*
|
|
97
|
+
* SOMETHING HELD OVER IT WOULD LAND IN IT: the accent edge over the accent's
|
|
98
|
+
* soft fill, the same pair a file drop target takes while files are over it,
|
|
99
|
+
* so "let go here" reads one way across the package.
|
|
100
|
+
*/
|
|
101
|
+
.crewlet-card.crewlet-folder-tile.is-drop-target {
|
|
102
|
+
border-color: var(--color-brand-accent);
|
|
103
|
+
background-color: var(--color-brand-accent-soft);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.crewlet-card.crewlet-folder-tile:has(.crewlet-folder-tile__link:focus-visible) {
|
|
107
|
+
outline: 2px solid var(--color-focus);
|
|
108
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* THE LINK IS THE TILE: it fills it, and the ring is drawn on the tile. */
|
|
112
|
+
.crewlet-folder-tile__link,
|
|
113
|
+
.crewlet-folder-tile__link:hover {
|
|
114
|
+
text-decoration: none;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.crewlet-folder-tile__link {
|
|
118
|
+
display: flex;
|
|
119
|
+
flex: 1 1 auto;
|
|
120
|
+
flex-direction: var(--crewlet-folder-tile-direction);
|
|
121
|
+
align-items: var(--crewlet-folder-tile-align);
|
|
122
|
+
gap: var(--crewlet-folder-tile-gap);
|
|
123
|
+
min-width: 0;
|
|
124
|
+
min-height: var(--crewlet-folder-tile-floor);
|
|
125
|
+
padding: var(--crewlet-folder-tile-pad-block) var(--crewlet-folder-tile-pad-inline);
|
|
126
|
+
border-radius: inherit;
|
|
127
|
+
color: inherit;
|
|
128
|
+
outline: none;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/* Room for the More menu on a row, where it sits beside the words. */
|
|
132
|
+
.crewlet-folder-tile--with-actions .crewlet-folder-tile__link {
|
|
133
|
+
padding-inline-end: calc(var(--crewlet-folder-tile-pad-inline) + var(--crewlet-folder-tile-reserve-link));
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* A NEUTRAL TINT, never a kind's: a folder is not a kind. */
|
|
137
|
+
.crewlet-folder-tile__glyph {
|
|
138
|
+
display: inline-flex;
|
|
139
|
+
flex: none;
|
|
140
|
+
align-items: center;
|
|
141
|
+
justify-content: center;
|
|
142
|
+
width: var(--crewlet-folder-tile-glyph);
|
|
143
|
+
height: var(--crewlet-folder-tile-glyph);
|
|
144
|
+
box-sizing: border-box;
|
|
145
|
+
border-radius: var(--crewlet-folder-tile-glyph-radius);
|
|
146
|
+
background: var(--color-surface-inset);
|
|
147
|
+
box-shadow: inset 0 0 0 1px var(--color-border-default);
|
|
148
|
+
color: var(--color-text-secondary);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.crewlet-folder-tile__body {
|
|
152
|
+
display: flex;
|
|
153
|
+
flex-direction: column;
|
|
154
|
+
gap: 2px;
|
|
155
|
+
min-width: 0;
|
|
156
|
+
max-width: 100%;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.crewlet-folder-tile__name {
|
|
160
|
+
overflow: hidden;
|
|
161
|
+
color: var(--color-text-primary);
|
|
162
|
+
font-size: var(--crewlet-folder-tile-name);
|
|
163
|
+
font-weight: var(--font-weight-medium);
|
|
164
|
+
line-height: 1.35;
|
|
165
|
+
text-overflow: ellipsis;
|
|
166
|
+
white-space: nowrap;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/*
|
|
170
|
+
* THE FACTS WRAP, NEVER CUT. "Everyone" and "Nothing you can open yet" are
|
|
171
|
+
* both things a reader has to read, and four tiles across a laptop's page do
|
|
172
|
+
* not have room for them on one line: the count moves under who can see the
|
|
173
|
+
* folder rather than losing its end to an ellipsis. The two are told apart by
|
|
174
|
+
* the visibility glyph and the gap between them, not by a separator, so a
|
|
175
|
+
* line that breaks never opens on a stray dot.
|
|
176
|
+
*/
|
|
177
|
+
.crewlet-folder-tile__facts {
|
|
178
|
+
display: flex;
|
|
179
|
+
flex-wrap: wrap;
|
|
180
|
+
align-items: center;
|
|
181
|
+
gap: 2px var(--spacing-3);
|
|
182
|
+
min-width: 0;
|
|
183
|
+
color: var(--color-text-tertiary);
|
|
184
|
+
font-size: var(--crewlet-folder-tile-facts);
|
|
185
|
+
line-height: 1.35;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.crewlet-folder-tile__visibility {
|
|
189
|
+
display: inline-flex;
|
|
190
|
+
flex: none;
|
|
191
|
+
align-items: center;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.crewlet-folder-tile__contents {
|
|
195
|
+
min-width: 0;
|
|
196
|
+
overflow-wrap: anywhere;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/*
|
|
200
|
+
* THE TILE'S OWN CONTROLS, at its trailing edge and outside the link: hidden
|
|
201
|
+
* until the tile is hovered or holds focus, so a gallery rests as names, and
|
|
202
|
+
* always there on a screen with no hover or while their menu is open.
|
|
203
|
+
*/
|
|
204
|
+
.crewlet-folder-tile__actions {
|
|
205
|
+
position: absolute;
|
|
206
|
+
top: var(--crewlet-folder-tile-actions-top);
|
|
207
|
+
right: var(--crewlet-folder-tile-actions-inset);
|
|
208
|
+
display: inline-flex;
|
|
209
|
+
gap: var(--spacing-1);
|
|
210
|
+
transform: translateY(var(--crewlet-folder-tile-actions-shift));
|
|
211
|
+
opacity: 0;
|
|
212
|
+
transition: opacity var(--motion-duration-fast) var(--motion-easing-out);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.crewlet-folder-tile:hover .crewlet-folder-tile__actions,
|
|
216
|
+
.crewlet-folder-tile:focus-within .crewlet-folder-tile__actions,
|
|
217
|
+
.crewlet-folder-tile__actions:has([aria-expanded='true']) {
|
|
218
|
+
opacity: 1;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
@media (hover: none) {
|
|
222
|
+
.crewlet-folder-tile__actions {
|
|
223
|
+
opacity: 1;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
@media (prefers-reduced-motion: reduce) {
|
|
228
|
+
.crewlet-folder-tile__actions {
|
|
229
|
+
transition: none;
|
|
230
|
+
}
|
|
231
|
+
}
|
package/dist/HuePicker/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import '../chunk-FFMCMSJB.js';
|
|
2
|
-
export { HuePicker, HueSwatch } from '../chunk-
|
|
2
|
+
export { HuePicker, HueSwatch } from '../chunk-34RMTXDZ.js';
|
|
3
3
|
import '../chunk-AYKXMIOR.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-
|
|
10
|
-
import '../chunk-2YTOOH3A.js';
|
|
9
|
+
import '../chunk-TMM32U7D.js';
|
|
11
10
|
import '../chunk-OMV5W53A.js';
|
|
11
|
+
import '../chunk-2YTOOH3A.js';
|
|
12
12
|
import '../chunk-OG6CL3EB.js';
|
|
13
13
|
import '../chunk-H5XTJ7GJ.js';
|
|
14
|
-
import '../chunk-NUZHC6MM.js';
|
|
15
14
|
import '../chunk-LACA4JGC.js';
|
|
15
|
+
import '../chunk-NUZHC6MM.js';
|
|
16
16
|
import '../chunk-BZFWDIV6.js';
|
|
17
17
|
import '../chunk-ODEQTPFM.js';
|
package/dist/Input/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea, foldLineBreaks } from '../chunk-
|
|
1
|
+
export { FormField, FormRow, FormSection, Input, InputAffix, Label, ReadOnlyField, Textarea, foldLineBreaks } from '../chunk-EXRRTKWT.js';
|
|
2
2
|
import '../chunk-XCUUI7E7.js';
|
|
3
3
|
import '../chunk-PQADV6P6.js';
|
|
4
4
|
import '../chunk-RSAQOKH3.js';
|
|
5
5
|
import '../chunk-H5XTJ7GJ.js';
|
|
6
|
-
import '../chunk-NUZHC6MM.js';
|
|
7
6
|
import '../chunk-LACA4JGC.js';
|
|
7
|
+
import '../chunk-NUZHC6MM.js';
|
|
8
8
|
import '../chunk-BZFWDIV6.js';
|
|
9
9
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { LinkInterstitial, openExternal } from '../chunk-
|
|
1
|
+
export { LinkInterstitial, openExternal } from '../chunk-GP4YWZFO.js';
|
|
2
|
+
import '../chunk-YCC2S7DF.js';
|
|
2
3
|
import '../chunk-5CLW2CXT.js';
|
|
3
|
-
import '../chunk-6AKG2VLR.js';
|
|
4
4
|
import '../chunk-SZZRIHGT.js';
|
|
5
5
|
import '../chunk-PQADV6P6.js';
|
|
6
6
|
import '../chunk-OMV5W53A.js';
|
|
7
7
|
import '../chunk-OG6CL3EB.js';
|
|
8
8
|
import '../chunk-H5XTJ7GJ.js';
|
|
9
|
-
import '../chunk-NUZHC6MM.js';
|
|
10
9
|
import '../chunk-LACA4JGC.js';
|
|
10
|
+
import '../chunk-NUZHC6MM.js';
|
|
11
11
|
import '../chunk-BZFWDIV6.js';
|
|
12
12
|
import '../chunk-ODEQTPFM.js';
|