@activecollab/components 2.0.408 → 2.0.409
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/dist/cjs/components/Icons/collection/Project.js +98 -0
- package/dist/cjs/components/Icons/collection/Project.js.map +1 -0
- package/dist/cjs/components/Icons/collection/Task.js +61 -0
- package/dist/cjs/components/Icons/collection/Task.js.map +1 -0
- package/dist/cjs/components/Icons/collection/index.js +14 -0
- package/dist/cjs/components/Icons/collection/index.js.map +1 -1
- package/dist/cjs/presentation/stackedCard/content/NoteCard.js +7 -3
- package/dist/cjs/presentation/stackedCard/content/NoteCard.js.map +1 -1
- package/dist/cjs/presentation/stackedCard/content/ProjectCard.js +136 -0
- package/dist/cjs/presentation/stackedCard/content/ProjectCard.js.map +1 -0
- package/dist/cjs/presentation/stackedCard/content/TaskCard.js +183 -56
- package/dist/cjs/presentation/stackedCard/content/TaskCard.js.map +1 -1
- package/dist/cjs/presentation/stackedCard/content/index.js +11 -0
- package/dist/cjs/presentation/stackedCard/content/index.js.map +1 -1
- package/dist/cjs/presentation/stackedCard/content/shared.js +66 -19
- package/dist/cjs/presentation/stackedCard/content/shared.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/bottomDock.js +95 -32
- package/dist/cjs/presentation/whiteboard/bottomDock.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/canvasElements.js +196 -8
- package/dist/cjs/presentation/whiteboard/canvasElements.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/inspector.js +149 -47
- package/dist/cjs/presentation/whiteboard/inspector.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/outline.js +91 -18
- package/dist/cjs/presentation/whiteboard/outline.js.map +1 -1
- package/dist/cjs/presentation/whiteboard/projectElements.js +883 -0
- package/dist/cjs/presentation/whiteboard/projectElements.js.map +1 -0
- package/dist/esm/components/Icons/collection/Project.d.ts +36 -0
- package/dist/esm/components/Icons/collection/Project.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/Project.js +91 -0
- package/dist/esm/components/Icons/collection/Project.js.map +1 -0
- package/dist/esm/components/Icons/collection/Task.d.ts +32 -0
- package/dist/esm/components/Icons/collection/Task.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/Task.js +54 -0
- package/dist/esm/components/Icons/collection/Task.js.map +1 -0
- package/dist/esm/components/Icons/collection/index.d.ts +2 -0
- package/dist/esm/components/Icons/collection/index.d.ts.map +1 -1
- package/dist/esm/components/Icons/collection/index.js +2 -0
- package/dist/esm/components/Icons/collection/index.js.map +1 -1
- package/dist/esm/presentation/stackedCard/content/NoteCard.d.ts +8 -1
- package/dist/esm/presentation/stackedCard/content/NoteCard.d.ts.map +1 -1
- package/dist/esm/presentation/stackedCard/content/NoteCard.js +8 -4
- package/dist/esm/presentation/stackedCard/content/NoteCard.js.map +1 -1
- package/dist/esm/presentation/stackedCard/content/ProjectCard.d.ts +64 -0
- package/dist/esm/presentation/stackedCard/content/ProjectCard.d.ts.map +1 -0
- package/dist/esm/presentation/stackedCard/content/ProjectCard.js +128 -0
- package/dist/esm/presentation/stackedCard/content/ProjectCard.js.map +1 -0
- package/dist/esm/presentation/stackedCard/content/TaskCard.d.ts +64 -2
- package/dist/esm/presentation/stackedCard/content/TaskCard.d.ts.map +1 -1
- package/dist/esm/presentation/stackedCard/content/TaskCard.js +181 -58
- package/dist/esm/presentation/stackedCard/content/TaskCard.js.map +1 -1
- package/dist/esm/presentation/stackedCard/content/index.d.ts +1 -0
- package/dist/esm/presentation/stackedCard/content/index.d.ts.map +1 -1
- package/dist/esm/presentation/stackedCard/content/index.js +1 -0
- package/dist/esm/presentation/stackedCard/content/index.js.map +1 -1
- package/dist/esm/presentation/stackedCard/content/shared.d.ts +30 -0
- package/dist/esm/presentation/stackedCard/content/shared.d.ts.map +1 -1
- package/dist/esm/presentation/stackedCard/content/shared.js +66 -19
- package/dist/esm/presentation/stackedCard/content/shared.js.map +1 -1
- package/dist/esm/presentation/whiteboard/bottomDock.d.ts +30 -7
- package/dist/esm/presentation/whiteboard/bottomDock.d.ts.map +1 -1
- package/dist/esm/presentation/whiteboard/bottomDock.js +79 -32
- package/dist/esm/presentation/whiteboard/bottomDock.js.map +1 -1
- package/dist/esm/presentation/whiteboard/canvasElements.d.ts +4 -1
- package/dist/esm/presentation/whiteboard/canvasElements.d.ts.map +1 -1
- package/dist/esm/presentation/whiteboard/canvasElements.js +158 -7
- package/dist/esm/presentation/whiteboard/canvasElements.js.map +1 -1
- package/dist/esm/presentation/whiteboard/inspector.d.ts +35 -1
- package/dist/esm/presentation/whiteboard/inspector.d.ts.map +1 -1
- package/dist/esm/presentation/whiteboard/inspector.js +170 -68
- package/dist/esm/presentation/whiteboard/inspector.js.map +1 -1
- package/dist/esm/presentation/whiteboard/outline.d.ts +23 -3
- package/dist/esm/presentation/whiteboard/outline.d.ts.map +1 -1
- package/dist/esm/presentation/whiteboard/outline.js +89 -18
- package/dist/esm/presentation/whiteboard/outline.js.map +1 -1
- package/dist/esm/presentation/whiteboard/projectElements.d.ts +267 -0
- package/dist/esm/presentation/whiteboard/projectElements.d.ts.map +1 -0
- package/dist/esm/presentation/whiteboard/projectElements.js +824 -0
- package/dist/esm/presentation/whiteboard/projectElements.js.map +1 -0
- package/dist/index.js +629 -490
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { ReactElement } from "react";
|
|
2
|
+
import { ProjectCardLabel, ProjectCardPerson, TaskCardLabel } from "../stackedCard/content";
|
|
3
|
+
/**
|
|
4
|
+
* The board's third "draw a box, then say what goes in it" element, after the
|
|
5
|
+
* link and the file card. The gesture ladder is deliberately the same one those
|
|
6
|
+
* two already established, because it is the only one the dock teaches:
|
|
7
|
+
*
|
|
8
|
+
* armed the Project Elements dock button opens a submenu (Project /
|
|
9
|
+
* Task); picking one arms the tool and puts the canvas in
|
|
10
|
+
* crosshair mode.
|
|
11
|
+
* drawn mouse down → drag → up leaves a dashed PLACEHOLDER at the drawn
|
|
12
|
+
* box (clamped to a card-sized minimum), exactly where the real
|
|
13
|
+
* card will sit.
|
|
14
|
+
* picking the release opens the picker — a centred popover replicating the
|
|
15
|
+
* app's `MenuSelector/ProjectList` (and, for tasks, the two-step
|
|
16
|
+
* `ProjectTaskMenuSelector`: projects, then that project's tasks).
|
|
17
|
+
* resolving a short skeleton flash in the placeholder's own box, standing in
|
|
18
|
+
* for "the board is fetching this record's details".
|
|
19
|
+
* resolved the placeholder becomes the real card, anchored at the
|
|
20
|
+
* placeholder's top-left and grown to the card's natural size.
|
|
21
|
+
*
|
|
22
|
+
* Escape or a click on the overlay cancels: the picker closes and the
|
|
23
|
+
* placeholder is thrown away, so a cancelled gesture leaves no debris.
|
|
24
|
+
*/
|
|
25
|
+
export declare const PLACEHOLDER_MIN_WIDTH = 260;
|
|
26
|
+
export declare const PLACEHOLDER_MIN_HEIGHT = 120;
|
|
27
|
+
export declare const PROJECT_CARD_WIDTH = 300;
|
|
28
|
+
export declare const TASK_CARD_WIDTH = 260;
|
|
29
|
+
export declare const RESOLVE_MS = 480;
|
|
30
|
+
export type ProjectElementKind = "project" | "task";
|
|
31
|
+
export type ProjectElementStatus = "placeholder" | "resolving" | "resolved";
|
|
32
|
+
/** True for the two board tools this module owns. */
|
|
33
|
+
export declare const isProjectTool: (tool: string) => tool is ProjectElementKind;
|
|
34
|
+
/**
|
|
35
|
+
* The people and labels the board carries are exactly what the shared content
|
|
36
|
+
* cards read, so the picker's types ARE the cards' types — one shape, so a card
|
|
37
|
+
* cannot be fed something it does not understand.
|
|
38
|
+
*/
|
|
39
|
+
export type PickerPerson = ProjectCardPerson;
|
|
40
|
+
export type PickerTaskLabel = TaskCardLabel;
|
|
41
|
+
export interface PickerTask {
|
|
42
|
+
id: string;
|
|
43
|
+
/** The task number the app prefixes the name with (`#123: …`). */
|
|
44
|
+
number: number;
|
|
45
|
+
name: string;
|
|
46
|
+
/** The task list the task belongs to — the picker's group header. */
|
|
47
|
+
taskList: string;
|
|
48
|
+
label?: PickerTaskLabel;
|
|
49
|
+
subtasks?: number;
|
|
50
|
+
comments?: number;
|
|
51
|
+
date?: string;
|
|
52
|
+
assignees: PickerPerson[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A project label. The app renders it as a FILLED pill whose background is the
|
|
56
|
+
* label's own colour and whose text is a darker shade of it
|
|
57
|
+
* (`ProjectLabel.jsx`: `EntityLabel` with `backgroundColor: label.color` and
|
|
58
|
+
* `color: label.darker_text_color`), which is the design system's `Chip` — not
|
|
59
|
+
* the colour-text `Tag` the column cards use. Both colours are data. The shape
|
|
60
|
+
* is the shared `ProjectCard`'s own.
|
|
61
|
+
*/
|
|
62
|
+
export type PickerProjectLabel = ProjectCardLabel;
|
|
63
|
+
export interface PickerProject {
|
|
64
|
+
id: string;
|
|
65
|
+
name: string;
|
|
66
|
+
/**
|
|
67
|
+
* The client company, and the picker's group header. NULL for an internal
|
|
68
|
+
* project: the card then reads "Internal" rather than repeating the owner
|
|
69
|
+
* company's own name back at the reader, which says nothing.
|
|
70
|
+
*/
|
|
71
|
+
client: string | null;
|
|
72
|
+
/** The description excerpt, when the project has one. */
|
|
73
|
+
description?: string;
|
|
74
|
+
/** A project need not have a leader. */
|
|
75
|
+
lead?: PickerPerson;
|
|
76
|
+
/** A project need not have a label. */
|
|
77
|
+
label?: PickerProjectLabel;
|
|
78
|
+
tasks: PickerTask[];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* What an internal project's client line says. The word belongs to the card (it
|
|
82
|
+
* is the card that has to decide what to print for a project with no client), so
|
|
83
|
+
* the board re-exports the card's own constant rather than keeping a second copy
|
|
84
|
+
* that could drift.
|
|
85
|
+
*/
|
|
86
|
+
export declare const INTERNAL_CLIENT_LABEL = "Internal";
|
|
87
|
+
export declare const projectClientLabel: (project: PickerProject) => string;
|
|
88
|
+
export interface PickerProjectGroup {
|
|
89
|
+
client: string;
|
|
90
|
+
projects: PickerProject[];
|
|
91
|
+
}
|
|
92
|
+
export interface PickerTaskGroup {
|
|
93
|
+
taskList: string;
|
|
94
|
+
tasks: PickerTask[];
|
|
95
|
+
}
|
|
96
|
+
export declare const PICKER_PEOPLE: Record<string, PickerPerson>;
|
|
97
|
+
export declare const PICKER_LABELS: Record<string, PickerTaskLabel>;
|
|
98
|
+
export declare const PICKER_PROJECT_LABELS: Record<string, PickerProjectLabel>;
|
|
99
|
+
export declare const PICKER_PROJECTS: PickerProject[];
|
|
100
|
+
export declare const groupProjects: (projects: PickerProject[]) => PickerProjectGroup[];
|
|
101
|
+
export declare const groupTasks: (tasks: PickerTask[]) => PickerTaskGroup[];
|
|
102
|
+
/** `#123: Name` — `utils/taskDisplayName`, the app's own task display name. */
|
|
103
|
+
export declare const taskDisplayName: (task: PickerTask) => string;
|
|
104
|
+
/**
|
|
105
|
+
* A board is shared with people who do not all see the same projects. When a
|
|
106
|
+
* card points at a task or project the current viewer cannot open, the board
|
|
107
|
+
* cannot just drop it: the element is part of everyone else's layout, and a
|
|
108
|
+
* hole would be a worse lie than a blank. So the card stays and says exactly
|
|
109
|
+
* one thing — something is here, and it is not yours to see.
|
|
110
|
+
*
|
|
111
|
+
* This follows the app's existing limited-access language (Workload):
|
|
112
|
+
* - the wording is "Limited Access", the phrase `EntityPlaceholder`,
|
|
113
|
+
* `WorkloadCalendarEvent`, Expenses and Timelist all already use;
|
|
114
|
+
* - nothing else is rendered. Workload's own limited cell
|
|
115
|
+
* (`.workload_null_project_cell`) shows an aggregate and no name, and the
|
|
116
|
+
* shape it is fed is literally `{ hoursOccupied, leftOffset }` — a quantity
|
|
117
|
+
* and a position, never an identity;
|
|
118
|
+
* - the surface is muted and hatched, the treatment the app reserves for
|
|
119
|
+
* "this area is not live" (weekend / day-off cells, `--muted-surface`);
|
|
120
|
+
* - no affordance suggests opening: Workload points the link at "#", disables
|
|
121
|
+
* the name tooltip so the title cannot leak, and marks blocked interactions
|
|
122
|
+
* `cursor: not-allowed`.
|
|
123
|
+
*/
|
|
124
|
+
export declare const LIMITED_ACCESS_LABEL = "Limited Access";
|
|
125
|
+
export declare const LIMITED_ACCESS_MESSAGE = "You don't have access to this item.";
|
|
126
|
+
/** A project / task element on the board. Position lives in `positions`. */
|
|
127
|
+
export interface ProjectElementDef {
|
|
128
|
+
id: string;
|
|
129
|
+
kind: ProjectElementKind;
|
|
130
|
+
/**
|
|
131
|
+
* The element's width — the drawn placeholder box first, then the card's
|
|
132
|
+
* natural width, written once when the card resolves.
|
|
133
|
+
*
|
|
134
|
+
* It is one field and not two (a placeholder box plus a derived card width)
|
|
135
|
+
* because the Inspector edits this: a derived width would be read-only by
|
|
136
|
+
* construction, and a second stored width would be a copy that can disagree.
|
|
137
|
+
*/
|
|
138
|
+
width: number;
|
|
139
|
+
/** The placeholder box height. A resolved card is auto-height. */
|
|
140
|
+
height: number;
|
|
141
|
+
status: ProjectElementStatus;
|
|
142
|
+
/**
|
|
143
|
+
* The viewer cannot access what this card points at, so there is nothing to
|
|
144
|
+
* fill `project` / `task` with and never will be — the details are withheld
|
|
145
|
+
* by the server, not merely unfetched. Everything the card can do is
|
|
146
|
+
* withheld with them: it does not move, resize or open.
|
|
147
|
+
*/
|
|
148
|
+
limited?: boolean;
|
|
149
|
+
/** Filled once the picker returns; for a task this is its project. */
|
|
150
|
+
project: PickerProject | null;
|
|
151
|
+
task: PickerTask | null;
|
|
152
|
+
}
|
|
153
|
+
/** The natural width a resolved card of this kind grows to. */
|
|
154
|
+
export declare const projectCardWidth: (kind: ProjectElementKind) => number;
|
|
155
|
+
/**
|
|
156
|
+
* What the card is OF — the task's or the project's own name.
|
|
157
|
+
*
|
|
158
|
+
* These cards are a view of a record that lives in the project, so the board
|
|
159
|
+
* does not get to name them: the title is the entity's, and it is read-only
|
|
160
|
+
* wherever it appears. A placeholder has no entity yet, so it says what it is
|
|
161
|
+
* still waiting for.
|
|
162
|
+
*/
|
|
163
|
+
export declare const projectElementTitle: (element: ProjectElementDef) => string;
|
|
164
|
+
export declare const SEEDED_PROJECT_ELEMENTS: ProjectElementDef[];
|
|
165
|
+
export declare const SEEDED_PROJECT_ELEMENT_POSITIONS: Record<string, {
|
|
166
|
+
x: number;
|
|
167
|
+
y: number;
|
|
168
|
+
}>;
|
|
169
|
+
export declare const StyledProjectElementBox: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
170
|
+
export declare const StyledProjectDraft: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
171
|
+
export declare const StyledPlaceholder: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
172
|
+
export declare const StyledResolving: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
173
|
+
/**
|
|
174
|
+
* The limited-access face — the card-shaped translation of Workload's black
|
|
175
|
+
* `.workload_null_project_cell`.
|
|
176
|
+
*
|
|
177
|
+
* The app hardcodes that cell `#000000` on `#ffffff` text, which works there
|
|
178
|
+
* because it always sits on light paper. A canvas is not always light: on the
|
|
179
|
+
* dark board a black slab would sink into the background instead of reading as
|
|
180
|
+
* something withheld. So the same idea is expressed with the design system's
|
|
181
|
+
* own "not live" tokens — `--muted-surface` / `--muted-surface-text` are the
|
|
182
|
+
* pair the app itself substitutes for muted surfaces in dark themes, and they
|
|
183
|
+
* are a legible, deliberately flat combination in every theme.
|
|
184
|
+
*
|
|
185
|
+
* The -45° hatch is copied stroke for stroke from the app's unavailable
|
|
186
|
+
* surfaces (weekend and day-off cells): `transparent 5px, <line> 5px, <line>
|
|
187
|
+
* 5.7px`, with `--stripe-pattern` as the line — the token workload.less uses
|
|
188
|
+
* for exactly this in dark themes.
|
|
189
|
+
*/
|
|
190
|
+
export declare const StyledLimitedCard: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
191
|
+
export interface TaskFaceProps {
|
|
192
|
+
project: PickerProject;
|
|
193
|
+
task: PickerTask;
|
|
194
|
+
selected?: boolean;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* The task face — the shared `TaskCard`, with the project line switched on.
|
|
198
|
+
*
|
|
199
|
+
* The board writes no anatomy of its own: the title clamp, the info line (labels
|
|
200
|
+
* as colour text, the counter signifiers and their 2px dot separators) and the
|
|
201
|
+
* date / assignees row all live in the content card, where the column-view
|
|
202
|
+
* baseline they preserve is documented. The one thing the board asks for is the
|
|
203
|
+
* project line above the title: on a canvas a task card has lost the column that
|
|
204
|
+
* used to say which project it came from.
|
|
205
|
+
*
|
|
206
|
+
* The title is the app's own display name (`#123: Name`, `taskDisplayName`), so
|
|
207
|
+
* the card's separate task-number prefix stays off.
|
|
208
|
+
*/
|
|
209
|
+
export declare const TaskElementCard: ({ project, task, selected, }: TaskFaceProps) => ReactElement;
|
|
210
|
+
/**
|
|
211
|
+
* The project face — the shared `ProjectCard`.
|
|
212
|
+
*
|
|
213
|
+
* The whiteboard's face spec and the content type's are the SAME spec, so it is
|
|
214
|
+
* implemented once, in the card: name and client, an optional description
|
|
215
|
+
* excerpt, and one row carrying the leader on the left and the label on the
|
|
216
|
+
* right. No progress indicator, and no row at all when the project has neither a
|
|
217
|
+
* leader nor a label.
|
|
218
|
+
*/
|
|
219
|
+
export declare const ProjectElementCard: ({ project, selected, }: {
|
|
220
|
+
project: PickerProject;
|
|
221
|
+
selected?: boolean;
|
|
222
|
+
}) => ReactElement;
|
|
223
|
+
/**
|
|
224
|
+
* The limited-access card. Deliberately the shortest component in this file:
|
|
225
|
+
* one phrase, no icon, no entity data of any kind.
|
|
226
|
+
*
|
|
227
|
+
* No icon because the app uses none — Expenses and Timelist both render the
|
|
228
|
+
* bare `Caption1 weight="bold"` "Limited Access", and an icon here would be a
|
|
229
|
+
* second signal competing with the hatch. Even the KIND (task vs project) is
|
|
230
|
+
* withheld: the viewer is told that a card exists, not what sort of thing it
|
|
231
|
+
* points at.
|
|
232
|
+
*
|
|
233
|
+
* The tooltip is allowed to exist because it carries the viewer's situation,
|
|
234
|
+
* not the entity's identity — the opposite of the tooltip Workload disables on
|
|
235
|
+
* a limited event, which would have leaked the name.
|
|
236
|
+
*/
|
|
237
|
+
export declare const LimitedElementCard: () => ReactElement;
|
|
238
|
+
/** One board element, in whichever of its three states it currently is. */
|
|
239
|
+
export declare const ProjectElementNode: ({ element, selected, }: {
|
|
240
|
+
element: ProjectElementDef;
|
|
241
|
+
/**
|
|
242
|
+
* Host-owned selection. A resolved card is a `StackedCard`, and the shell draws
|
|
243
|
+
* its own ring from `--sc-selection-ring` (the board sets it to the selection
|
|
244
|
+
* blue) — the same arrangement the link and file cards already use, which is
|
|
245
|
+
* why their wrapper carries `is-card` to suppress the box's second ring.
|
|
246
|
+
*/
|
|
247
|
+
selected?: boolean;
|
|
248
|
+
}) => ReactElement;
|
|
249
|
+
export interface PickerRowProps {
|
|
250
|
+
id: string;
|
|
251
|
+
name: string;
|
|
252
|
+
onSelect: () => void;
|
|
253
|
+
}
|
|
254
|
+
export interface ProjectElementPickerProps {
|
|
255
|
+
kind: ProjectElementKind;
|
|
256
|
+
onSelectProject: (project: PickerProject) => void;
|
|
257
|
+
onSelectTask: (project: PickerProject, task: PickerTask) => void;
|
|
258
|
+
onCancel: () => void;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* One picker, two flows — the same split the app makes between
|
|
262
|
+
* `MenuSelector/ProjectList` (one step) and `ProjectTaskMenuSelector` (project,
|
|
263
|
+
* then task). The task flow deliberately drops the app's "Directly on project"
|
|
264
|
+
* default option: a task card has to be a task.
|
|
265
|
+
*/
|
|
266
|
+
export declare const ProjectElementPicker: ({ kind, onSelectProject, onSelectTask, onCancel, }: ProjectElementPickerProps) => ReactElement;
|
|
267
|
+
//# sourceMappingURL=projectElements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectElements.d.ts","sourceRoot":"","sources":["../../../../src/presentation/whiteboard/projectElements.tsx"],"names":[],"mappings":"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"}
|