@worknice/whiteboard 0.52.0 → 0.53.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 (75) hide show
  1. package/dist/{presentation/TableColumnFilterModal.d.ts → controls/FilterModal.d.ts} +10 -3
  2. package/dist/{presentation/TableColumnFilterModal.js → controls/FilterModal.js} +32 -32
  3. package/dist/controls/FilterModal.module.js +13 -0
  4. package/dist/controls/FilterModal_module.css +60 -0
  5. package/dist/controls/MenuButton.js +1 -1
  6. package/dist/icons/MessagesIcon.d.ts +3 -0
  7. package/dist/icons/MessagesIcon.js +11 -0
  8. package/dist/icons/SlidersIcon.d.ts +3 -0
  9. package/dist/icons/SlidersIcon.js +12 -0
  10. package/dist/icons/WarningIcon.js +3 -3
  11. package/dist/icons/index.d.ts +2 -0
  12. package/dist/icons/index.js +3 -1
  13. package/dist/presentation/CustomizableTable/CustomizableTable.d.ts +2 -2
  14. package/dist/presentation/CustomizableTable/CustomizableTable.js +9 -7
  15. package/dist/presentation/RichList/RichList.d.ts +150 -0
  16. package/dist/presentation/RichList/RichList.js +507 -0
  17. package/dist/presentation/RichList/RichList.module.js +12 -0
  18. package/dist/presentation/RichList/RichList.stories.d.ts +24 -0
  19. package/dist/presentation/RichList/RichList.stories.js +334 -0
  20. package/dist/presentation/RichList/RichListBulkActionBar.d.ts +21 -0
  21. package/dist/presentation/RichList/RichListBulkActionBar.js +112 -0
  22. package/dist/presentation/RichList/RichListBulkActionBar.module.js +7 -0
  23. package/dist/presentation/RichList/RichListBulkActionBar_module.css +18 -0
  24. package/dist/presentation/RichList/RichListDisplayModal.d.ts +33 -0
  25. package/dist/presentation/RichList/RichListDisplayModal.js +198 -0
  26. package/dist/presentation/RichList/RichListRow.d.ts +39 -0
  27. package/dist/presentation/RichList/RichListRow.js +278 -0
  28. package/dist/presentation/RichList/RichListRow.module.js +34 -0
  29. package/dist/presentation/RichList/RichListRow_module.css +313 -0
  30. package/dist/presentation/RichList/RichListToolbar.d.ts +21 -0
  31. package/dist/presentation/RichList/RichListToolbar.js +104 -0
  32. package/dist/presentation/RichList/RichListToolbar.module.js +12 -0
  33. package/dist/presentation/RichList/RichListToolbar_module.css +100 -0
  34. package/dist/presentation/RichList/RichList_module.css +77 -0
  35. package/dist/presentation/RichList/helpers.d.ts +77 -0
  36. package/dist/presentation/RichList/helpers.js +121 -0
  37. package/dist/presentation/RichList/stories/ComplianceGroups.d.ts +9 -0
  38. package/dist/presentation/RichList/stories/ComplianceGroups.js +141 -0
  39. package/dist/presentation/RichList/stories/CustomFields.d.ts +13 -0
  40. package/dist/presentation/RichList/stories/CustomFields.js +80 -0
  41. package/dist/presentation/RichList/stories/EmployeeCompliance.d.ts +15 -0
  42. package/dist/presentation/RichList/stories/EmployeeCompliance.js +300 -0
  43. package/dist/presentation/RichList/stories/EmployeePaperwork.d.ts +21 -0
  44. package/dist/presentation/RichList/stories/EmployeePaperwork.js +225 -0
  45. package/dist/presentation/RichList/stories/EmployeePeople.d.ts +10 -0
  46. package/dist/presentation/RichList/stories/EmployeePeople.js +170 -0
  47. package/dist/presentation/RichList/stories/Leave.d.ts +21 -0
  48. package/dist/presentation/RichList/stories/Leave.js +332 -0
  49. package/dist/presentation/RichList/stories/Paperwork.d.ts +22 -0
  50. package/dist/presentation/RichList/stories/Paperwork.js +446 -0
  51. package/dist/presentation/RichList/stories/PaperworkApprovals.d.ts +23 -0
  52. package/dist/presentation/RichList/stories/PaperworkApprovals.js +342 -0
  53. package/dist/presentation/RichList/stories/PeopleList.d.ts +19 -0
  54. package/dist/presentation/RichList/stories/PeopleList.js +391 -0
  55. package/dist/presentation/RichList/stories/PeopleTags.d.ts +14 -0
  56. package/dist/presentation/RichList/stories/PeopleTags.js +106 -0
  57. package/dist/presentation/RichList/stories/Positions.d.ts +22 -0
  58. package/dist/presentation/RichList/stories/Positions.js +519 -0
  59. package/dist/presentation/RichList/stories/SavedQuestions.d.ts +13 -0
  60. package/dist/presentation/RichList/stories/SavedQuestions.js +152 -0
  61. package/dist/presentation/RichList/stories/Tables.d.ts +9 -0
  62. package/dist/presentation/RichList/stories/Tables.js +85 -0
  63. package/dist/presentation/RichList/stories/Tasks.d.ts +16 -0
  64. package/dist/presentation/RichList/stories/Tasks.js +340 -0
  65. package/dist/presentation/RichList/stories/shared/bulkActionStubs.d.ts +9 -0
  66. package/dist/presentation/RichList/stories/shared/bulkActionStubs.js +122 -0
  67. package/dist/presentation/RichList/stories/shared.d.ts +8 -0
  68. package/dist/presentation/RichList/stories/shared.js +2 -0
  69. package/dist/presentation/RichList/types.d.ts +342 -0
  70. package/dist/presentation/RichList/types.js +0 -0
  71. package/dist/presentation/Table.d.ts +1 -1
  72. package/dist/presentation/Table.js +2 -2
  73. package/dist/presentation/Table.module.js +0 -10
  74. package/dist/presentation/Table_module.css +1 -61
  75. package/package.json +2 -2
@@ -0,0 +1,342 @@
1
+ "use client";
2
+ import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
3
+ import * as __WEBPACK_EXTERNAL_MODULE__utils_useNextContext_js_b4604910__ from "../../../utils/useNextContext.js";
4
+ import * as __WEBPACK_EXTERNAL_MODULE__Badge_js_56d6dba9__ from "../../Badge.js";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__HStack_js_d2f77bae__ from "../../HStack.js";
6
+ import * as __WEBPACK_EXTERNAL_MODULE__Icon_js_b85e52f7__ from "../../Icon.js";
7
+ import * as __WEBPACK_EXTERNAL_MODULE__PersonAvatar_js_0117b3ba__ from "../../PersonAvatar.js";
8
+ import * as __WEBPACK_EXTERNAL_MODULE__PlainText_js_acfb96d1__ from "../../PlainText.js";
9
+ import * as __WEBPACK_EXTERNAL_MODULE__RichList_js_64f3f04c__ from "../RichList.js";
10
+ import * as __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__ from "./shared.js";
11
+ import * as __WEBPACK_EXTERNAL_MODULE__shared_bulkActionStubs_js_0d607dd0__ from "./shared/bulkActionStubs.js";
12
+ const LEADING_DOCUMENT = "AssignmentDocument";
13
+ const LEADING_FORM = "AssignmentQuestionnaire";
14
+ const LEADING_ID_STYLE = "Profile";
15
+ const rows = [
16
+ {
17
+ id: "pa1",
18
+ title: "Employment Contract – Salary",
19
+ leadingIcon: LEADING_DOCUMENT,
20
+ statusBadge: {
21
+ id: "b",
22
+ text: "Requested",
23
+ color: "blue"
24
+ },
25
+ statusLine: "Requested 13 Nov, 2025",
26
+ assigneeName: "Daniel Turner",
27
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(9),
28
+ secondaryName: "Evan Baker",
29
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(12)
30
+ },
31
+ {
32
+ id: "pa2",
33
+ title: "Homepage Creative",
34
+ leadingIcon: LEADING_DOCUMENT,
35
+ statusBadge: {
36
+ id: "b",
37
+ text: "Requested",
38
+ color: "blue"
39
+ },
40
+ statusLine: "Requested 10 Jan, 2026",
41
+ assigneeName: "Janice Martin",
42
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(1),
43
+ secondaryName: "Candice Berry",
44
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(3)
45
+ },
46
+ {
47
+ id: "pa3",
48
+ title: "Employment Contract",
49
+ leadingIcon: LEADING_DOCUMENT,
50
+ statusBadge: {
51
+ id: "b",
52
+ text: "Draft",
53
+ color: "grey"
54
+ },
55
+ statusLine: "Last edited 2 days ago",
56
+ assigneeName: "Evan Baker",
57
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(12),
58
+ secondaryName: "Daisy Smith",
59
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(2)
60
+ },
61
+ {
62
+ id: "pa4",
63
+ title: "Employment Contract",
64
+ leadingIcon: LEADING_DOCUMENT,
65
+ statusBadge: {
66
+ id: "b",
67
+ text: "Approved",
68
+ color: "green"
69
+ },
70
+ statusLine: "Approved 30 Jan, 2023",
71
+ assigneeName: "Badai Khan",
72
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(5),
73
+ secondaryName: "Andy Samson",
74
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(4)
75
+ },
76
+ {
77
+ id: "pa5",
78
+ title: "Bank Account Change",
79
+ leadingIcon: LEADING_FORM,
80
+ statusBadge: {
81
+ id: "b",
82
+ text: "Requested",
83
+ color: "blue"
84
+ },
85
+ statusLine: "Requested 1 Feb, 2026",
86
+ assigneeName: "Olivia Ng",
87
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(34),
88
+ secondaryName: "Sarah Cruden",
89
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(35)
90
+ },
91
+ {
92
+ id: "pa6",
93
+ title: "Code of Conduct",
94
+ leadingIcon: LEADING_DOCUMENT,
95
+ statusBadge: {
96
+ id: "b",
97
+ text: "Requested",
98
+ color: "blue"
99
+ },
100
+ statusLine: "Requested 3 Feb, 2026",
101
+ assigneeName: "James Washington",
102
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(22),
103
+ secondaryName: "Hannah Abbott",
104
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(7)
105
+ },
106
+ {
107
+ id: "pa7",
108
+ title: "Code of Conduct",
109
+ leadingIcon: LEADING_DOCUMENT,
110
+ statusBadge: {
111
+ id: "b",
112
+ text: "Draft",
113
+ color: "grey"
114
+ },
115
+ statusLine: "Draft · saved today",
116
+ assigneeName: "Marcus Chen",
117
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(36),
118
+ secondaryName: "Janice Martin",
119
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(1)
120
+ },
121
+ {
122
+ id: "pa8",
123
+ title: "Construction White/Blue Card",
124
+ leadingIcon: LEADING_ID_STYLE,
125
+ statusBadge: {
126
+ id: "b",
127
+ text: "Approved",
128
+ color: "green"
129
+ },
130
+ statusLine: "Approved 28 Mar, 2024",
131
+ assigneeName: "Ian MacLeod",
132
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(11),
133
+ secondaryName: "Fiona Gallagher",
134
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(13)
135
+ }
136
+ ];
137
+ const statusBadgeOptions = [
138
+ {
139
+ text: "Requested",
140
+ id: "st-requested"
141
+ },
142
+ {
143
+ text: "Draft",
144
+ id: "st-draft"
145
+ },
146
+ {
147
+ text: "Approved",
148
+ id: "st-approved"
149
+ }
150
+ ];
151
+ const uniqueAssigneeNames = [
152
+ ...new Set(rows.map((r)=>r.assigneeName))
153
+ ].sort((a, b)=>a.localeCompare(b));
154
+ const uniqueSecondaryNames = [
155
+ ...new Set(rows.map((r)=>r.secondaryName))
156
+ ].sort((a, b)=>a.localeCompare(b));
157
+ const assigneeLinkStyle = {
158
+ alignItems: "center",
159
+ color: "inherit",
160
+ display: "inline-flex",
161
+ gap: "var(--size-n2)",
162
+ minWidth: 0,
163
+ position: "relative",
164
+ textDecoration: "none",
165
+ zIndex: 2
166
+ };
167
+ const PaperworkApprovalsList = ({ compactBreakpoint, contentAlignment, enableSorting, rowHeight })=>{
168
+ const { Link } = (0, __WEBPACK_EXTERNAL_MODULE__utils_useNextContext_js_b4604910__["default"])();
169
+ const titleField = {
170
+ label: "Document",
171
+ value: (r)=>r.title,
172
+ globalFiltering: true,
173
+ render: (r)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__PlainText_js_acfb96d1__["default"], {
174
+ font: "regular-bold",
175
+ children: r.title
176
+ }),
177
+ suffixOnWide: (r)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__Badge_js_56d6dba9__["default"], {
178
+ id: `${r.id}-${r.statusBadge.id}`,
179
+ color: r.statusBadge.color,
180
+ children: r.statusBadge.text
181
+ })
182
+ };
183
+ const leadingSlot = {
184
+ id: "type",
185
+ label: "Type",
186
+ render: (r)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
187
+ style: {
188
+ alignItems: "center",
189
+ backgroundColor: "var(--color-grey-t09)",
190
+ borderRadius: "var(--size-n2)",
191
+ display: "flex",
192
+ justifyContent: "center",
193
+ padding: "var(--size-n2)"
194
+ },
195
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__Icon_js_b85e52f7__["default"], {
196
+ symbol: r.leadingIcon,
197
+ size: "default"
198
+ })
199
+ }),
200
+ size: 32
201
+ };
202
+ const statusSlot = {
203
+ id: "statusLine",
204
+ label: "Status / timeline",
205
+ canToggleVisibility: true,
206
+ value: (r)=>r.statusLine,
207
+ globalFiltering: true,
208
+ filter: {
209
+ isMulti: true,
210
+ label: "Document status",
211
+ options: statusBadgeOptions.map(({ id, text })=>({
212
+ id,
213
+ label: text,
214
+ predicate: (r)=>r.statusBadge.text === text
215
+ }))
216
+ },
217
+ render: (r)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__HStack_js_d2f77bae__["default"], {
218
+ spacing: "n2",
219
+ align: "center",
220
+ tagName: "div",
221
+ children: [
222
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__Icon_js_b85e52f7__["default"], {
223
+ symbol: "Leave",
224
+ size: "small",
225
+ tone: "muted"
226
+ }),
227
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__PlainText_js_acfb96d1__["default"], {
228
+ font: "small",
229
+ tone: "muted",
230
+ children: r.statusLine
231
+ })
232
+ ]
233
+ }),
234
+ align: "start",
235
+ size: 200,
236
+ compactSize: 130
237
+ };
238
+ const assigneeSlot = {
239
+ id: "assignee",
240
+ label: "Person",
241
+ canToggleVisibility: true,
242
+ value: (r)=>r.assigneeName,
243
+ globalFiltering: true,
244
+ filter: {
245
+ isMulti: true,
246
+ label: "Person",
247
+ options: uniqueAssigneeNames.map((name)=>({
248
+ id: `person-${name}`,
249
+ label: name,
250
+ predicate: (r)=>r.assigneeName === name
251
+ }))
252
+ },
253
+ render: (r)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Link, {
254
+ href: `#assignee-${r.id}`,
255
+ onClick: (e)=>e.stopPropagation(),
256
+ style: assigneeLinkStyle,
257
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE__HStack_js_d2f77bae__["default"], {
258
+ spacing: "n2",
259
+ align: "center",
260
+ tagName: "div",
261
+ children: [
262
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__PersonAvatar_js_0117b3ba__["default"], {
263
+ id: `${r.id}-ap`,
264
+ name: r.assigneeName,
265
+ imageUrl: r.assigneeImageUrl,
266
+ size: "small",
267
+ hue: "200"
268
+ }),
269
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__PlainText_js_acfb96d1__["default"], {
270
+ font: "small",
271
+ children: r.assigneeName
272
+ })
273
+ ]
274
+ })
275
+ }),
276
+ align: "start",
277
+ size: 180,
278
+ compactSize: 80
279
+ };
280
+ const secondarySlot = {
281
+ id: "secondary",
282
+ label: "Approver",
283
+ value: (r)=>r.secondaryName,
284
+ globalFiltering: true,
285
+ filter: {
286
+ isMulti: true,
287
+ label: "Approver",
288
+ options: uniqueSecondaryNames.map((name)=>({
289
+ id: `appr-${name}`,
290
+ label: name,
291
+ predicate: (r)=>r.secondaryName === name
292
+ }))
293
+ },
294
+ render: (r)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
295
+ style: {
296
+ display: "flex",
297
+ justifyContent: "flex-end"
298
+ },
299
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(Link, {
300
+ href: `#approver-${r.id}`,
301
+ onClick: (e)=>e.stopPropagation(),
302
+ style: {
303
+ ...assigneeLinkStyle,
304
+ justifyContent: "flex-end"
305
+ },
306
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__PersonAvatar_js_0117b3ba__["default"], {
307
+ id: `${r.id}-secondary`,
308
+ name: r.secondaryName,
309
+ imageUrl: r.secondaryImageUrl,
310
+ size: "small",
311
+ hue: "200"
312
+ })
313
+ })
314
+ }),
315
+ align: "end",
316
+ size: 48,
317
+ compactSize: 48
318
+ };
319
+ return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__RichList_js_64f3f04c__["default"], {
320
+ bulkActions: (0, __WEBPACK_EXTERNAL_MODULE__shared_bulkActionStubs_js_0d607dd0__.richListStoryPrimaryBulkActions)(),
321
+ secondaryBulkActions: (0, __WEBPACK_EXTERNAL_MODULE__shared_bulkActionStubs_js_0d607dd0__.richListStorySecondaryBulkActions)(),
322
+ compactBreakpoint: compactBreakpoint,
323
+ contentAlignment: contentAlignment,
324
+ contentSlots: [
325
+ statusSlot,
326
+ assigneeSlot
327
+ ],
328
+ data: rows,
329
+ enableSorting: enableSorting,
330
+ fillContainerHeight: true,
331
+ getRowId: (r)=>r.id,
332
+ leadingSlot: leadingSlot,
333
+ rowHeight: rowHeight,
334
+ mainSlot: {
335
+ size: 300,
336
+ primary: titleField
337
+ },
338
+ trailingSlot: secondarySlot
339
+ });
340
+ };
341
+ const PaperworkApprovals_rslib_entry_ = PaperworkApprovalsList;
342
+ export { PaperworkApprovals_rslib_entry_ as default };
@@ -0,0 +1,19 @@
1
+ import type { ComponentProps } from "react";
2
+ import Badge from "../../Badge";
3
+ import { type CommonProps } from "./shared";
4
+ type BadgeNameColor = NonNullable<ComponentProps<typeof Badge>["color"]>;
5
+ export type PeopleListRow = {
6
+ id: string;
7
+ name: string;
8
+ imageUrl: string | null;
9
+ position: string;
10
+ department: string;
11
+ badgeNames: Array<{
12
+ id: string;
13
+ text: string;
14
+ color: BadgeNameColor;
15
+ }>;
16
+ tags: string[];
17
+ };
18
+ declare const PeopleList: ({ compactBreakpoint, contentAlignment, enableSorting, rowHeight, }: CommonProps) => import("react/jsx-runtime").JSX.Element;
19
+ export default PeopleList;