@worknice/whiteboard 0.55.4 → 0.57.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 (72) hide show
  1. package/dist/controls/ButtonCard.stories.js +2 -2
  2. package/dist/controls/MenuButton_module.css +3 -3
  3. package/dist/hud/NavItem_module.css +13 -0
  4. package/dist/hud/NavSection.js +3 -2
  5. package/dist/hud/NavSection_module.css +21 -0
  6. package/dist/hud/ToolbarButton_module.css +7 -7
  7. package/dist/icons/ArrowTurnLeftUpIcon.d.ts +3 -0
  8. package/dist/icons/ArrowTurnLeftUpIcon.js +12 -0
  9. package/dist/icons/CalendarIcon.js +2 -2
  10. package/dist/icons/DirectoryIcon.d.ts +3 -0
  11. package/dist/icons/DirectoryIcon.js +11 -0
  12. package/dist/icons/InsightsIcon.js +6 -3
  13. package/dist/icons/LeaveIcon.js +2 -2
  14. package/dist/icons/PaperworkIcon.js +6 -3
  15. package/dist/icons/PeopleIcon.js +21 -4
  16. package/dist/icons/PositionsIcon.js +42 -6
  17. package/dist/icons/ProfileIcon.js +18 -4
  18. package/dist/icons/ReviewIcon.js +16 -4
  19. package/dist/icons/TableIcon.js +2 -2
  20. package/dist/icons/TaskIcon.js +2 -2
  21. package/dist/icons/WorkflowsIcon.js +23 -4
  22. package/dist/icons/index.d.ts +2 -0
  23. package/dist/icons/index.js +3 -1
  24. package/dist/layouts/FullLayout.d.ts +2 -2
  25. package/dist/layouts/FullLayout.js +15 -36
  26. package/dist/layouts/FullLayout.module.js +1 -2
  27. package/dist/layouts/FullLayout_module.css +7 -43
  28. package/dist/layouts/MinimalLayout.js +2 -2
  29. package/dist/presentation/Avatar.d.ts +41 -6
  30. package/dist/presentation/Avatar.js +206 -20
  31. package/dist/presentation/Avatar.module.js +10 -1
  32. package/dist/presentation/Avatar.stories.d.ts +63 -0
  33. package/dist/presentation/Avatar.stories.js +94 -0
  34. package/dist/presentation/Avatar_module.css +123 -7
  35. package/dist/presentation/Badge_module.css +10 -9
  36. package/dist/presentation/Icon.d.ts +1 -1
  37. package/dist/presentation/Icon.stories.d.ts +1 -1
  38. package/dist/presentation/Logo.d.ts +8 -0
  39. package/dist/presentation/Logo.js +27 -0
  40. package/dist/presentation/Logo.module.js +5 -0
  41. package/dist/presentation/Logo.stories.d.ts +22 -0
  42. package/dist/presentation/Logo.stories.js +24 -0
  43. package/dist/presentation/Logo_module.css +10 -0
  44. package/dist/presentation/PersonCover.d.ts +2 -2
  45. package/dist/presentation/PersonCover.js +2 -2
  46. package/dist/presentation/PersonCover.stories.d.ts +67 -0
  47. package/dist/presentation/PersonCover.stories.js +39 -0
  48. package/dist/presentation/PlainText.d.ts +1 -1
  49. package/dist/presentation/RichList/RichList.js +11 -1
  50. package/dist/presentation/RichList/RichListRow.js +16 -3
  51. package/dist/presentation/RichList/stories/ComplianceGroups.js +21 -1
  52. package/dist/presentation/RichList/stories/CustomFields.js +1 -0
  53. package/dist/presentation/RichList/stories/EmployeePeople.js +20 -18
  54. package/dist/presentation/RichList/stories/Leave.js +23 -23
  55. package/dist/presentation/RichList/stories/Paperwork.js +18 -18
  56. package/dist/presentation/RichList/stories/PaperworkApprovals.js +52 -50
  57. package/dist/presentation/RichList/stories/PeopleList.js +19 -19
  58. package/dist/presentation/RichList/stories/PeopleTags.js +1 -0
  59. package/dist/presentation/RichList/stories/Positions.js +53 -53
  60. package/dist/presentation/RichList/stories/Reviews.js +11 -11
  61. package/dist/presentation/RichList/stories/SavedQuestions.js +1 -0
  62. package/dist/presentation/RichList/stories/Tasks.js +34 -34
  63. package/dist/presentation/RichList/stories/shared.d.ts +0 -1
  64. package/dist/presentation/RichList/stories/shared.js +0 -2
  65. package/dist/presentation/RichList/types.d.ts +7 -2
  66. package/dist/presentation/Tag_module.css +10 -9
  67. package/dist/shared.css +1 -0
  68. package/dist/utils/storybook.d.ts +2 -0
  69. package/dist/utils/storybook.js +2 -1
  70. package/package.json +4 -4
  71. package/dist/presentation/PersonAvatar.d.ts +0 -18
  72. package/dist/presentation/PersonAvatar.js +0 -90
@@ -1,11 +1,11 @@
1
1
  import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
+ import * as __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__ from "../../../utils/storybook.js";
3
+ import * as __WEBPACK_EXTERNAL_MODULE__Avatar_js_1229b6e4__ from "../../Avatar.js";
2
4
  import * as __WEBPACK_EXTERNAL_MODULE__Badge_js_56d6dba9__ from "../../Badge.js";
3
5
  import * as __WEBPACK_EXTERNAL_MODULE__HStack_js_d2f77bae__ from "../../HStack.js";
4
6
  import * as __WEBPACK_EXTERNAL_MODULE__Icon_js_b85e52f7__ from "../../Icon.js";
5
- import * as __WEBPACK_EXTERNAL_MODULE__PersonAvatar_js_0117b3ba__ from "../../PersonAvatar.js";
6
7
  import * as __WEBPACK_EXTERNAL_MODULE__PlainText_js_acfb96d1__ from "../../PlainText.js";
7
8
  import * as __WEBPACK_EXTERNAL_MODULE__RichList_js_64f3f04c__ from "../RichList.js";
8
- import * as __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__ from "./shared.js";
9
9
  const rows = [
10
10
  {
11
11
  id: "t1",
@@ -14,8 +14,8 @@ const rows = [
14
14
  dueText: "in 3 days",
15
15
  dueStyle: "soon",
16
16
  assigneeName: "Caity Dewer",
17
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(7),
18
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(8)
17
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(7),
18
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(8)
19
19
  },
20
20
  {
21
21
  id: "t2",
@@ -24,8 +24,8 @@ const rows = [
24
24
  dueText: "in 2 months",
25
25
  dueStyle: "later",
26
26
  assigneeName: "James Ford",
27
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(30),
28
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(12)
27
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(30),
28
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(12)
29
29
  },
30
30
  {
31
31
  id: "t3",
@@ -34,8 +34,8 @@ const rows = [
34
34
  dueText: "2 days ago",
35
35
  dueStyle: "overdue",
36
36
  assigneeName: "Greg Evans",
37
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(31),
38
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(5)
37
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(31),
38
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(5)
39
39
  },
40
40
  {
41
41
  id: "t4",
@@ -44,8 +44,8 @@ const rows = [
44
44
  dueText: "in 5 days",
45
45
  dueStyle: "soon",
46
46
  assigneeName: "Daisy Smith",
47
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(1),
48
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(2)
47
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(1),
48
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(2)
49
49
  },
50
50
  {
51
51
  id: "t5",
@@ -54,8 +54,8 @@ const rows = [
54
54
  dueText: "tomorrow",
55
55
  dueStyle: "soon",
56
56
  assigneeName: "Daisy Smith",
57
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(1),
58
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(3)
57
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(1),
58
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(3)
59
59
  },
60
60
  {
61
61
  id: "t6",
@@ -64,8 +64,8 @@ const rows = [
64
64
  dueText: "No due date",
65
65
  dueStyle: "later",
66
66
  assigneeName: "Jane Dawson",
67
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(32),
68
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(14)
67
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(32),
68
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(14)
69
69
  },
70
70
  {
71
71
  id: "t7",
@@ -74,8 +74,8 @@ const rows = [
74
74
  dueText: "in 2 weeks",
75
75
  dueStyle: "later",
76
76
  assigneeName: "Jane Dawson",
77
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(32),
78
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(15)
77
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(32),
78
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(15)
79
79
  },
80
80
  {
81
81
  id: "t8",
@@ -84,8 +84,8 @@ const rows = [
84
84
  dueText: "in 14 days",
85
85
  dueStyle: "later",
86
86
  assigneeName: "Nadia Ora",
87
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(6),
88
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(16)
87
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(6),
88
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(16)
89
89
  },
90
90
  {
91
91
  id: "t9",
@@ -94,8 +94,8 @@ const rows = [
94
94
  dueText: "in 1 month",
95
95
  dueStyle: "later",
96
96
  assigneeName: "Andy Samson",
97
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(4),
98
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(11)
97
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(4),
98
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(11)
99
99
  },
100
100
  {
101
101
  id: "t10",
@@ -104,8 +104,8 @@ const rows = [
104
104
  dueText: "No due date",
105
105
  dueStyle: "later",
106
106
  assigneeName: "Andy Samson",
107
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(4),
108
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(12)
107
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(4),
108
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(12)
109
109
  },
110
110
  {
111
111
  id: "t11",
@@ -114,8 +114,8 @@ const rows = [
114
114
  dueText: "No due date",
115
115
  dueStyle: "later",
116
116
  assigneeName: "Jessica Smith",
117
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(33),
118
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(18)
117
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(33),
118
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(18)
119
119
  },
120
120
  {
121
121
  id: "t12",
@@ -124,8 +124,8 @@ const rows = [
124
124
  dueText: "1 week ago",
125
125
  dueStyle: "overdue",
126
126
  assigneeName: "Sarah Cruden",
127
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(35),
128
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(19)
127
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(35),
128
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(19)
129
129
  },
130
130
  {
131
131
  id: "t13",
@@ -134,8 +134,8 @@ const rows = [
134
134
  dueText: "in 1 week",
135
135
  dueStyle: "later",
136
136
  assigneeName: "Matthew Knee",
137
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(36),
138
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(20)
137
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(36),
138
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(20)
139
139
  },
140
140
  {
141
141
  id: "t14",
@@ -144,8 +144,8 @@ const rows = [
144
144
  dueText: "in 3 weeks",
145
145
  dueStyle: "later",
146
146
  assigneeName: "Jake Smith",
147
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(37),
148
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(22)
147
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(37),
148
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(22)
149
149
  },
150
150
  {
151
151
  id: "t15",
@@ -154,8 +154,8 @@ const rows = [
154
154
  dueText: "in 4 days",
155
155
  dueStyle: "soon",
156
156
  assigneeName: "Iris Sing",
157
- assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(38),
158
- secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__shared_js_cc7b7cda__.avatarUrl)(23)
157
+ assigneeImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(38),
158
+ secondaryImageUrl: (0, __WEBPACK_EXTERNAL_MODULE__utils_storybook_js_9566133d__.avatarUrl)(23)
159
159
  }
160
160
  ];
161
161
  const uniqueAssigneeNames = [
@@ -279,7 +279,7 @@ const TasksList = ({ compactBreakpoint, contentAlignment, enableSorting, rowHeig
279
279
  align: "center",
280
280
  tagName: "div",
281
281
  children: [
282
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__PersonAvatar_js_0117b3ba__["default"], {
282
+ /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__Avatar_js_1229b6e4__["default"], {
283
283
  id: `${r.id}-as`,
284
284
  name: r.assigneeName,
285
285
  imageUrl: r.assigneeImageUrl,
@@ -305,7 +305,7 @@ const TasksList = ({ compactBreakpoint, contentAlignment, enableSorting, rowHeig
305
305
  display: "flex",
306
306
  justifyContent: "flex-end"
307
307
  },
308
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__PersonAvatar_js_0117b3ba__["default"], {
308
+ children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__Avatar_js_1229b6e4__["default"], {
309
309
  id: `${r.id}-sec`,
310
310
  name: "Secondary",
311
311
  imageUrl: r.secondaryImageUrl,
@@ -1,5 +1,4 @@
1
1
  import type { CSSProperties } from "react";
2
- export declare const avatarUrl: (img: number) => string;
3
2
  export type CommonProps = {
4
3
  compactBreakpoint?: number;
5
4
  contentAlignment?: NonNullable<CSSProperties["justifyContent"]>;
@@ -1,2 +0,0 @@
1
- const avatarUrl = (img)=>`https://i.pravatar.cc/50?img=${img}`;
2
- export { avatarUrl };
@@ -306,13 +306,18 @@ export type RichListRowAction<Type> = {
306
306
  * @default `false` (falsy/omitted: overflow menu only)
307
307
  */
308
308
  alwaysVisible?: boolean;
309
- onClick: (row: Type) => void;
310
309
  /**
311
310
  * If set, the action is not offered when this returns `false` for that row.
312
311
  * @default (omitted) the action is always considered for the row.
313
312
  */
314
313
  predicate?: (row: Type) => boolean;
315
- };
314
+ } & ({
315
+ onClick: (row: Type) => void;
316
+ type: "onClick";
317
+ } | {
318
+ render: (onClose: () => void) => ReactNode;
319
+ type: "render";
320
+ });
316
321
  /**
317
322
  * An action on the **selected** rows. Used with `bulkActions` on the list. The `render`
318
323
  * function usually returns a panel (confirm, form, etc.) and receives the matching
@@ -3,51 +3,52 @@
3
3
  font: var(--font-small);
4
4
  padding: var(--size-n4) var(--size-n2);
5
5
  text-wrap: noWrap;
6
+ font-weight: 500;
6
7
  display: inline-flex;
7
8
  }
8
9
 
9
10
  .blue-Q5gzQs {
10
11
  background: var(--color-blue-t09);
11
- color: var(--color-blue-s04);
12
+ color: var(--color-blue-000);
12
13
  }
13
14
 
14
15
  .green-ghtuPZ {
15
16
  background: var(--color-green-t09);
16
- color: var(--color-green-s04);
17
+ color: var(--color-green-000);
17
18
  }
18
19
 
19
20
  .grey-KtqgiE {
20
21
  background: var(--color-grey-t09);
21
- color: var(--color-grey-s04);
22
+ color: var(--color-grey-000);
22
23
  }
23
24
 
24
25
  .maroon-sTPflh {
25
26
  background: var(--color-maroon-t09);
26
- color: var(--color-maroon-s04);
27
+ color: var(--color-maroon-000);
27
28
  }
28
29
 
29
30
  .orange-UyzB74 {
30
31
  background: var(--color-orange-t09);
31
- color: var(--color-orange-s04);
32
+ color: var(--color-orange-000);
32
33
  }
33
34
 
34
35
  .purple-tJJoGZ {
35
36
  background: var(--color-purple-t09);
36
- color: var(--color-purple-s04);
37
+ color: var(--color-purple-000);
37
38
  }
38
39
 
39
40
  .red-cHhhpj {
40
41
  background: var(--color-red-t09);
41
- color: var(--color-red-s04);
42
+ color: var(--color-red-000);
42
43
  }
43
44
 
44
45
  .teal-ZuyYmA {
45
46
  background: var(--color-teal-t09);
46
- color: var(--color-teal-s04);
47
+ color: var(--color-teal-000);
47
48
  }
48
49
 
49
50
  .yellow-NwCKSj {
50
51
  background: var(--color-yellow-t09);
51
- color: var(--color-yellow-s04);
52
+ color: var(--color-yellow-000);
52
53
  }
53
54
 
package/dist/shared.css CHANGED
@@ -244,6 +244,7 @@ body {
244
244
  --shadow-heavy: 0px 2px 8px 0px #00000029;
245
245
  --tone-default: var(--color-grey-s01);
246
246
  --tone-primary: var(--color-purple-000);
247
+ --tone-subtle: var(--color-grey-t01);
247
248
  --tone-muted: var(--color-grey-t04);
248
249
  --tone-danger: var(--color-red-t02);
249
250
  --tone-warning: var(--color-yellow-t02);
@@ -1,2 +1,4 @@
1
1
  import type { ArgTypes } from "@storybook/nextjs-vite";
2
+ /** Demo image URLs for Storybook stories (fixtures). Not for production. */
3
+ export declare const avatarUrl: (img: number) => string;
2
4
  export declare const iconStoryControl: () => ArgTypes[string];
@@ -1,6 +1,7 @@
1
1
  import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
2
2
  import * as __WEBPACK_EXTERNAL_MODULE__icons_index_js_d6af4ddb__ from "../icons/index.js";
3
3
  import * as __WEBPACK_EXTERNAL_MODULE__presentation_Icon_js_6961aa57__ from "../presentation/Icon.js";
4
+ const avatarUrl = (img)=>`https://i.pravatar.cc/100?img=${img}`;
4
5
  const iconStoryControl = ()=>{
5
6
  const availableIcons = Object.keys(__WEBPACK_EXTERNAL_MODULE__icons_index_js_d6af4ddb__);
6
7
  const options = [
@@ -23,4 +24,4 @@ const iconStoryControl = ()=>{
23
24
  }
24
25
  };
25
26
  };
26
- export { iconStoryControl };
27
+ export { avatarUrl, iconStoryControl };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@worknice/whiteboard",
3
3
  "description": "",
4
- "version": "0.55.4",
4
+ "version": "0.57.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.38.4"
42
+ "@worknice/utils": "^0.40.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@anolilab/semantic-release-pnpm": "^3.2.2",
@@ -64,7 +64,7 @@
64
64
  "eslint-plugin-react": "^7.34.2",
65
65
  "eslint-plugin-react-hooks": "^4.6.2",
66
66
  "eslint-plugin-storybook": "^10.1.2",
67
- "next": "~15.5.9",
67
+ "next": "~15.5.18",
68
68
  "nodemon": "^3.1.4",
69
69
  "prettier": "^3.5.3",
70
70
  "prettier-plugin-embed": "^0.5.0",
@@ -81,7 +81,7 @@
81
81
  "peerDependencies": {
82
82
  "@react-email/components": "^0.0.7",
83
83
  "clsx": "^2.0.0",
84
- "next": "~15.5.9",
84
+ "next": "~15.5.18",
85
85
  "react": "~19.1.2",
86
86
  "react-dom": "~19.1.2",
87
87
  "temporal-polyfill": "^0.2.1",
@@ -1,18 +0,0 @@
1
- import { type ReactNode } from "react";
2
- type Props = {
3
- id: string;
4
- size?: keyof typeof SIZES;
5
- name: string;
6
- imageUrl?: string | null;
7
- children?: (onClose: () => void) => ReactNode;
8
- hue: string;
9
- };
10
- declare const SIZES: {
11
- xtiny: number;
12
- tiny: number;
13
- small: number;
14
- large: number;
15
- xlarge: number;
16
- };
17
- declare const PersonAvatar: ({ id, size, name, imageUrl, children, hue }: Props) => import("react/jsx-runtime").JSX.Element;
18
- export default PersonAvatar;
@@ -1,90 +0,0 @@
1
- "use client";
2
- import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
3
- import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
4
- const SIZES = {
5
- xtiny: 16,
6
- tiny: 24,
7
- small: 48,
8
- large: 96,
9
- xlarge: 192
10
- };
11
- const getInitials = (name)=>{
12
- const names = name.trim().split(/[\s-]+/);
13
- return names.length <= 3 ? names.map((name)=>[
14
- ...name
15
- ][0]).join("") : [
16
- ...names[0]
17
- ][0] + [
18
- ...names[names.length - 1]
19
- ][0];
20
- };
21
- const PersonAvatar = ({ id, size = "large", name, imageUrl, children, hue })=>{
22
- const [showProfile, setShowProfile] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(false);
23
- return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
24
- children: [
25
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("svg", {
26
- style: {
27
- cursor: children ? "pointer" : "inherit"
28
- },
29
- width: SIZES[size],
30
- height: SIZES[size],
31
- viewBox: "0 0 96 96",
32
- onClick: children ? ()=>{
33
- setShowProfile(true);
34
- } : void 0,
35
- children: imageUrl ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
36
- children: [
37
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("defs", {
38
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("pattern", {
39
- id: `${id}-pattern`,
40
- patternUnits: "userSpaceOnUse",
41
- width: "96",
42
- height: "96",
43
- children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("image", {
44
- href: imageUrl,
45
- height: "96",
46
- width: "96",
47
- preserveAspectRatio: "xMidYMid slice"
48
- })
49
- })
50
- }),
51
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("circle", {
52
- cx: "48",
53
- cy: "48",
54
- r: "48",
55
- fill: "none"
56
- }),
57
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("circle", {
58
- cx: "48",
59
- cy: "48",
60
- r: "48",
61
- fill: `url(#${id}-pattern)`
62
- })
63
- ]
64
- }) : /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
65
- children: [
66
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("circle", {
67
- cx: "48",
68
- cy: "48",
69
- r: "48",
70
- fill: `oklch(67.4% 0.1215 ${hue})`
71
- }),
72
- /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("text", {
73
- fill: "#fff",
74
- x: 48,
75
- y: 62,
76
- fontSize: 36,
77
- textAnchor: "middle",
78
- children: getInitials(name)
79
- })
80
- ]
81
- })
82
- }),
83
- showProfile && children ? children(()=>{
84
- setShowProfile(false);
85
- }) : null
86
- ]
87
- });
88
- };
89
- const PersonAvatar_rslib_entry_ = PersonAvatar;
90
- export { PersonAvatar_rslib_entry_ as default };