@unofficialbox/box-open-elements 0.5.0 → 0.7.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.
Files changed (227) hide show
  1. package/README.md +27 -73
  2. package/dist/components/collections/table.d.ts +113 -3
  3. package/dist/components/collections/table.js +540 -37
  4. package/dist/components/feedback/due-badge.d.ts +38 -0
  5. package/dist/components/feedback/due-badge.js +168 -0
  6. package/dist/components/feedback/due-types.d.ts +32 -0
  7. package/dist/components/feedback/due-types.js +91 -0
  8. package/dist/components/feedback/progress-steps.d.ts +51 -5
  9. package/dist/components/feedback/progress-steps.js +200 -22
  10. package/dist/components/feedback/stage-path.d.ts +44 -0
  11. package/dist/components/feedback/stage-path.js +235 -0
  12. package/dist/components/forms/select.d.ts +21 -0
  13. package/dist/components/forms/select.js +100 -3
  14. package/dist/components/forms/text-field.d.ts +21 -0
  15. package/dist/components/forms/text-field.js +100 -1
  16. package/dist/components/layout/nav-sidebar.d.ts +14 -0
  17. package/dist/components/layout/nav-sidebar.js +49 -0
  18. package/dist/components/layout/split-view.d.ts +14 -0
  19. package/dist/components/layout/split-view.js +80 -1
  20. package/dist/components/overlays/command-palette.d.ts +62 -0
  21. package/dist/components/overlays/command-palette.js +537 -0
  22. package/dist/components/overlays/command-types.d.ts +90 -0
  23. package/dist/components/overlays/command-types.js +259 -0
  24. package/dist/components/overlays/drawer.d.ts +18 -0
  25. package/dist/components/overlays/drawer.js +135 -9
  26. package/dist/components/overlays/shortcuts-overlay.d.ts +48 -0
  27. package/dist/components/overlays/shortcuts-overlay.js +385 -0
  28. package/dist/components/overlays/tooltip.js +1 -1
  29. package/dist/core/index.d.ts +4 -0
  30. package/dist/core/index.js +2 -0
  31. package/dist/core/offset-window.d.ts +70 -0
  32. package/dist/core/offset-window.js +134 -0
  33. package/dist/core/virtualize.d.ts +71 -0
  34. package/dist/core/virtualize.js +67 -0
  35. package/dist/element-maps.d.ts +292 -0
  36. package/dist/element-maps.js +1 -0
  37. package/dist/entries/activity-density.d.ts +1 -0
  38. package/dist/entries/activity-density.js +1 -0
  39. package/dist/entries/agent-chat.d.ts +1 -0
  40. package/dist/entries/agent-chat.js +1 -0
  41. package/dist/entries/audit-log.d.ts +1 -0
  42. package/dist/entries/audit-log.js +1 -0
  43. package/dist/entries/command-palette.d.ts +1 -0
  44. package/dist/entries/command-palette.js +1 -0
  45. package/dist/entries/compare-view.d.ts +1 -0
  46. package/dist/entries/compare-view.js +1 -0
  47. package/dist/entries/diff-viewer.d.ts +1 -0
  48. package/dist/entries/diff-viewer.js +1 -0
  49. package/dist/entries/due-badge.d.ts +1 -0
  50. package/dist/entries/due-badge.js +1 -0
  51. package/dist/entries/form-wizard.d.ts +1 -0
  52. package/dist/entries/form-wizard.js +1 -0
  53. package/dist/entries/lineage-graph.d.ts +1 -0
  54. package/dist/entries/lineage-graph.js +1 -0
  55. package/dist/entries/notification-bell.d.ts +1 -0
  56. package/dist/entries/notification-bell.js +1 -0
  57. package/dist/entries/notification-inbox.d.ts +1 -0
  58. package/dist/entries/notification-inbox.js +1 -0
  59. package/dist/entries/provenance-strip.d.ts +1 -0
  60. package/dist/entries/provenance-strip.js +1 -0
  61. package/dist/entries/run-trace.d.ts +1 -0
  62. package/dist/entries/run-trace.js +1 -0
  63. package/dist/entries/shortcuts-overlay.d.ts +1 -0
  64. package/dist/entries/shortcuts-overlay.js +1 -0
  65. package/dist/entries/signature-ceremony.d.ts +1 -0
  66. package/dist/entries/signature-ceremony.js +1 -0
  67. package/dist/entries/stage-path.d.ts +1 -0
  68. package/dist/entries/stage-path.js +1 -0
  69. package/dist/entries/timeline.d.ts +1 -0
  70. package/dist/entries/timeline.js +1 -0
  71. package/dist/entries/version-graph.d.ts +1 -0
  72. package/dist/entries/version-graph.js +1 -0
  73. package/dist/entries/version-list.d.ts +1 -0
  74. package/dist/entries/version-list.js +1 -0
  75. package/dist/entries/wizard-summary.d.ts +1 -0
  76. package/dist/entries/wizard-summary.js +1 -0
  77. package/dist/entries/work-queue.d.ts +1 -0
  78. package/dist/entries/work-queue.js +1 -0
  79. package/dist/entries/workload-board.d.ts +1 -0
  80. package/dist/entries/workload-board.js +1 -0
  81. package/dist/index.d.ts +21 -0
  82. package/dist/index.js +21 -0
  83. package/dist/patterns/agent-chat/agent-chat.d.ts +75 -0
  84. package/dist/patterns/agent-chat/agent-chat.js +820 -0
  85. package/dist/patterns/agent-chat/controller.d.ts +27 -0
  86. package/dist/patterns/agent-chat/controller.js +182 -0
  87. package/dist/patterns/agent-chat/index.d.ts +3 -0
  88. package/dist/patterns/agent-chat/index.js +6 -0
  89. package/dist/patterns/agent-chat/types.d.ts +109 -0
  90. package/dist/patterns/agent-chat/types.js +1 -0
  91. package/dist/patterns/audit/activity-density.d.ts +68 -0
  92. package/dist/patterns/audit/activity-density.js +428 -0
  93. package/dist/patterns/audit/audit-log.d.ts +182 -0
  94. package/dist/patterns/audit/audit-log.js +1082 -0
  95. package/dist/patterns/audit/index.d.ts +3 -0
  96. package/dist/patterns/audit/index.js +7 -0
  97. package/dist/patterns/audit/shared.d.ts +10 -0
  98. package/dist/patterns/audit/shared.js +50 -0
  99. package/dist/patterns/audit/types.d.ts +143 -0
  100. package/dist/patterns/audit/types.js +327 -0
  101. package/dist/patterns/audit/window.d.ts +116 -0
  102. package/dist/patterns/audit/window.js +132 -0
  103. package/dist/patterns/content-explorer/actions/controller.js +12 -2
  104. package/dist/patterns/content-explorer/box-transport.js +117 -25
  105. package/dist/patterns/content-explorer/content-explorer.d.ts +13 -1
  106. package/dist/patterns/content-explorer/content-explorer.js +36 -3
  107. package/dist/patterns/content-explorer/contracts.d.ts +24 -1
  108. package/dist/patterns/content-explorer/contracts.js +68 -11
  109. package/dist/patterns/content-explorer/controller.d.ts +16 -1
  110. package/dist/patterns/content-explorer/controller.js +130 -4
  111. package/dist/patterns/content-explorer/navigation/controller.js +11 -9
  112. package/dist/patterns/content-explorer/types.d.ts +58 -1
  113. package/dist/patterns/content-picker/content-picker.d.ts +71 -0
  114. package/dist/patterns/content-picker/content-picker.js +747 -0
  115. package/dist/patterns/content-picker/controller.d.ts +38 -0
  116. package/dist/patterns/content-picker/controller.js +141 -0
  117. package/dist/patterns/content-picker/index.d.ts +3 -0
  118. package/dist/patterns/content-picker/index.js +6 -0
  119. package/dist/patterns/content-picker/types.d.ts +52 -0
  120. package/dist/patterns/content-picker/types.js +26 -0
  121. package/dist/patterns/content-sidebar/content-sidebar.d.ts +43 -0
  122. package/dist/patterns/content-sidebar/content-sidebar.js +293 -0
  123. package/dist/patterns/content-sidebar/index.d.ts +2 -0
  124. package/dist/patterns/content-sidebar/index.js +4 -0
  125. package/dist/patterns/content-sidebar/types.d.ts +18 -0
  126. package/dist/patterns/content-sidebar/types.js +20 -0
  127. package/dist/patterns/content-uploader/box-transport.d.ts +14 -0
  128. package/dist/patterns/content-uploader/box-transport.js +54 -0
  129. package/dist/patterns/content-uploader/content-uploader.d.ts +62 -0
  130. package/dist/patterns/content-uploader/content-uploader.js +559 -0
  131. package/dist/patterns/content-uploader/controller.d.ts +39 -0
  132. package/dist/patterns/content-uploader/controller.js +227 -0
  133. package/dist/patterns/content-uploader/index.d.ts +4 -0
  134. package/dist/patterns/content-uploader/index.js +8 -0
  135. package/dist/patterns/content-uploader/types.d.ts +120 -0
  136. package/dist/patterns/content-uploader/types.js +38 -0
  137. package/dist/patterns/diff/compare-view.d.ts +47 -0
  138. package/dist/patterns/diff/compare-view.js +276 -0
  139. package/dist/patterns/diff/diff-viewer.d.ts +42 -0
  140. package/dist/patterns/diff/diff-viewer.js +434 -0
  141. package/dist/patterns/diff/engine.d.ts +22 -0
  142. package/dist/patterns/diff/engine.js +276 -0
  143. package/dist/patterns/diff/index.d.ts +4 -0
  144. package/dist/patterns/diff/index.js +8 -0
  145. package/dist/patterns/diff/types.d.ts +69 -0
  146. package/dist/patterns/diff/types.js +24 -0
  147. package/dist/patterns/form-wizard/controller.d.ts +39 -0
  148. package/dist/patterns/form-wizard/controller.js +157 -0
  149. package/dist/patterns/form-wizard/form-wizard.d.ts +63 -0
  150. package/dist/patterns/form-wizard/form-wizard.js +468 -0
  151. package/dist/patterns/form-wizard/index.d.ts +4 -0
  152. package/dist/patterns/form-wizard/index.js +8 -0
  153. package/dist/patterns/form-wizard/types.d.ts +109 -0
  154. package/dist/patterns/form-wizard/types.js +83 -0
  155. package/dist/patterns/form-wizard/wizard-summary.d.ts +62 -0
  156. package/dist/patterns/form-wizard/wizard-summary.js +324 -0
  157. package/dist/patterns/internal/safe-href.d.ts +17 -0
  158. package/dist/patterns/internal/safe-href.js +17 -0
  159. package/dist/patterns/lineage/index.d.ts +3 -0
  160. package/dist/patterns/lineage/index.js +6 -0
  161. package/dist/patterns/lineage/lineage-graph.d.ts +30 -0
  162. package/dist/patterns/lineage/lineage-graph.js +434 -0
  163. package/dist/patterns/lineage/provenance-strip.d.ts +22 -0
  164. package/dist/patterns/lineage/provenance-strip.js +194 -0
  165. package/dist/patterns/lineage/types.d.ts +53 -0
  166. package/dist/patterns/lineage/types.js +49 -0
  167. package/dist/patterns/notifications/index.d.ts +3 -0
  168. package/dist/patterns/notifications/index.js +6 -0
  169. package/dist/patterns/notifications/notification-bell.d.ts +38 -0
  170. package/dist/patterns/notifications/notification-bell.js +198 -0
  171. package/dist/patterns/notifications/notification-inbox.d.ts +46 -0
  172. package/dist/patterns/notifications/notification-inbox.js +537 -0
  173. package/dist/patterns/notifications/types.d.ts +61 -0
  174. package/dist/patterns/notifications/types.js +108 -0
  175. package/dist/patterns/preview/annotation-inspector.d.ts +25 -6
  176. package/dist/patterns/preview/annotation-inspector.js +239 -94
  177. package/dist/patterns/preview/annotation-thread.d.ts +25 -5
  178. package/dist/patterns/preview/annotation-thread.js +233 -82
  179. package/dist/patterns/preview/annotation-toolbar.d.ts +20 -6
  180. package/dist/patterns/preview/annotation-toolbar.js +162 -96
  181. package/dist/patterns/preview/content-preview-adapter.d.ts +10 -1
  182. package/dist/patterns/preview/content-preview-adapter.js +26 -1
  183. package/dist/patterns/preview/preview-element.d.ts +15 -2
  184. package/dist/patterns/preview/preview-element.js +223 -52
  185. package/dist/patterns/preview/provider-adapter.d.ts +47 -0
  186. package/dist/patterns/preview/provider-adapter.js +17 -0
  187. package/dist/patterns/run/index.d.ts +2 -0
  188. package/dist/patterns/run/index.js +4 -0
  189. package/dist/patterns/run/run-trace.d.ts +40 -0
  190. package/dist/patterns/run/run-trace.js +441 -0
  191. package/dist/patterns/run/types.d.ts +66 -0
  192. package/dist/patterns/run/types.js +152 -0
  193. package/dist/patterns/signature/index.d.ts +2 -0
  194. package/dist/patterns/signature/index.js +4 -0
  195. package/dist/patterns/signature/signature-ceremony.d.ts +33 -0
  196. package/dist/patterns/signature/signature-ceremony.js +317 -0
  197. package/dist/patterns/signature/types.d.ts +68 -0
  198. package/dist/patterns/signature/types.js +89 -0
  199. package/dist/patterns/timeline/index.d.ts +2 -0
  200. package/dist/patterns/timeline/index.js +4 -0
  201. package/dist/patterns/timeline/timeline.d.ts +27 -0
  202. package/dist/patterns/timeline/timeline.js +430 -0
  203. package/dist/patterns/timeline/types.d.ts +36 -0
  204. package/dist/patterns/timeline/types.js +27 -0
  205. package/dist/patterns/versions/graph-layout.d.ts +43 -0
  206. package/dist/patterns/versions/graph-layout.js +159 -0
  207. package/dist/patterns/versions/index.d.ts +4 -0
  208. package/dist/patterns/versions/index.js +8 -0
  209. package/dist/patterns/versions/shared.d.ts +4 -0
  210. package/dist/patterns/versions/shared.js +13 -0
  211. package/dist/patterns/versions/types.d.ts +37 -0
  212. package/dist/patterns/versions/types.js +39 -0
  213. package/dist/patterns/versions/version-graph.d.ts +36 -0
  214. package/dist/patterns/versions/version-graph.js +438 -0
  215. package/dist/patterns/versions/version-list.d.ts +39 -0
  216. package/dist/patterns/versions/version-list.js +407 -0
  217. package/dist/patterns/work-queue/controller.d.ts +26 -0
  218. package/dist/patterns/work-queue/controller.js +150 -0
  219. package/dist/patterns/work-queue/index.d.ts +4 -0
  220. package/dist/patterns/work-queue/index.js +7 -0
  221. package/dist/patterns/work-queue/types.d.ts +128 -0
  222. package/dist/patterns/work-queue/types.js +45 -0
  223. package/dist/patterns/work-queue/work-queue.d.ts +48 -0
  224. package/dist/patterns/work-queue/work-queue.js +534 -0
  225. package/dist/patterns/work-queue/workload-board.d.ts +53 -0
  226. package/dist/patterns/work-queue/workload-board.js +608 -0
  227. package/package.json +89 -5
@@ -0,0 +1,128 @@
1
+ export type WorkItemStatus = "open" | "in-progress" | "completed" | "escalated";
2
+ export type WorkItemPriority = "low" | "medium" | "high" | "urgent";
3
+ export type WorkItemRisk = "low" | "medium" | "high";
4
+ export interface WorkItemAssignee {
5
+ id: string;
6
+ name: string;
7
+ initials?: string;
8
+ }
9
+ /**
10
+ * One unit of governed work: a review, approval, signature, or intake task
11
+ * bound to an entity (typically a contract). `type` is an open vocabulary —
12
+ * hosts add their own kinds without a schema change.
13
+ */
14
+ export interface WorkItem {
15
+ id: string;
16
+ title: string;
17
+ type: string;
18
+ status: WorkItemStatus;
19
+ entityRef?: {
20
+ id: string;
21
+ label?: string;
22
+ };
23
+ assignee?: WorkItemAssignee | null;
24
+ priority?: WorkItemPriority;
25
+ riskLevel?: WorkItemRisk;
26
+ /** ISO due timestamp; drives the urgency buckets and SLA affordances. */
27
+ dueAt?: string;
28
+ createdAt?: string;
29
+ }
30
+ export interface WorkQueueFilters {
31
+ assigneeId?: string;
32
+ status?: WorkItemStatus;
33
+ type?: string;
34
+ riskLevel?: WorkItemRisk;
35
+ }
36
+ export interface WorkQueueLoadRequest {
37
+ filters?: WorkQueueFilters;
38
+ token: string;
39
+ signal?: AbortSignal;
40
+ }
41
+ export interface WorkQueueMutationRequest {
42
+ itemId: string;
43
+ token: string;
44
+ }
45
+ /**
46
+ * One narrow contract for queue data and the four governed mutations. All
47
+ * mutations are optional capabilities: the shells only render actions for
48
+ * capabilities the transport provides, and invoking a missing capability on
49
+ * the controller throws a descriptive error (a programming error, not a
50
+ * runtime state).
51
+ */
52
+ export interface WorkQueueTransport {
53
+ loadItems(request: WorkQueueLoadRequest): Promise<{
54
+ items: WorkItem[];
55
+ }>;
56
+ claimItem?(request: WorkQueueMutationRequest & {
57
+ assigneeId: string;
58
+ }): Promise<WorkItem>;
59
+ reassignItem?(request: WorkQueueMutationRequest & {
60
+ assigneeId: string;
61
+ }): Promise<WorkItem>;
62
+ completeItem?(request: WorkQueueMutationRequest): Promise<WorkItem>;
63
+ escalateItem?(request: WorkQueueMutationRequest & {
64
+ reason?: string;
65
+ }): Promise<WorkItem>;
66
+ }
67
+ export interface WorkQueueSessionConfig {
68
+ token: string;
69
+ transport: WorkQueueTransport;
70
+ filters?: WorkQueueFilters;
71
+ /** Team roster for workload lanes; assignees found on items fill any gaps. */
72
+ team?: WorkItemAssignee[];
73
+ }
74
+ export type WorkQueueMutationKind = "claim" | "reassign" | "complete" | "escalate";
75
+ export interface WorkQueueState {
76
+ connected: boolean;
77
+ loading: boolean;
78
+ items: WorkItem[];
79
+ filters: WorkQueueFilters;
80
+ error: string | null;
81
+ }
82
+ export interface WorkQueueEvents {
83
+ connected: undefined;
84
+ disconnected: undefined;
85
+ loadingChanged: {
86
+ loading: boolean;
87
+ };
88
+ itemsChanged: {
89
+ items: WorkItem[];
90
+ };
91
+ filtersChanged: {
92
+ filters: WorkQueueFilters;
93
+ };
94
+ loadFailed: {
95
+ message: string;
96
+ };
97
+ itemMutated: {
98
+ kind: WorkQueueMutationKind;
99
+ item: WorkItem;
100
+ };
101
+ mutationFailed: {
102
+ kind: WorkQueueMutationKind;
103
+ itemId: string;
104
+ message: string;
105
+ };
106
+ }
107
+ /**
108
+ * Urgency buckets live with `box-due-badge` — patterns compose components,
109
+ * not the other way round — and are re-exported here so this pattern's
110
+ * public import path is unchanged.
111
+ */
112
+ export { DUE_BUCKET_LABELS, DUE_BUCKET_ORDER, daysUntilDue, formatDueLabel, resolveDueBucket, } from "../../components/feedback/due-types.js";
113
+ export type { DueBucket } from "../../components/feedback/due-types.js";
114
+ export interface WorkloadLane {
115
+ /** Null for the unassigned lane. */
116
+ assignee: WorkItemAssignee | null;
117
+ items: WorkItem[];
118
+ total: number;
119
+ overdue: number;
120
+ inProgress: number;
121
+ }
122
+ /**
123
+ * Group items into per-assignee lanes for the supervisor board. The roster
124
+ * fixes lane order (people with zero items still get a lane — visible spare
125
+ * capacity); assignees found only on items are appended, and unassigned
126
+ * items land in a trailing lane.
127
+ */
128
+ export declare const summarizeWorkload: (items: readonly WorkItem[], team: readonly WorkItemAssignee[], now: Date) => WorkloadLane[];
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Urgency buckets live with `box-due-badge` — patterns compose components,
3
+ * not the other way round — and are re-exported here so this pattern's
4
+ * public import path is unchanged.
5
+ */
6
+ export { DUE_BUCKET_LABELS, DUE_BUCKET_ORDER, daysUntilDue, formatDueLabel, resolveDueBucket, } from "../../components/feedback/due-types.js";
7
+ import { resolveDueBucket as bucketOf } from "../../components/feedback/due-types.js";
8
+ /**
9
+ * Group items into per-assignee lanes for the supervisor board. The roster
10
+ * fixes lane order (people with zero items still get a lane — visible spare
11
+ * capacity); assignees found only on items are appended, and unassigned
12
+ * items land in a trailing lane.
13
+ */
14
+ export const summarizeWorkload = (items, team, now) => {
15
+ const lanes = new Map();
16
+ const laneFor = (assignee) => {
17
+ const key = assignee?.id ?? "";
18
+ let lane = lanes.get(key);
19
+ if (!lane) {
20
+ lane = { assignee, items: [], total: 0, overdue: 0, inProgress: 0 };
21
+ lanes.set(key, lane);
22
+ }
23
+ return lane;
24
+ };
25
+ for (const member of team) {
26
+ laneFor(member);
27
+ }
28
+ for (const item of items) {
29
+ const lane = laneFor(item.assignee ?? null);
30
+ lane.items.push(item);
31
+ lane.total += 1;
32
+ if (bucketOf(item.dueAt, now) === "overdue" && item.status !== "completed") {
33
+ lane.overdue += 1;
34
+ }
35
+ if (item.status === "in-progress") {
36
+ lane.inProgress += 1;
37
+ }
38
+ }
39
+ const ordered = [...lanes.values()].filter(lane => lane.assignee !== null);
40
+ const unassigned = lanes.get("");
41
+ if (unassigned && unassigned.total > 0) {
42
+ ordered.push(unassigned);
43
+ }
44
+ return ordered;
45
+ };
@@ -0,0 +1,48 @@
1
+ import { WorkQueueController } from "./controller.js";
2
+ import type { WorkQueueFilters, WorkQueueTransport } from "./types.js";
3
+ import { BaseElement } from "../../core/index.js";
4
+ export declare class WorkQueue extends BaseElement {
5
+ static readonly tagName: string;
6
+ static get observedAttributes(): string[];
7
+ private controller;
8
+ private ownsController;
9
+ private pendingStart;
10
+ private unsubscribeFns;
11
+ private transportValue;
12
+ private hostEl;
13
+ get heading(): string;
14
+ set heading(value: string);
15
+ get token(): string | null;
16
+ set token(value: string | null);
17
+ /** The current user; enables per-row Claim on unassigned open items. */
18
+ get assigneeId(): string | null;
19
+ set assigneeId(value: string | null);
20
+ /** ISO reference time for the urgency buckets; defaults to now. */
21
+ get referenceTime(): string | null;
22
+ set referenceTime(value: string | null);
23
+ get transport(): WorkQueueTransport | null;
24
+ set transport(value: WorkQueueTransport | null);
25
+ /**
26
+ * The live session controller. Assign one to share a session with another
27
+ * projection (e.g. a `box-workload-board` on the same page); otherwise the
28
+ * element creates and owns its own from `transport` + `token`.
29
+ */
30
+ get queueController(): WorkQueueController | null;
31
+ set queueController(value: WorkQueueController | null);
32
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
33
+ connectedCallback(): void;
34
+ disconnectedCallback(): void;
35
+ setFilters(patch: WorkQueueFilters): Promise<void>;
36
+ refresh(): Promise<void>;
37
+ private now;
38
+ private scheduleStart;
39
+ private startController;
40
+ private adoptController;
41
+ private subscribeToController;
42
+ private teardownController;
43
+ private rowActionsHtml;
44
+ private rowHtml;
45
+ protected renderTemplate(): void;
46
+ protected setupListeners(): void;
47
+ protected update(): void;
48
+ }