@worknice/whiteboard 0.66.0 → 0.67.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 (38) hide show
  1. package/dist/controls/FilterModal.d.ts +2 -2
  2. package/dist/icons/components/Bolt.js +1 -1
  3. package/dist/icons/components/Clock.d.ts +5 -0
  4. package/dist/icons/components/Clock.js +14 -0
  5. package/dist/icons/components/Shield.d.ts +5 -0
  6. package/dist/icons/components/Shield.js +14 -0
  7. package/dist/icons/components/UserPlus.js +1 -1
  8. package/dist/icons/components/index.d.ts +2 -0
  9. package/dist/icons/components/index.js +5 -1
  10. package/dist/icons/svgs/Clock.js +2 -0
  11. package/dist/icons/svgs/Shield.js +2 -0
  12. package/dist/presentation/CardGrid.d.ts +2 -1
  13. package/dist/presentation/CardGrid.js +3 -2
  14. package/dist/presentation/CardGrid_module.css +1 -1
  15. package/dist/presentation/RichList/RichList.d.ts +23 -3
  16. package/dist/presentation/RichList/RichList.js +141 -26
  17. package/dist/presentation/RichList/RichList.module.js +2 -0
  18. package/dist/presentation/RichList/RichList.stories.d.ts +14 -0
  19. package/dist/presentation/RichList/RichList.stories.js +18 -1
  20. package/dist/presentation/RichList/RichListDisplayModal.js +2 -15
  21. package/dist/presentation/RichList/RichListRow.d.ts +16 -1
  22. package/dist/presentation/RichList/RichListRow.js +10 -3
  23. package/dist/presentation/RichList/RichListRow_module.css +5 -1
  24. package/dist/presentation/RichList/RichListSkeleton.d.ts +9 -0
  25. package/dist/presentation/RichList/RichListSkeleton.js +114 -0
  26. package/dist/presentation/RichList/RichListSkeleton.module.js +14 -0
  27. package/dist/presentation/RichList/RichListSkeleton_module.css +84 -0
  28. package/dist/presentation/RichList/RichListVirtualBody.d.ts +43 -0
  29. package/dist/presentation/RichList/RichListVirtualBody.js +68 -0
  30. package/dist/presentation/RichList/RichList_module.css +16 -4
  31. package/dist/presentation/RichList/stories/LargeList.d.ts +10 -0
  32. package/dist/presentation/RichList/stories/LargeList.js +137 -0
  33. package/dist/presentation/RichList/stories/Skeleton.d.ts +3 -0
  34. package/dist/presentation/RichList/stories/Skeleton.js +84 -0
  35. package/dist/presentation/RichList/types.d.ts +13 -2
  36. package/dist/static/svg/Clock.svg +1 -0
  37. package/dist/static/svg/Shield.svg +1 -0
  38. package/package.json +2 -2
@@ -0,0 +1,84 @@
1
+ "use client";
2
+ import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
3
+ import * as __WEBPACK_EXTERNAL_MODULE__icons_components_AssignmentDocument_js_0e5cad31__ from "../../../icons/components/AssignmentDocument.js";
4
+ import * as __WEBPACK_EXTERNAL_MODULE__PlainText_js_acfb96d1__ from "../../PlainText.js";
5
+ import * as __WEBPACK_EXTERNAL_MODULE__RichListSkeleton_js_0f3a89fe__ from "../RichListSkeleton.js";
6
+ import * as __WEBPACK_EXTERNAL_MODULE__shared_bulkActionStubs_js_0d607dd0__ from "./shared/bulkActionStubs.js";
7
+ const titleField = {
8
+ label: "Document",
9
+ value: (r)=>r.title,
10
+ enableSorting: true,
11
+ globalFiltering: true,
12
+ render: (r)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__PlainText_js_acfb96d1__["default"], {
13
+ font: "regular-bold",
14
+ children: r.title
15
+ })
16
+ };
17
+ const leadingSlot = {
18
+ id: "type",
19
+ label: "Type",
20
+ render: ()=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__icons_components_AssignmentDocument_js_0e5cad31__["default"], {}),
21
+ size: 32
22
+ };
23
+ const statusSlot = {
24
+ id: "status",
25
+ label: "Status",
26
+ value: (r)=>r.status,
27
+ enableSorting: true,
28
+ globalFiltering: true,
29
+ filter: {
30
+ isMulti: true,
31
+ label: "Status",
32
+ options: [
33
+ {
34
+ id: "active",
35
+ label: "Active",
36
+ predicate: (r)=>"Active" === r.status
37
+ },
38
+ {
39
+ id: "expired",
40
+ label: "Expired",
41
+ predicate: (r)=>"Expired" === r.status
42
+ }
43
+ ]
44
+ },
45
+ render: (r)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__PlainText_js_acfb96d1__["default"], {
46
+ font: "small",
47
+ children: r.status
48
+ }),
49
+ layoutVisibility: "whenWide",
50
+ align: "start",
51
+ size: 200
52
+ };
53
+ const assigneeSlot = {
54
+ id: "assignee",
55
+ label: "Person",
56
+ value: (r)=>r.assignee,
57
+ enableSorting: true,
58
+ globalFiltering: true,
59
+ render: (r)=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__PlainText_js_acfb96d1__["default"], {
60
+ font: "small",
61
+ children: r.assignee
62
+ }),
63
+ layoutVisibility: "whenWide",
64
+ align: "start",
65
+ size: 180
66
+ };
67
+ const SkeletonList = ({ rowHeight })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__RichListSkeleton_js_0f3a89fe__["default"], {
68
+ bulkActions: (0, __WEBPACK_EXTERNAL_MODULE__shared_bulkActionStubs_js_0d607dd0__.richListStoryPrimaryBulkActions)(),
69
+ contentSlots: [
70
+ statusSlot
71
+ ],
72
+ data: [],
73
+ getRowId: (r)=>r.id,
74
+ leadingSlot: leadingSlot,
75
+ mainSlot: {
76
+ size: 360,
77
+ primary: titleField
78
+ },
79
+ rowHeight: rowHeight,
80
+ secondaryBulkActions: (0, __WEBPACK_EXTERNAL_MODULE__shared_bulkActionStubs_js_0d607dd0__.richListStorySecondaryBulkActions)(),
81
+ trailingSlot: assigneeSlot
82
+ });
83
+ const Skeleton_rslib_entry_ = SkeletonList;
84
+ export { Skeleton_rslib_entry_ as default };
@@ -150,7 +150,7 @@ export type RichListMainSlot<Type> = {
150
150
  * their object form. Used directly by `RichListSlot` (leading/trailing) and extended
151
151
  * by `RichListContentSlot` with the content-only display options.
152
152
  */
153
- type RichListBaseSlotObject<Type> = {
153
+ export type RichListBaseSlotObject<Type> = {
154
154
  /**
155
155
  * Unique id for this column across leading, all content slots, and trailing.
156
156
  */
@@ -278,6 +278,18 @@ export type RichListContentSlot<Type> = ((row: Type) => ReactNode) | (RichListBa
278
278
  */
279
279
  hiddenByDefault?: boolean;
280
280
  });
281
+ /**
282
+ * One active filter emitted by `RichList`'s `onFiltersChange` callback.
283
+ *
284
+ * - `columnId` matches the `id` of the slot / text field that declared the `filter`.
285
+ * - `value` is the selected option id for a single-select filter, or the array of
286
+ * selected option ids for a multi-select filter (empty array when nothing is
287
+ * selected). The ids correspond to `Filter["options"][number].id`.
288
+ */
289
+ export type RichListActiveFilter = {
290
+ columnId: string;
291
+ value: string | string[];
292
+ };
281
293
  /**
282
294
  * Internal shape after `normalizeTextField` in `helpers.ts`. Booleans are always set
283
295
  * (no longer optional on the public object form).
@@ -414,4 +426,3 @@ export type RichListBulkAction<Type> = {
414
426
  */
415
427
  predicate?: (row: Type) => boolean;
416
428
  };
417
- export {};
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Free 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2026 Fonticons, Inc.--><path d="M528 320C528 434.9 434.9 528 320 528C205.1 528 112 434.9 112 320C112 205.1 205.1 112 320 112C434.9 112 528 205.1 528 320zM64 320C64 461.4 178.6 576 320 576C461.4 576 576 461.4 576 320C576 178.6 461.4 64 320 64C178.6 64 64 178.6 64 320zM296 184L296 320C296 328 300 335.5 306.7 340L402.7 404C413.7 411.4 428.6 408.4 436 397.3C443.4 386.2 440.4 371.4 429.3 364L344 307.2L344 184C344 170.7 333.3 160 320 160C306.7 160 296 170.7 296 184z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640"><!--!Font Awesome Pro 7.2.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2026 Fonticons, Inc.--><path d="M320 113.4L137.1 191C131.2 193.5 128 198.8 128.1 203.8C128.6 295.2 166.5 453.1 314.5 523.9C318.1 525.6 322.3 525.6 325.8 523.9C473.8 453.1 511.7 295.2 512.1 203.8C512.1 198.8 509 193.6 503.1 191L320 113.4zM333.4 66.9L521.8 146.8C543.8 156.1 560.2 177.8 560.1 204C559.6 303.2 518.8 484.7 346.5 567.2C329.8 575.2 310.4 575.2 293.7 567.2C121.3 484.7 80.5 303.2 80.1 204C80 177.8 96.4 156.1 118.4 146.8L306.7 66.9C310.9 65 315.4 64 320 64C324.6 64 329.2 65 333.4 66.9z"/></svg>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@worknice/whiteboard",
3
3
  "description": "",
4
- "version": "0.66.0",
4
+ "version": "0.67.0",
5
5
  "license": "MIT",
6
6
  "private": false,
7
7
  "files": [
@@ -39,7 +39,7 @@
39
39
  "react-markdown": "^10.1.0",
40
40
  "utf8": "^3.0.0",
41
41
  "zod": "^4.1.13",
42
- "@worknice/utils": "^0.49.0"
42
+ "@worknice/utils": "^0.50.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@anolilab/semantic-release-pnpm": "^3.2.2",