@crewlethq/ui 0.28.0 → 0.30.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 +45 -4
- package/dist/AccessDeniedCard/index.js +3 -3
- package/dist/Accordion/index.js +3 -3
- package/dist/AppShell/index.js +1 -1
- package/dist/{AppShell-APHZKJYH.css → AppShell-GCM4TDVY.css} +4 -1
- package/dist/ArtifactBar/ArtifactBar.d.ts +143 -0
- package/dist/ArtifactBar/index.d.ts +3 -0
- package/dist/ArtifactBar/index.js +25 -0
- package/dist/ArtifactBar-IBWB5POL.css +358 -0
- package/dist/ArtifactCard/index.js +3 -3
- package/dist/ArtifactCover/index.js +5 -5
- package/dist/ArtifactIcon/index.js +4 -4
- package/dist/ArtifactPanel/ArtifactPanel.d.ts +81 -0
- package/dist/ArtifactPanel/index.d.ts +3 -0
- package/dist/ArtifactPanel/index.js +5 -0
- package/dist/ArtifactPanel-YFXT5O77.css +132 -0
- package/dist/AuthLayout/index.js +3 -3
- package/dist/AvatarPicker/index.js +4 -4
- package/dist/Card/index.js +2 -2
- package/dist/ChangeMark/index.js +1 -1
- package/dist/CommandPalette/index.js +3 -3
- package/dist/CommentThread/index.js +5 -5
- package/dist/Composer/index.js +2 -2
- package/dist/DataView/index.js +4 -4
- package/dist/Disclosure/index.js +3 -3
- package/dist/Document/Document.d.ts +8 -1
- package/dist/Document/index.js +1 -1
- package/dist/{Document-PQGXJHB7.css → Document-G3YTZIUL.css} +71 -0
- package/dist/EditingStatus/EditingStatus.d.ts +25 -0
- package/dist/EditingStatus/index.d.ts +3 -0
- package/dist/EditingStatus/index.js +2 -0
- package/dist/EditingStatus-NFADEPSX.css +53 -0
- package/dist/Editor-YZ7KG2RD.js +2099 -0
- package/dist/HuePicker/index.js +2 -2
- package/dist/ListInput/index.js +2 -2
- package/dist/Markdown/grammar.d.ts +170 -0
- package/dist/Markdown/index.d.ts +2 -0
- package/dist/Markdown/index.js +1 -0
- package/dist/MarkdownEditor/index.js +1 -1
- package/dist/PeopleRail/PeopleRail.d.ts +8 -1
- package/dist/PeopleRail/index.js +1 -1
- package/dist/{PeopleRail-R64WVOSH.css → PeopleRail-SZGHZXVT.css} +8 -0
- package/dist/RichEditor/Editor.d.ts +17 -0
- package/dist/RichEditor/RichEditor.d.ts +26 -0
- package/dist/RichEditor/codec.d.ts +78 -0
- package/dist/RichEditor/commands.d.ts +89 -0
- package/dist/RichEditor/index.d.ts +4 -0
- package/dist/RichEditor/index.js +8 -0
- package/dist/RichEditor/keys.d.ts +16 -0
- package/dist/RichEditor/nodeviews.d.ts +60 -0
- package/dist/RichEditor/paste.d.ts +47 -0
- package/dist/RichEditor/plugins.d.ts +49 -0
- package/dist/RichEditor/roundtrip.d.ts +14 -0
- package/dist/RichEditor/schema.d.ts +23 -0
- package/dist/RichEditor/types.d.ts +140 -0
- package/dist/RichEditor-NPD2KAPS.css +419 -0
- package/dist/RichEditorMarkdown/index.d.ts +1 -0
- package/dist/RichEditorMarkdown/index.js +3 -0
- package/dist/SheetGrid/index.js +1 -1
- package/dist/ThemeSwitcher/index.js +1 -1
- package/dist/VersionCompare/index.js +2 -2
- package/dist/chunk-3DPIU2Q7.js +28 -0
- package/dist/{chunk-V2Z24W2Z.js → chunk-4JUKWWUD.js} +1 -1
- package/dist/{chunk-MQEEQVG6.js → chunk-6AH2XJ3Q.js} +2 -2
- package/dist/chunk-A4E5YLXO.js +85 -0
- package/dist/{chunk-WENCSQ47.js → chunk-EBNI36UQ.js} +1 -1
- package/dist/{chunk-6J35F334.js → chunk-GOSQXEZU.js} +1 -1
- package/dist/{chunk-M2VJGNCD.js → chunk-GR55WT4R.js} +3 -3
- package/dist/chunk-I3BSQUKN.js +121 -0
- package/dist/chunk-IDBHX5SR.js +12 -0
- package/dist/{chunk-WI6K5M5X.js → chunk-M3LUNN7F.js} +1 -1
- package/dist/{chunk-S4RCG44T.js → chunk-MICH6QSJ.js} +1 -1
- package/dist/chunk-QMBP23BL.js +347 -0
- package/dist/{chunk-G2AVKPSL.js → chunk-RIAZM6L3.js} +1 -1
- package/dist/chunk-SKOYC2CF.js +288 -0
- package/dist/{chunk-PRNX5AFE.js → chunk-TGYDROIB.js} +1 -1
- package/dist/{chunk-G3EEUNZQ.js → chunk-UB7TJEKZ.js} +1 -1
- package/dist/chunk-UQHKFF2N.js +106 -0
- package/dist/{chunk-WHZFDS62.js → chunk-VDPJGP4Q.js} +1 -1
- package/dist/chunk-VOX3YRFO.js +76 -0
- package/dist/chunk-YFW4MTK4.js +749 -0
- package/dist/generated/index.d.ts +6 -0
- package/dist/generated/index.js +83 -75
- package/dist/index.js +83 -75
- package/dist/styles.css +8849 -7793
- package/package.json +13 -3
- package/dist/chunk-FVLCTCMV.js +0 -96
- package/dist/{chunk-RIEDQSA4.js → chunk-7DZDSSJS.js} +1 -1
- package/dist/{chunk-YZCJ63JF.js → chunk-ACA27MZH.js} +1 -1
- package/dist/{chunk-ENJUPIND.js → chunk-FZVJDJFN.js} +1 -1
- package/dist/{chunk-SGIQCI6Y.js → chunk-LIXSV5YI.js} +1 -1
- package/dist/{chunk-NWW4IQJU.js → chunk-OC46246T.js} +0 -0
- package/dist/{chunk-VOMYRJV5.js → chunk-RODMM35O.js} +2 -2
- package/dist/{chunk-HCKJGBQH.js → chunk-VVRL27HM.js} +1 -1
- package/dist/{chunk-D5JZN3ML.js → chunk-Z6VW6CXX.js} +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { ARTIFACT_KINDS, ArtifactCard, ArtifactKindGlyph } from '../chunk-
|
|
1
|
+
export { ARTIFACT_KINDS, ArtifactCard, ArtifactKindGlyph } from '../chunk-GOSQXEZU.js';
|
|
2
2
|
import '../chunk-4KP4RC3O.js';
|
|
3
3
|
import '../chunk-3CZ7XAVY.js';
|
|
4
4
|
import '../chunk-EUCC37WY.js';
|
|
5
5
|
import '../chunk-UAN5NE7M.js';
|
|
6
6
|
import '../chunk-5OM447RW.js';
|
|
7
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-ACA27MZH.js';
|
|
8
8
|
import '../chunk-AV2DXAEL.js';
|
|
9
|
-
import '../chunk-PQADV6P6.js';
|
|
10
9
|
import '../chunk-BHHIIK3M.js';
|
|
10
|
+
import '../chunk-PQADV6P6.js';
|
|
11
11
|
import '../chunk-BZFWDIV6.js';
|
|
12
12
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export { DashboardCover, DocCover, SHEET_COVER_COLUMNS, SHEET_COVER_ROWS, SheetCover } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { DashboardCover, DocCover, SHEET_COVER_COLUMNS, SHEET_COVER_ROWS, SheetCover } from '../chunk-6AH2XJ3Q.js';
|
|
2
|
+
import '../chunk-M3LUNN7F.js';
|
|
3
|
+
import '../chunk-GOSQXEZU.js';
|
|
4
4
|
import '../chunk-4KP4RC3O.js';
|
|
5
5
|
import '../chunk-3CZ7XAVY.js';
|
|
6
6
|
import '../chunk-EUCC37WY.js';
|
|
7
7
|
import '../chunk-UAN5NE7M.js';
|
|
8
8
|
import '../chunk-5OM447RW.js';
|
|
9
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-ACA27MZH.js';
|
|
10
10
|
import '../chunk-AV2DXAEL.js';
|
|
11
|
-
import '../chunk-PQADV6P6.js';
|
|
12
11
|
import '../chunk-BHHIIK3M.js';
|
|
12
|
+
import '../chunk-PQADV6P6.js';
|
|
13
13
|
import '../chunk-BZFWDIV6.js';
|
|
14
14
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export { ARTIFACT_ICON_WORDS, ArtifactIcon, artifactIconGlyph } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { ARTIFACT_ICON_WORDS, ArtifactIcon, artifactIconGlyph } from '../chunk-4JUKWWUD.js';
|
|
2
|
+
import '../chunk-GOSQXEZU.js';
|
|
3
3
|
import '../chunk-4KP4RC3O.js';
|
|
4
4
|
import '../chunk-3CZ7XAVY.js';
|
|
5
5
|
import '../chunk-EUCC37WY.js';
|
|
6
6
|
import '../chunk-UAN5NE7M.js';
|
|
7
7
|
import '../chunk-5OM447RW.js';
|
|
8
|
-
import '../chunk-
|
|
8
|
+
import '../chunk-ACA27MZH.js';
|
|
9
9
|
import '../chunk-AV2DXAEL.js';
|
|
10
|
-
import '../chunk-PQADV6P6.js';
|
|
11
10
|
import '../chunk-BHHIIK3M.js';
|
|
11
|
+
import '../chunk-PQADV6P6.js';
|
|
12
12
|
import '../chunk-BZFWDIV6.js';
|
|
13
13
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type ReactNode, type Ref } from 'react';
|
|
2
|
+
/** How wide a panel rests beside the artifact: facts, a list, or a table. */
|
|
3
|
+
export type ArtifactPanelSize = 'sm' | 'md' | 'lg';
|
|
4
|
+
export interface ArtifactPanelLabels {
|
|
5
|
+
close: (title: string) => string;
|
|
6
|
+
expand: string;
|
|
7
|
+
collapse: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const ARTIFACT_PANEL_LABELS: ArtifactPanelLabels;
|
|
10
|
+
export interface ArtifactPanelProps {
|
|
11
|
+
title: string;
|
|
12
|
+
/** A glyph before the title: the one on the bar's control that opened it. */
|
|
13
|
+
icon?: ReactNode;
|
|
14
|
+
onClose: () => void;
|
|
15
|
+
size?: ArtifactPanelSize | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* The panel takes the whole workspace, the artifact hidden behind it, for a
|
|
18
|
+
* table or a comparison the side's width cannot hold. With `onExpandedChange`
|
|
19
|
+
* the head carries the control that toggles it.
|
|
20
|
+
*/
|
|
21
|
+
expanded?: boolean | undefined;
|
|
22
|
+
onExpandedChange?: ((expanded: boolean) => void) | undefined;
|
|
23
|
+
/** Controls in the head, before expand and close. */
|
|
24
|
+
actions?: ReactNode;
|
|
25
|
+
/**
|
|
26
|
+
* Whether focus moves to the panel's heading when it opens. True when the
|
|
27
|
+
* reader opened it; false for a panel a link opened on arrival, which must
|
|
28
|
+
* not take focus from wherever the page put it.
|
|
29
|
+
*/
|
|
30
|
+
focusOnOpen?: boolean | undefined;
|
|
31
|
+
labels?: Partial<ArtifactPanelLabels> | undefined;
|
|
32
|
+
className?: string | undefined;
|
|
33
|
+
children: ReactNode;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A panel at the artifact's side: its details, its history, its data, who is
|
|
37
|
+
* here, its settings. One at a time, opened from the bar's controls.
|
|
38
|
+
*
|
|
39
|
+
* A COMPLEMENTARY REGION, NOT A DIALOG. The artifact beside it stays live and
|
|
40
|
+
* reachable, so the panel is an `aside` named by its heading and never traps
|
|
41
|
+
* focus; the reader moves between the two with Tab as between any two parts
|
|
42
|
+
* of a page.
|
|
43
|
+
*
|
|
44
|
+
* FOCUS IS STILL MANAGED, because a panel opened from a control that is then
|
|
45
|
+
* pressed again, or closed from inside, would otherwise leave focus on nothing.
|
|
46
|
+
* Opening moves focus to the heading, so a screen reader announces what
|
|
47
|
+
* opened; closing with focus inside hands it back to whatever held it before
|
|
48
|
+
* (the bar's control, as a rule), and leaves it alone otherwise.
|
|
49
|
+
*
|
|
50
|
+
* ESCAPE CLOSES IT from anywhere inside, a field included, unless something
|
|
51
|
+
* inside answered the press first: a menu or a dialog opened from the panel is
|
|
52
|
+
* portalled out of it, and the press that closes one of them never reaches
|
|
53
|
+
* this.
|
|
54
|
+
*/
|
|
55
|
+
export declare function ArtifactPanel({ title, icon, onClose, size, expanded, onExpandedChange, actions, focusOnOpen, labels, className, children, }: ArtifactPanelProps): import("react").JSX.Element;
|
|
56
|
+
export interface ArtifactWorkspaceProps {
|
|
57
|
+
/** The open panel, if any: an [ArtifactPanel]. */
|
|
58
|
+
panel?: ReactNode;
|
|
59
|
+
/** Whether the open panel takes the whole workspace. */
|
|
60
|
+
expanded?: boolean | undefined;
|
|
61
|
+
/** The artifact's own body: the element a caller scrolls, measures or listens on. */
|
|
62
|
+
bodyRef?: Ref<HTMLDivElement> | undefined;
|
|
63
|
+
bodyClassName?: string | undefined;
|
|
64
|
+
/** Names the body region: the artifact's title. */
|
|
65
|
+
bodyLabel?: string | undefined;
|
|
66
|
+
className?: string | undefined;
|
|
67
|
+
children: ReactNode;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* The artifact's body and its one open panel, side by side.
|
|
71
|
+
*
|
|
72
|
+
* THE PANEL IS A COLUMN WHERE THERE IS ROOM FOR TWO, AND A DRAWER WHERE THERE
|
|
73
|
+
* IS NOT. Measured on the workspace itself (a container query), since a
|
|
74
|
+
* sidebar beside it decides its room: wide, the artifact narrows to make room
|
|
75
|
+
* and the two are read together, which is the point of a panel of history or
|
|
76
|
+
* of who is here; narrower than two useful columns, the panel slides over the
|
|
77
|
+
* artifact's end edge; on a phone it covers the artifact whole. An expanded
|
|
78
|
+
* panel takes the workspace at every width, with the artifact kept mounted
|
|
79
|
+
* behind it so a page's state survives the look at its data.
|
|
80
|
+
*/
|
|
81
|
+
export declare function ArtifactWorkspace({ panel, expanded, bodyRef, bodyClassName, bodyLabel, className, children, }: ArtifactWorkspaceProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The workspace is a row: the artifact's body, then at most one panel. The
|
|
3
|
+
* body scrolls itself, so a panel beside it stays in view however far the
|
|
4
|
+
* artifact is read; the panel's own body scrolls under its head.
|
|
5
|
+
*
|
|
6
|
+
* ONE HAIRLINE between the two, the panel's start edge, and none at the
|
|
7
|
+
* workspace's own edges: whatever frames the workspace already draws those.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
.crewlet-artifact-workspace {
|
|
11
|
+
container: crewlet-artifact-workspace / inline-size;
|
|
12
|
+
position: relative;
|
|
13
|
+
display: flex;
|
|
14
|
+
min-width: 0;
|
|
15
|
+
min-height: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.crewlet-artifact-workspace__body {
|
|
19
|
+
flex: 1 1 auto;
|
|
20
|
+
min-width: 0;
|
|
21
|
+
min-height: 0;
|
|
22
|
+
overflow: auto;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* EXPANDED, the panel is the workspace; the body stays mounted behind it. */
|
|
26
|
+
.crewlet-artifact-workspace[data-panel='expanded'] > .crewlet-artifact-workspace__body {
|
|
27
|
+
display: none;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.crewlet-artifact-panel {
|
|
31
|
+
--crewlet-artifact-panel-width: 25rem;
|
|
32
|
+
display: flex;
|
|
33
|
+
flex: none;
|
|
34
|
+
flex-direction: column;
|
|
35
|
+
width: var(--crewlet-artifact-panel-width);
|
|
36
|
+
min-height: 0;
|
|
37
|
+
border-left: 1px solid var(--color-border-default);
|
|
38
|
+
background: var(--color-surface-background);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.crewlet-artifact-panel--sm {
|
|
42
|
+
--crewlet-artifact-panel-width: 20rem;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.crewlet-artifact-panel--lg {
|
|
46
|
+
--crewlet-artifact-panel-width: 36rem;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.crewlet-artifact-panel[data-expanded] {
|
|
50
|
+
flex: 1 1 auto;
|
|
51
|
+
width: auto;
|
|
52
|
+
border-left: 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.crewlet-artifact-panel__head {
|
|
56
|
+
display: flex;
|
|
57
|
+
flex: none;
|
|
58
|
+
align-items: center;
|
|
59
|
+
gap: var(--spacing-2);
|
|
60
|
+
height: var(--size-row-lg);
|
|
61
|
+
padding: 0 var(--spacing-2) 0 var(--spacing-4);
|
|
62
|
+
border-bottom: 1px solid var(--color-border-default);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.crewlet-artifact-panel__icon {
|
|
66
|
+
display: inline-flex;
|
|
67
|
+
flex: none;
|
|
68
|
+
color: var(--color-text-tertiary);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.crewlet-artifact-panel__title {
|
|
72
|
+
flex: 1 1 auto;
|
|
73
|
+
min-width: 0;
|
|
74
|
+
margin: 0;
|
|
75
|
+
overflow: hidden;
|
|
76
|
+
color: var(--color-text-primary);
|
|
77
|
+
font-size: var(--font-size-sm);
|
|
78
|
+
font-weight: var(--font-weight-semibold);
|
|
79
|
+
line-height: var(--font-line-height-snug);
|
|
80
|
+
text-overflow: ellipsis;
|
|
81
|
+
white-space: nowrap;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.crewlet-artifact-panel__title:focus-visible {
|
|
85
|
+
outline: 2px solid var(--color-focus);
|
|
86
|
+
outline-offset: var(--size-focus-ring-inset-offset);
|
|
87
|
+
border-radius: var(--radius-sm);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.crewlet-artifact-panel__actions {
|
|
91
|
+
display: inline-flex;
|
|
92
|
+
flex: none;
|
|
93
|
+
align-items: center;
|
|
94
|
+
gap: var(--spacing-1);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.crewlet-artifact-panel__body {
|
|
98
|
+
flex: 1 1 auto;
|
|
99
|
+
min-height: 0;
|
|
100
|
+
padding: var(--spacing-4);
|
|
101
|
+
overflow: auto;
|
|
102
|
+
overscroll-behavior: contain;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* NOT ROOM FOR TWO COLUMNS: the panel slides over the artifact's end edge,
|
|
106
|
+
raised off it, rather than squeezing the artifact under a useful width. */
|
|
107
|
+
@container crewlet-artifact-workspace (width < 960px) {
|
|
108
|
+
.crewlet-artifact-panel {
|
|
109
|
+
position: absolute;
|
|
110
|
+
inset-block: 0;
|
|
111
|
+
inset-inline-end: 0;
|
|
112
|
+
z-index: var(--z-index-overlay);
|
|
113
|
+
width: min(var(--crewlet-artifact-panel-width), 100%);
|
|
114
|
+
box-shadow: var(--shadow-lg);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.crewlet-artifact-panel[data-expanded] {
|
|
118
|
+
inset-inline-start: 0;
|
|
119
|
+
width: auto;
|
|
120
|
+
box-shadow: none;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* A PHONE: the panel is the screen until it is closed. */
|
|
125
|
+
@container crewlet-artifact-workspace (width < 640px) {
|
|
126
|
+
.crewlet-artifact-panel {
|
|
127
|
+
inset-inline-start: 0;
|
|
128
|
+
width: auto;
|
|
129
|
+
border-left: 0;
|
|
130
|
+
box-shadow: none;
|
|
131
|
+
}
|
|
132
|
+
}
|
package/dist/AuthLayout/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { AuthLayout } from '../chunk-
|
|
1
|
+
export { AuthLayout } from '../chunk-VDPJGP4Q.js';
|
|
2
2
|
import '../chunk-7KBNFFM3.js';
|
|
3
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-ACA27MZH.js';
|
|
4
4
|
import '../chunk-AV2DXAEL.js';
|
|
5
|
-
import '../chunk-PQADV6P6.js';
|
|
6
5
|
import '../chunk-BHHIIK3M.js';
|
|
6
|
+
import '../chunk-PQADV6P6.js';
|
|
7
7
|
import '../chunk-BZFWDIV6.js';
|
|
8
8
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { AvatarPicker } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-RCQXUT5K.js';
|
|
4
|
-
import '../chunk-HJEVSQN6.js';
|
|
1
|
+
export { AvatarPicker } from '../chunk-TGYDROIB.js';
|
|
2
|
+
import '../chunk-LIXSV5YI.js';
|
|
5
3
|
import '../chunk-BWRGFKJP.js';
|
|
6
4
|
import '../chunk-AYKXMIOR.js';
|
|
7
5
|
import '../chunk-HVIX5ECM.js';
|
|
6
|
+
import '../chunk-RCQXUT5K.js';
|
|
7
|
+
import '../chunk-HJEVSQN6.js';
|
|
8
8
|
import '../chunk-RKKO7QHH.js';
|
|
9
9
|
import '../chunk-5OM447RW.js';
|
|
10
10
|
import '../chunk-BHHIIK3M.js';
|
package/dist/Card/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { Card } from '../chunk-
|
|
1
|
+
export { Card } from '../chunk-ACA27MZH.js';
|
|
2
2
|
export { useCardHeaderSlot } from '../chunk-AV2DXAEL.js';
|
|
3
|
-
import '../chunk-PQADV6P6.js';
|
|
4
3
|
import '../chunk-BHHIIK3M.js';
|
|
4
|
+
import '../chunk-PQADV6P6.js';
|
|
5
5
|
import '../chunk-BZFWDIV6.js';
|
|
6
6
|
import '../chunk-ODEQTPFM.js';
|
package/dist/ChangeMark/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { ChangeMark } from '../chunk-YEKYVJQR.js';
|
|
2
2
|
import '../chunk-NHBP2XS5.js';
|
|
3
3
|
import '../chunk-Z7JYG5TF.js';
|
|
4
|
-
import '../chunk-QWOPX2MN.js';
|
|
5
4
|
import '../chunk-AYKXMIOR.js';
|
|
5
|
+
import '../chunk-QWOPX2MN.js';
|
|
6
6
|
import '../chunk-HMPFGIWM.js';
|
|
7
7
|
import '../chunk-R25RGPUB.js';
|
|
8
8
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export { CommandPalette } from '../chunk-
|
|
1
|
+
export { CommandPalette } from '../chunk-VVRL27HM.js';
|
|
2
2
|
import '../chunk-I3KKZ2O3.js';
|
|
3
3
|
import '../chunk-F73MC7EZ.js';
|
|
4
|
-
import '../chunk-SMBKXWML.js';
|
|
5
4
|
import '../chunk-6QFAK2WV.js';
|
|
6
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-SMBKXWML.js';
|
|
7
6
|
import '../chunk-BHHIIK3M.js';
|
|
7
|
+
import '../chunk-PQADV6P6.js';
|
|
8
8
|
import '../chunk-HMPFGIWM.js';
|
|
9
9
|
import '../chunk-R25RGPUB.js';
|
|
10
10
|
import '../chunk-OG6CL3EB.js';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-SMBKXWML.js';
|
|
1
|
+
export { COMMENT_THREAD_LABELS, CommentThread } from '../chunk-GR55WT4R.js';
|
|
2
|
+
import '../chunk-7DZDSSJS.js';
|
|
4
3
|
import '../chunk-6QFAK2WV.js';
|
|
5
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-SMBKXWML.js';
|
|
5
|
+
import '../chunk-M3LUNN7F.js';
|
|
6
6
|
import '../chunk-4KP4RC3O.js';
|
|
7
7
|
import '../chunk-3CZ7XAVY.js';
|
|
8
8
|
import '../chunk-EUCC37WY.js';
|
|
9
9
|
import '../chunk-UAN5NE7M.js';
|
|
10
10
|
import '../chunk-5OM447RW.js';
|
|
11
|
-
import '../chunk-PQADV6P6.js';
|
|
12
11
|
import '../chunk-BHHIIK3M.js';
|
|
12
|
+
import '../chunk-PQADV6P6.js';
|
|
13
13
|
import '../chunk-OG6CL3EB.js';
|
|
14
14
|
import '../chunk-4FQT6ZAY.js';
|
|
15
15
|
import '../chunk-BZFWDIV6.js';
|
package/dist/Composer/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { COMPOSER_COUNTER_AT, Composer } from '../chunk-
|
|
2
|
-
import '../chunk-SMBKXWML.js';
|
|
1
|
+
export { COMPOSER_COUNTER_AT, Composer } from '../chunk-7DZDSSJS.js';
|
|
3
2
|
import '../chunk-6QFAK2WV.js';
|
|
3
|
+
import '../chunk-SMBKXWML.js';
|
|
4
4
|
import '../chunk-PQADV6P6.js';
|
|
5
5
|
import '../chunk-4FQT6ZAY.js';
|
|
6
6
|
import '../chunk-BZFWDIV6.js';
|
package/dist/DataView/index.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
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-RODMM35O.js';
|
|
2
2
|
import '../chunk-HOXGBLEY.js';
|
|
3
3
|
import '../chunk-PGRPNDWM.js';
|
|
4
|
-
import '../chunk-EBJREOKS.js';
|
|
5
4
|
import '../chunk-Y5NQ2LMS.js';
|
|
5
|
+
import '../chunk-EBJREOKS.js';
|
|
6
6
|
import '../chunk-STJ7QBC3.js';
|
|
7
7
|
import '../chunk-DTIW4CHZ.js';
|
|
8
8
|
import '../chunk-I3KKZ2O3.js';
|
|
9
9
|
import '../chunk-F73MC7EZ.js';
|
|
10
|
-
import '../chunk-SMBKXWML.js';
|
|
11
10
|
import '../chunk-BWRGFKJP.js';
|
|
12
11
|
import '../chunk-GXQ3B46I.js';
|
|
13
12
|
import '../chunk-7T42VQQT.js';
|
|
14
13
|
import '../chunk-6QFAK2WV.js';
|
|
14
|
+
import '../chunk-SMBKXWML.js';
|
|
15
15
|
import '../chunk-3CZ7XAVY.js';
|
|
16
16
|
import '../chunk-EUCC37WY.js';
|
|
17
17
|
import '../chunk-AV2DXAEL.js';
|
|
18
|
-
import '../chunk-PQADV6P6.js';
|
|
19
18
|
import '../chunk-BHHIIK3M.js';
|
|
19
|
+
import '../chunk-PQADV6P6.js';
|
|
20
20
|
import '../chunk-2HIOJ4YZ.js';
|
|
21
21
|
import '../chunk-HMPFGIWM.js';
|
|
22
22
|
import '../chunk-R25RGPUB.js';
|
package/dist/Disclosure/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { Disclosure } from '../chunk-
|
|
2
|
-
export { DisclosureAnatomy } from '../chunk-
|
|
3
|
-
import '../chunk-PQADV6P6.js';
|
|
1
|
+
export { Disclosure } from '../chunk-MICH6QSJ.js';
|
|
2
|
+
export { DisclosureAnatomy } from '../chunk-FZVJDJFN.js';
|
|
4
3
|
import '../chunk-BHHIIK3M.js';
|
|
4
|
+
import '../chunk-PQADV6P6.js';
|
|
5
5
|
import '../chunk-BZFWDIV6.js';
|
|
6
6
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -21,7 +21,7 @@ export interface DocumentProps extends HTMLAttributes<HTMLElement> {
|
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Rendered markdown, set as a document: headings, paragraphs, lists and task
|
|
24
|
-
* lists, quotes, code, tables, rules, links and images.
|
|
24
|
+
* lists, quotes, callouts, code, tables, rules, links and images.
|
|
25
25
|
*
|
|
26
26
|
* A STYLESHEET OVER ELEMENTS, NOT A RENDERER. What a body may contain (which
|
|
27
27
|
* link schemes are safe, whether raw HTML is text) is a decision about the
|
|
@@ -37,6 +37,13 @@ export interface DocumentProps extends HTMLAttributes<HTMLElement> {
|
|
|
37
37
|
* gives that element `tabIndex={0}`, a `region` role and a name, because a
|
|
38
38
|
* scroller no keyboard can reach is a table no keyboard can read to its end.
|
|
39
39
|
*
|
|
40
|
+
* A CALLOUT is recognised the same way: an element with `data-callout` set
|
|
41
|
+
* to its tone (`note`, `tip`, `important`, `warning`, `caution`), the tone's
|
|
42
|
+
* name in an element with `data-callout-label` and its blocks in one with
|
|
43
|
+
* `data-callout-body`. A table cell aligned by `data-align` is set as one
|
|
44
|
+
* aligned by a style, so an editor that may write no style attribute sets a
|
|
45
|
+
* column exactly as the reader's renderer does.
|
|
46
|
+
*
|
|
40
47
|
* THE TITLE IS NOT PART OF IT. A page's title is its address and its `h1`, set
|
|
41
48
|
* above the body by `DocumentTitle`, so a renderer draws the body's own
|
|
42
49
|
* headings from `h2` down and the outline of the page starts there.
|
package/dist/Document/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { Document, DocumentTitle } from '../chunk-
|
|
1
|
+
export { Document, DocumentTitle } from '../chunk-M3LUNN7F.js';
|
|
2
2
|
import '../chunk-ODEQTPFM.js';
|
|
@@ -286,3 +286,74 @@
|
|
|
286
286
|
color: var(--color-text-primary);
|
|
287
287
|
overflow-wrap: anywhere;
|
|
288
288
|
}
|
|
289
|
+
|
|
290
|
+
/*
|
|
291
|
+
* A TABLE CELL'S ALIGNMENT, read off `data-align` as well as off a style: an
|
|
292
|
+
* editor that may not write a style attribute under a strict policy marks a
|
|
293
|
+
* column this way, and the cell is set as the reader's is.
|
|
294
|
+
*/
|
|
295
|
+
.crewlet-document :where(th, td)[data-align='center'] {
|
|
296
|
+
text-align: center;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.crewlet-document :where(th, td)[data-align='right'] {
|
|
300
|
+
text-align: end;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/*
|
|
304
|
+
* A CALLOUT (`> [!NOTE]` and its four siblings): a tinted block with its tone
|
|
305
|
+
* named on a line of its own, read by its shape as everything here is. A
|
|
306
|
+
* renderer emits an element with `data-callout="<tone>"` and `role="note"`,
|
|
307
|
+
* the tone's name in an element with `data-callout-label`, and the blocks in
|
|
308
|
+
* one with `data-callout-body`. The fill, the ink and the line are each tone's
|
|
309
|
+
* declared steps, the same three `Callout` paints with.
|
|
310
|
+
*/
|
|
311
|
+
.crewlet-document [data-callout] {
|
|
312
|
+
--crewlet-document-callout-fill: var(--color-feedback-info-soft);
|
|
313
|
+
--crewlet-document-callout-ink: var(--color-feedback-info-ink);
|
|
314
|
+
--crewlet-document-callout-line: var(--color-feedback-info-line);
|
|
315
|
+
padding: var(--spacing-3) var(--spacing-4);
|
|
316
|
+
border-inline-start: 3px solid var(--crewlet-document-callout-line);
|
|
317
|
+
border-radius: var(--radius-sm);
|
|
318
|
+
background: var(--crewlet-document-callout-fill);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
.crewlet-document [data-callout='tip'] {
|
|
322
|
+
--crewlet-document-callout-fill: var(--color-feedback-success-soft);
|
|
323
|
+
--crewlet-document-callout-ink: var(--color-feedback-success-ink);
|
|
324
|
+
--crewlet-document-callout-line: var(--color-feedback-success-line);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.crewlet-document [data-callout='important'] {
|
|
328
|
+
--crewlet-document-callout-fill: var(--color-brand-accent-soft);
|
|
329
|
+
--crewlet-document-callout-ink: var(--color-brand-accent-ink);
|
|
330
|
+
--crewlet-document-callout-line: var(--color-brand-accent);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.crewlet-document [data-callout='warning'] {
|
|
334
|
+
--crewlet-document-callout-fill: var(--color-feedback-warning-soft);
|
|
335
|
+
--crewlet-document-callout-ink: var(--color-feedback-warning-ink);
|
|
336
|
+
--crewlet-document-callout-line: var(--color-feedback-warning-line);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.crewlet-document [data-callout='caution'] {
|
|
340
|
+
--crewlet-document-callout-fill: var(--color-feedback-danger-soft);
|
|
341
|
+
--crewlet-document-callout-ink: var(--color-feedback-danger-ink);
|
|
342
|
+
--crewlet-document-callout-line: var(--color-feedback-danger-line);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
.crewlet-document [data-callout-label] {
|
|
346
|
+
margin: 0 0 var(--spacing-1);
|
|
347
|
+
color: var(--crewlet-document-callout-ink);
|
|
348
|
+
font-size: var(--font-size-xs);
|
|
349
|
+
font-weight: var(--font-weight-semibold);
|
|
350
|
+
line-height: var(--font-line-height-snug);
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
.crewlet-document [data-callout-body] {
|
|
354
|
+
color: var(--color-text-primary);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
.crewlet-document [data-callout-body] > * + * {
|
|
358
|
+
margin-block-start: var(--crewlet-document-gap);
|
|
359
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** Every string the status draws. */
|
|
2
|
+
export interface EditingStatusLabels {
|
|
3
|
+
editing: string;
|
|
4
|
+
unsaved: string;
|
|
5
|
+
saving: string;
|
|
6
|
+
}
|
|
7
|
+
export interface EditingStatusProps {
|
|
8
|
+
/** Whether anything differs from what was opened. */
|
|
9
|
+
dirty: boolean;
|
|
10
|
+
/** Whether a save is in flight. */
|
|
11
|
+
saving?: boolean | undefined;
|
|
12
|
+
labels?: Partial<EditingStatusLabels> | undefined;
|
|
13
|
+
className?: string | undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The quiet state a page is in while somebody edits it: "Editing", and a dot
|
|
17
|
+
* with "Unsaved changes" once anything differs from what was opened.
|
|
18
|
+
*
|
|
19
|
+
* It sits in the bar beside Save and Cancel, which are the caller's: what a
|
|
20
|
+
* save sends and what Cancel discards are decisions about the caller's own
|
|
21
|
+
* record. A STATUS, announced politely, so a screen reader hears the change
|
|
22
|
+
* from saved to unsaved without being interrupted. On a narrow bar the words
|
|
23
|
+
* fold away and the dot stays, named by the same words.
|
|
24
|
+
*/
|
|
25
|
+
export declare function EditingStatus({ dirty, saving, labels, className }: EditingStatusProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The editing status (EditingStatus.tsx): a word and a dot, in the bar's own
|
|
3
|
+
* small step, quiet until something is unsaved.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
.crewlet-editing-status {
|
|
7
|
+
display: inline-flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
gap: var(--spacing-2);
|
|
10
|
+
min-width: 0;
|
|
11
|
+
color: var(--color-text-secondary);
|
|
12
|
+
font-family: var(--font-family-sans);
|
|
13
|
+
font-size: var(--font-size-compact);
|
|
14
|
+
white-space: nowrap;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.crewlet-editing-status__dot {
|
|
18
|
+
flex: none;
|
|
19
|
+
width: var(--spacing-2);
|
|
20
|
+
height: var(--spacing-2);
|
|
21
|
+
border-radius: var(--radius-circle);
|
|
22
|
+
background: var(--color-text-tertiary);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.crewlet-editing-status--dirty .crewlet-editing-status__dot {
|
|
26
|
+
background: var(--color-brand-accent);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.crewlet-editing-status__label {
|
|
30
|
+
color: var(--color-text-primary);
|
|
31
|
+
font-weight: var(--font-weight-medium);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.crewlet-editing-status__state {
|
|
35
|
+
overflow: hidden;
|
|
36
|
+
color: var(--color-text-tertiary);
|
|
37
|
+
text-overflow: ellipsis;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.crewlet-editing-status__state::before {
|
|
41
|
+
content: '\00b7';
|
|
42
|
+
margin-right: var(--spacing-2);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@media (width < 480px) {
|
|
46
|
+
.crewlet-editing-status__state {
|
|
47
|
+
position: absolute;
|
|
48
|
+
width: 1px;
|
|
49
|
+
height: 1px;
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
clip-path: inset(50%);
|
|
52
|
+
}
|
|
53
|
+
}
|