@worknice/whiteboard 0.68.1 → 0.70.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.
- package/dist/controls/Action.stories.d.ts +2 -0
- package/dist/controls/Button.d.ts +3 -1
- package/dist/controls/Button.js +10 -2
- package/dist/controls/Button.stories.d.ts +3 -1
- package/dist/controls/ButtonLink.js +6 -0
- package/dist/controls/Disclosure.d.ts +1 -1
- package/dist/controls/Disclosure.js +2 -1
- package/dist/controls/Disclosure.stories.d.ts +3 -1
- package/dist/controls/MenuButton.d.ts +4 -1
- package/dist/controls/MenuButton.js +12 -3
- package/dist/controls/MenuButton.stories.d.ts +2 -1
- package/dist/hud/NavOrgLogo.d.ts +8 -0
- package/dist/hud/NavOrgLogo.js +45 -0
- package/dist/hud/NavOrgLogo.module.js +7 -0
- package/dist/hud/{NavTitle_module.css → NavOrgLogo_module.css} +8 -3
- package/dist/icons/components/CalendarPlus.d.ts +5 -0
- package/dist/icons/components/CalendarPlus.js +14 -0
- package/dist/icons/components/FileCirclePlus.d.ts +5 -0
- package/dist/icons/components/FileCirclePlus.js +14 -0
- package/dist/icons/components/FileImport.d.ts +5 -0
- package/dist/icons/components/FileImport.js +14 -0
- package/dist/icons/components/index.d.ts +3 -0
- package/dist/icons/components/index.js +7 -1
- package/dist/icons/svgs/CalendarPlus.js +2 -0
- package/dist/icons/svgs/FileCirclePlus.js +2 -0
- package/dist/icons/svgs/FileImport.js +2 -0
- package/dist/layouts/FullLayout.d.ts +3 -4
- package/dist/layouts/FullLayout.js +37 -38
- package/dist/layouts/FullLayout.module.js +4 -4
- package/dist/layouts/FullLayout_module.css +95 -71
- package/dist/presentation/Container_module.css +3 -3
- package/dist/presentation/Header.js +1 -0
- package/dist/presentation/Header.module.js +1 -0
- package/dist/presentation/Header_module.css +24 -3
- package/dist/presentation/PageHeader.d.ts +14 -0
- package/dist/presentation/PageHeader.js +36 -0
- package/dist/presentation/PageHeader.module.js +7 -0
- package/dist/presentation/PageHeader_module.css +19 -0
- package/dist/presentation/RichList/RichList.d.ts +6 -2
- package/dist/presentation/RichList/RichList.js +59 -9
- package/dist/presentation/RichList/RichListRow.js +2 -1
- package/dist/presentation/RichList/RichListSkeleton.js +16 -8
- package/dist/presentation/RichList/RichListSkeleton.module.js +2 -1
- package/dist/presentation/RichList/RichListSkeleton_module.css +9 -4
- package/dist/presentation/RichList/helpers.d.ts +4 -0
- package/dist/presentation/RichList/helpers.js +7 -4
- package/dist/presentation/RichList/types.d.ts +7 -0
- package/dist/shared.css +0 -9
- package/dist/static/svg/CalendarPlus.svg +1 -0
- package/dist/static/svg/FileCirclePlus.svg +1 -0
- package/dist/static/svg/FileImport.svg +1 -0
- package/package.json +2 -2
- package/dist/hud/NavTitle.d.ts +0 -8
- package/dist/hud/NavTitle.js +0 -43
- package/dist/hud/NavTitle.module.js +0 -6
|
@@ -9,7 +9,7 @@ import * as __WEBPACK_EXTERNAL_MODULE__FullLayout_module_js_d92e323f__ from "./F
|
|
|
9
9
|
const FullLayout = ({ aside, asidePosition = {
|
|
10
10
|
desktop: "asideLast",
|
|
11
11
|
mobile: "asideFirst"
|
|
12
|
-
},
|
|
12
|
+
}, navigation, children, header, mainNavChildren, menuState, setMenuState, summary, navToolbarStart, navFooter, padding = "default" })=>{
|
|
13
13
|
const { pathname, router } = (0, __WEBPACK_EXTERNAL_MODULE__utils_useNextContext_js_47529181__["default"])();
|
|
14
14
|
const toggleRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
|
|
15
15
|
const navRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(null);
|
|
@@ -84,43 +84,42 @@ const FullLayout = ({ aside, asidePosition = {
|
|
|
84
84
|
[__WEBPACK_EXTERNAL_MODULE__FullLayout_module_js_d92e323f__["default"].closed]: "closed" === menuState
|
|
85
85
|
}),
|
|
86
86
|
children: [
|
|
87
|
-
mainNavChildren ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.
|
|
88
|
-
children:
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
]
|
|
87
|
+
mainNavChildren ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.Fragment, {
|
|
88
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("nav", {
|
|
89
|
+
ref: navRef,
|
|
90
|
+
className: __WEBPACK_EXTERNAL_MODULE__FullLayout_module_js_d92e323f__["default"].nav,
|
|
91
|
+
children: [
|
|
92
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("header", {
|
|
93
|
+
className: __WEBPACK_EXTERNAL_MODULE__FullLayout_module_js_d92e323f__["default"].navToolbar,
|
|
94
|
+
children: [
|
|
95
|
+
navToolbarStart ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
96
|
+
className: __WEBPACK_EXTERNAL_MODULE__FullLayout_module_js_d92e323f__["default"].navToolbarStart,
|
|
97
|
+
children: navToolbarStart
|
|
98
|
+
}) : null,
|
|
99
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
100
|
+
ref: toggleRef,
|
|
101
|
+
className: __WEBPACK_EXTERNAL_MODULE__FullLayout_module_js_d92e323f__["default"].navToolbarEnd,
|
|
102
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__hud_ToolbarButton_js_e9a8b3bc__["default"], {
|
|
103
|
+
onClick: ()=>{
|
|
104
|
+
setMenuState((current)=>"open" === current ? "closed" : "open");
|
|
105
|
+
},
|
|
106
|
+
title: "Toggle Sidebar",
|
|
107
|
+
type: "ghost",
|
|
108
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__hud_SidebarIcon_js_fabd050a__["default"], {})
|
|
109
|
+
})
|
|
110
|
+
})
|
|
111
|
+
]
|
|
112
|
+
}),
|
|
113
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
114
|
+
className: __WEBPACK_EXTERNAL_MODULE__FullLayout_module_js_d92e323f__["default"].navContent,
|
|
115
|
+
children: mainNavChildren
|
|
116
|
+
}),
|
|
117
|
+
navFooter ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("footer", {
|
|
118
|
+
className: __WEBPACK_EXTERNAL_MODULE__FullLayout_module_js_d92e323f__["default"].navFooter,
|
|
119
|
+
children: navFooter
|
|
120
|
+
}) : null
|
|
121
|
+
]
|
|
122
|
+
})
|
|
124
123
|
}) : null,
|
|
125
124
|
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("div", {
|
|
126
125
|
className: (0, __WEBPACK_EXTERNAL_MODULE_clsx__["default"])(__WEBPACK_EXTERNAL_MODULE__FullLayout_module_js_d92e323f__["default"].content, "default" === padding && __WEBPACK_EXTERNAL_MODULE__FullLayout_module_js_d92e323f__["default"].padded, aside && {
|
|
@@ -3,11 +3,11 @@ const FullLayout_module_rslib_entry_ = {
|
|
|
3
3
|
container: "container-lghvCT",
|
|
4
4
|
open: "open-rMThLK",
|
|
5
5
|
closed: "closed-iSkj26",
|
|
6
|
-
toggle: "toggle-GcG0Tq",
|
|
7
|
-
back: "back-vj3cdG",
|
|
8
6
|
nav: "nav-PJYqK6",
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
navToolbar: "navToolbar-fPH7h5",
|
|
8
|
+
navToolbarStart: "navToolbarStart-D3u8SP",
|
|
9
|
+
navToolbarEnd: "navToolbarEnd-dAB2oH",
|
|
10
|
+
navFooter: "navFooter-t_dTvk",
|
|
11
11
|
navContent: "navContent-xOgco3",
|
|
12
12
|
header: "header-BPDFUI",
|
|
13
13
|
summary: "summary-yyotr2",
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--nav-toggle-size: 38px;
|
|
3
|
+
--content-padded-horizontal-padding: var(--size-00);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
@media (min-width: 768px) {
|
|
7
|
+
:root {
|
|
8
|
+
--content-padded-horizontal-padding: var(--size-p2);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
1
12
|
@media (max-width: 768px) {
|
|
2
13
|
body:has(.container-lghvCT.open-rMThLK) {
|
|
3
14
|
overflow: hidden;
|
|
@@ -5,7 +16,13 @@
|
|
|
5
16
|
}
|
|
6
17
|
|
|
7
18
|
.container-lghvCT {
|
|
19
|
+
--nav-toggle-inset: calc(var(--nav-toggle-size) + var(--size-n2));
|
|
8
20
|
--nav-width: 100vw;
|
|
21
|
+
--page-header-inset: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.closed-iSkj26:has(.nav-PJYqK6).container-lghvCT {
|
|
25
|
+
--page-header-inset: var(--nav-toggle-inset);
|
|
9
26
|
}
|
|
10
27
|
|
|
11
28
|
@media (min-width: 768px) {
|
|
@@ -24,62 +41,20 @@
|
|
|
24
41
|
}
|
|
25
42
|
}
|
|
26
43
|
|
|
27
|
-
.toggle-GcG0Tq {
|
|
28
|
-
color: #000;
|
|
29
|
-
-webkit-user-select: none;
|
|
30
|
-
user-select: none;
|
|
31
|
-
z-index: 3;
|
|
32
|
-
border-radius: 11px;
|
|
33
|
-
position: fixed;
|
|
34
|
-
top: 16px;
|
|
35
|
-
left: 16px;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.closed-iSkj26 .toggle-GcG0Tq {
|
|
39
|
-
-webkit-backdrop-filter: blur(20px);
|
|
40
|
-
backdrop-filter: blur(20px);
|
|
41
|
-
box-sizing: border-box;
|
|
42
|
-
color: var(--tone-default);
|
|
43
|
-
background: #ffffffb3;
|
|
44
|
-
border: .5px solid #3c3c435c;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.back-vj3cdG {
|
|
48
|
-
left: calc(var(--nav-width) + 16px);
|
|
49
|
-
-webkit-user-select: none;
|
|
50
|
-
user-select: none;
|
|
51
|
-
z-index: 3;
|
|
52
|
-
transition: left .25s ease-in-out;
|
|
53
|
-
position: fixed;
|
|
54
|
-
top: 16px;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.closed-iSkj26 .back-vj3cdG {
|
|
58
|
-
left: 70px;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
@media (max-width: 1440px) {
|
|
62
|
-
.container-lghvCT:not(.closed-iSkj26, .open-rMThLK) .back-vj3cdG {
|
|
63
|
-
left: 70px;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
44
|
.nav-PJYqK6 {
|
|
68
45
|
--accent-color: var(--color-purple-000);
|
|
69
|
-
-webkit-backdrop-filter: blur(20px);
|
|
70
|
-
backdrop-filter: blur(20px);
|
|
71
46
|
color: #000;
|
|
72
47
|
justify-items: space-between;
|
|
73
48
|
font-family: var(--typeface-system);
|
|
74
49
|
bottom: 0;
|
|
75
50
|
left: calc(-1 * var(--nav-width) - 1px);
|
|
51
|
+
padding-top: var(--size-n1);
|
|
76
52
|
-webkit-user-select: none;
|
|
77
53
|
user-select: none;
|
|
78
54
|
width: var(--nav-width);
|
|
79
55
|
z-index: 2;
|
|
80
|
-
|
|
81
|
-
grid-template-rows: auto
|
|
82
|
-
padding-top: 16px;
|
|
56
|
+
border-right: .5px solid #3c3c435c;
|
|
57
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
83
58
|
font-size: 17px;
|
|
84
59
|
font-style: normal;
|
|
85
60
|
font-weight: 400;
|
|
@@ -89,7 +64,20 @@
|
|
|
89
64
|
position: fixed;
|
|
90
65
|
top: 0;
|
|
91
66
|
overflow-y: hidden;
|
|
92
|
-
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.nav-PJYqK6:before {
|
|
70
|
+
-webkit-backdrop-filter: blur(20px);
|
|
71
|
+
backdrop-filter: blur(20px);
|
|
72
|
+
content: "";
|
|
73
|
+
pointer-events: none;
|
|
74
|
+
z-index: -1;
|
|
75
|
+
background: #ffffffb3;
|
|
76
|
+
width: 100%;
|
|
77
|
+
position: absolute;
|
|
78
|
+
top: 0;
|
|
79
|
+
bottom: 0;
|
|
80
|
+
left: 0;
|
|
93
81
|
}
|
|
94
82
|
|
|
95
83
|
@media (min-width: 1440px) {
|
|
@@ -106,23 +94,76 @@
|
|
|
106
94
|
left: 0;
|
|
107
95
|
}
|
|
108
96
|
|
|
109
|
-
.
|
|
110
|
-
|
|
97
|
+
.navToolbar-fPH7h5 {
|
|
98
|
+
min-height: var(--nav-toggle-size);
|
|
99
|
+
padding: 0 var(--size-n1);
|
|
100
|
+
justify-content: space-between;
|
|
101
|
+
align-items: flex-start;
|
|
102
|
+
display: flex;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.navToolbarStart-D3u8SP {
|
|
106
|
+
flex: 1;
|
|
111
107
|
align-items: center;
|
|
112
|
-
|
|
113
|
-
padding: 0 16px;
|
|
108
|
+
min-width: 0;
|
|
114
109
|
display: flex;
|
|
115
110
|
}
|
|
116
111
|
|
|
117
|
-
.
|
|
118
|
-
|
|
112
|
+
.navToolbarStart-D3u8SP button {
|
|
113
|
+
text-align: start;
|
|
114
|
+
justify-content: start;
|
|
115
|
+
max-width: 100%;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.navToolbarEnd-dAB2oH {
|
|
119
|
+
color: #000;
|
|
120
|
+
-webkit-user-select: none;
|
|
121
|
+
user-select: none;
|
|
122
|
+
border-radius: 11px;
|
|
123
|
+
flex-shrink: 0;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.closed-iSkj26 .navToolbarEnd-dAB2oH {
|
|
127
|
+
-webkit-backdrop-filter: blur(20px);
|
|
128
|
+
backdrop-filter: blur(20px);
|
|
129
|
+
box-sizing: border-box;
|
|
130
|
+
color: var(--tone-default);
|
|
131
|
+
left: var(--content-padded-horizontal-padding);
|
|
132
|
+
top: var(--size-n1);
|
|
133
|
+
z-index: 3;
|
|
134
|
+
background: #ffffffb3;
|
|
135
|
+
border: .5px solid #3c3c435c;
|
|
136
|
+
transition: left .25s ease-in-out;
|
|
137
|
+
position: fixed;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.navFooter-t_dTvk {
|
|
141
|
+
gap: var(--size-n3);
|
|
142
|
+
padding: 0 var(--size-n1) var(--size-n1);
|
|
143
|
+
display: grid;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.navFooter-t_dTvk button {
|
|
147
|
+
justify-content: start;
|
|
148
|
+
width: 100%;
|
|
119
149
|
}
|
|
120
150
|
|
|
121
151
|
.navContent-xOgco3 {
|
|
122
|
-
|
|
152
|
+
margin-block: var(--size-n1);
|
|
153
|
+
min-height: 0;
|
|
154
|
+
padding-inline: var(--size-n1);
|
|
123
155
|
overflow-y: auto;
|
|
124
156
|
}
|
|
125
157
|
|
|
158
|
+
.header-BPDFUI {
|
|
159
|
+
--page-header-inset: 0;
|
|
160
|
+
transition: padding-left .25s ease-in-out;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.closed-iSkj26:has(.nav-PJYqK6) .header-BPDFUI {
|
|
164
|
+
padding-left: var(--nav-toggle-inset);
|
|
165
|
+
}
|
|
166
|
+
|
|
126
167
|
@media (min-width: 1024px) {
|
|
127
168
|
.header-BPDFUI {
|
|
128
169
|
grid-column: 1 / -1;
|
|
@@ -173,16 +214,7 @@
|
|
|
173
214
|
}
|
|
174
215
|
|
|
175
216
|
.content-kaxfp0.padded-L3X4Ui {
|
|
176
|
-
padding
|
|
177
|
-
padding-bottom: var(--size-00);
|
|
178
|
-
padding-left: var(--size-00);
|
|
179
|
-
padding-right: var(--size-00);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
@media (min-width: 768px) {
|
|
183
|
-
.content-kaxfp0.padded-L3X4Ui {
|
|
184
|
-
padding: 60px var(--size-p3) var(--size-p3);
|
|
185
|
-
}
|
|
217
|
+
padding: var(--size-n1) var(--content-padded-horizontal-padding);
|
|
186
218
|
}
|
|
187
219
|
|
|
188
220
|
@media (min-width: 1024px) {
|
|
@@ -195,11 +227,3 @@
|
|
|
195
227
|
}
|
|
196
228
|
}
|
|
197
229
|
|
|
198
|
-
@media (min-width: 1440px) {
|
|
199
|
-
.content-kaxfp0.padded-L3X4Ui {
|
|
200
|
-
padding-bottom: var(--size-p4);
|
|
201
|
-
padding-left: var(--size-p4);
|
|
202
|
-
padding-right: var(--size-p4);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
|
|
17
17
|
.narrowWidthContent-jzMzq_ {
|
|
18
18
|
width: 100%;
|
|
19
|
-
padding-left: var(--container-spacing);
|
|
20
|
-
padding-right: var(--container-spacing);
|
|
21
19
|
}
|
|
22
20
|
|
|
23
|
-
@media (min-width:
|
|
21
|
+
@media (min-width: 768px) {
|
|
24
22
|
.narrowWidthContent-jzMzq_ {
|
|
23
|
+
--page-header-inset: 0;
|
|
25
24
|
width: 900px;
|
|
26
25
|
max-width: calc(100% - var(--container-spacing) * 2);
|
|
26
|
+
padding: 0 var(--size-00);
|
|
27
27
|
margin-left: auto;
|
|
28
28
|
margin-right: auto;
|
|
29
29
|
}
|
|
@@ -8,6 +8,7 @@ const Header = ({ actions, children, description, id, tagName: Tag = "header" })
|
|
|
8
8
|
children: children
|
|
9
9
|
}),
|
|
10
10
|
actions ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
11
|
+
className: __WEBPACK_EXTERNAL_MODULE__Header_module_js_6aa79f68__["default"].actions,
|
|
11
12
|
children: actions
|
|
12
13
|
}) : null,
|
|
13
14
|
description ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
@@ -1,17 +1,38 @@
|
|
|
1
1
|
.container-LpNftB {
|
|
2
|
-
align-items:
|
|
2
|
+
align-items: flex-start;
|
|
3
3
|
gap: var(--size-n2) var(--size-p2);
|
|
4
4
|
grid-template-columns: 1fr auto;
|
|
5
5
|
display: grid;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
+
.container-LpNftB > div:first-child {
|
|
9
|
+
min-width: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.actions-M11a7I {
|
|
13
|
+
flex-shrink: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
8
16
|
.description-z2GJWi {
|
|
9
17
|
grid-column: 1 / -1;
|
|
10
18
|
}
|
|
11
19
|
|
|
12
20
|
@media (max-width: 768px) {
|
|
13
|
-
.
|
|
14
|
-
|
|
21
|
+
.actions-M11a7I [data-button-part="label"] {
|
|
22
|
+
clip: rect(0, 0, 0, 0);
|
|
23
|
+
white-space: nowrap;
|
|
24
|
+
border: 0;
|
|
25
|
+
width: 1px;
|
|
26
|
+
height: 1px;
|
|
27
|
+
margin: -1px;
|
|
28
|
+
padding: 0;
|
|
29
|
+
position: absolute;
|
|
30
|
+
overflow: hidden;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.actions-M11a7I :is(button, a, span):has([data-button-part="icon"]):has([data-button-part="label"]) {
|
|
34
|
+
padding: var(--size-n2);
|
|
35
|
+
gap: 0;
|
|
15
36
|
}
|
|
16
37
|
}
|
|
17
38
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
type BackLink = {
|
|
3
|
+
href: string;
|
|
4
|
+
tooltip: ReactNode;
|
|
5
|
+
};
|
|
6
|
+
type Props = {
|
|
7
|
+
actions?: ReactNode;
|
|
8
|
+
backLink?: BackLink;
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
description?: ReactNode;
|
|
11
|
+
id?: string;
|
|
12
|
+
};
|
|
13
|
+
declare const PageHeader: ({ actions, backLink, children, description, id }: Props) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export default PageHeader;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__ from "react/jsx-runtime";
|
|
3
|
+
import * as __WEBPACK_EXTERNAL_MODULE__controls_ButtonLink_js_1677d8df__ from "../controls/ButtonLink.js";
|
|
4
|
+
import * as __WEBPACK_EXTERNAL_MODULE__icons_components_ChevronLeft_js_95fe0c36__ from "../icons/components/ChevronLeft.js";
|
|
5
|
+
import * as __WEBPACK_EXTERNAL_MODULE__Header_js_94d20122__ from "./Header.js";
|
|
6
|
+
import * as __WEBPACK_EXTERNAL_MODULE__PageHeader_module_js_aa2b4516__ from "./PageHeader.module.js";
|
|
7
|
+
const PageHeader = ({ actions, backLink, children, description, id })=>/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("header", {
|
|
8
|
+
className: __WEBPACK_EXTERNAL_MODULE__PageHeader_module_js_aa2b4516__["default"].pageHeader,
|
|
9
|
+
id: id,
|
|
10
|
+
children: [
|
|
11
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsxs)("div", {
|
|
12
|
+
className: __WEBPACK_EXTERNAL_MODULE__PageHeader_module_js_aa2b4516__["default"].top,
|
|
13
|
+
children: [
|
|
14
|
+
backLink ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__controls_ButtonLink_js_1677d8df__["default"], {
|
|
15
|
+
href: backLink.href,
|
|
16
|
+
icon: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__icons_components_ChevronLeft_js_95fe0c36__["default"], {}),
|
|
17
|
+
tooltip: backLink.tooltip,
|
|
18
|
+
type: "ghost"
|
|
19
|
+
}) : null,
|
|
20
|
+
/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
21
|
+
className: __WEBPACK_EXTERNAL_MODULE__PageHeader_module_js_aa2b4516__["default"].main,
|
|
22
|
+
children: /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__Header_js_94d20122__["default"], {
|
|
23
|
+
actions: actions,
|
|
24
|
+
tagName: "div",
|
|
25
|
+
children: children
|
|
26
|
+
})
|
|
27
|
+
})
|
|
28
|
+
]
|
|
29
|
+
}),
|
|
30
|
+
description ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)("div", {
|
|
31
|
+
children: description
|
|
32
|
+
}) : null
|
|
33
|
+
]
|
|
34
|
+
});
|
|
35
|
+
const PageHeader_rslib_entry_ = PageHeader;
|
|
36
|
+
export { PageHeader_rslib_entry_ as default };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
.pageHeader-RV66CE {
|
|
2
|
+
gap: var(--size-n2);
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
display: flex;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.top-wChgfn {
|
|
8
|
+
align-items: flex-start;
|
|
9
|
+
gap: var(--size-n2);
|
|
10
|
+
padding-left: var(--page-header-inset, 0);
|
|
11
|
+
transition: padding-left .25s ease-in-out;
|
|
12
|
+
display: flex;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.main-KE919g {
|
|
16
|
+
flex: 1;
|
|
17
|
+
min-width: 0;
|
|
18
|
+
}
|
|
19
|
+
|
|
@@ -110,14 +110,18 @@ type CommonProps<Type> = {
|
|
|
110
110
|
* Set with `pathName` if you want column filters and visibility saved between visits.
|
|
111
111
|
* @default (omitted) persistence disabled.
|
|
112
112
|
*/
|
|
113
|
+
storageId?: string;
|
|
114
|
+
/**
|
|
115
|
+
* @deprecated Use `storageId`. Kept for backwards compatibility with `Table`.
|
|
116
|
+
*/
|
|
113
117
|
id?: string;
|
|
114
118
|
/**
|
|
115
|
-
* Scope for saved list settings; use together with `
|
|
119
|
+
* Scope for saved list settings; use together with `storageId` so persistence is enabled.
|
|
116
120
|
* @default (omitted) persistence disabled.
|
|
117
121
|
*/
|
|
118
122
|
pathName?: string;
|
|
119
123
|
/**
|
|
120
|
-
* Schema for validating stored list state when using `
|
|
124
|
+
* Schema for validating stored list state when using `storageId` and `pathName`.
|
|
121
125
|
* @default (omitted) stored JSON is not parsed with Zod before use.
|
|
122
126
|
*/
|
|
123
127
|
localStorageSchema?: ZodTypeAny;
|
|
@@ -43,7 +43,8 @@ function mergeInlineSinglePersistedColumnFilters(tableColumnFilters, inlineColum
|
|
|
43
43
|
}
|
|
44
44
|
];
|
|
45
45
|
}
|
|
46
|
-
const RichListInner = ({ data, getRowId, leadingSlot, mainSlot, contentSlots = EMPTY_RICH_LIST_CONTENT_SLOTS, contentAlignment = "space-evenly", trailingSlot, href, onClick, rowActions, bulkActions = EMPTY_RICH_LIST_BULK_ACTIONS, secondaryBulkActions = EMPTY_RICH_LIST_BULK_ACTIONS, rowHeight = "medium", csvFilename, fillContainerHeight = false, compactBreakpoint: compactBreakpointProp, emptyState = "No results", id, pathName, localStorageSchema, header, onFiltersChange })=>{
|
|
46
|
+
const RichListInner = ({ data, getRowId, leadingSlot, mainSlot, contentSlots = EMPTY_RICH_LIST_CONTENT_SLOTS, contentAlignment = "space-evenly", trailingSlot, href, onClick, rowActions, bulkActions = EMPTY_RICH_LIST_BULK_ACTIONS, secondaryBulkActions = EMPTY_RICH_LIST_BULK_ACTIONS, rowHeight = "medium", csvFilename, fillContainerHeight = false, compactBreakpoint: compactBreakpointProp, emptyState = "No results", storageId, id, pathName, localStorageSchema, header, onFiltersChange })=>{
|
|
47
|
+
const resolvedStorageId = storageId ?? id;
|
|
47
48
|
const [searchTerm, setSearchTerm] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)("");
|
|
48
49
|
const [inlineSingleSelectChoice, setInlineSingleSelectChoice] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(void 0);
|
|
49
50
|
const [isFilterModalOpen, setIsFilterModalOpen] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(false);
|
|
@@ -154,6 +155,9 @@ const RichListInner = ({ data, getRowId, leadingSlot, mainSlot, contentSlots = E
|
|
|
154
155
|
const sortableEntryIds = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>new Set(sortableEntries.map((entry)=>entry.id)), [
|
|
155
156
|
sortableEntries
|
|
156
157
|
]);
|
|
158
|
+
const groupableEntryIds = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>new Set(groupableEntries.map((entry)=>entry.id)), [
|
|
159
|
+
groupableEntries
|
|
160
|
+
]);
|
|
157
161
|
const columnDefs = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{
|
|
158
162
|
const columnHelper = (0, __WEBPACK_EXTERNAL_MODULE__tanstack_react_table_777e1b4b__.createColumnHelper)();
|
|
159
163
|
const tableFilteringForEntry = (entryId)=>!(void 0 !== inlineSingleSelectExcludedFromTableColumnId && entryId === inlineSingleSelectExcludedFromTableColumnId);
|
|
@@ -222,9 +226,9 @@ const RichListInner = ({ data, getRowId, leadingSlot, mainSlot, contentSlots = E
|
|
|
222
226
|
}), [
|
|
223
227
|
entriesWithFilter
|
|
224
228
|
]);
|
|
225
|
-
const storageKey = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>pathName &&
|
|
229
|
+
const storageKey = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>pathName && resolvedStorageId ? `${pathName}#${resolvedStorageId}_richList` : null, [
|
|
226
230
|
pathName,
|
|
227
|
-
|
|
231
|
+
resolvedStorageId
|
|
228
232
|
]);
|
|
229
233
|
const localStorageData = "undefined" != typeof window && storageKey ? window.localStorage.getItem(storageKey) : null;
|
|
230
234
|
const parsedLocalStorage = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>{
|
|
@@ -245,6 +249,10 @@ const RichListInner = ({ data, getRowId, leadingSlot, mainSlot, contentSlots = E
|
|
|
245
249
|
parsedLocalStorage.sorting,
|
|
246
250
|
sortableEntryIds
|
|
247
251
|
]);
|
|
252
|
+
const initialGrouping = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>(parsedLocalStorage.grouping ?? []).filter((id)=>groupableEntryIds.has(id)), [
|
|
253
|
+
groupableEntryIds,
|
|
254
|
+
parsedLocalStorage.grouping
|
|
255
|
+
]);
|
|
248
256
|
const mergedInitialPersistedColumnFilters = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>parsedLocalStorage.columnFilters ?? columnFiltersInitialState, [
|
|
249
257
|
parsedLocalStorage.columnFilters,
|
|
250
258
|
columnFiltersInitialState
|
|
@@ -333,7 +341,7 @@ const RichListInner = ({ data, getRowId, leadingSlot, mainSlot, contentSlots = E
|
|
|
333
341
|
columnVisibility: initialColumnVisibility,
|
|
334
342
|
expanded: true,
|
|
335
343
|
globalFilter: "",
|
|
336
|
-
grouping:
|
|
344
|
+
grouping: initialGrouping,
|
|
337
345
|
sorting: initialSorting
|
|
338
346
|
},
|
|
339
347
|
defaultColumn: {
|
|
@@ -359,6 +367,38 @@ const RichListInner = ({ data, getRowId, leadingSlot, mainSlot, contentSlots = E
|
|
|
359
367
|
permanentlyHiddenColumnIds,
|
|
360
368
|
table
|
|
361
369
|
]);
|
|
370
|
+
const hasRestoredLayoutFromStorageRef = (0, __WEBPACK_EXTERNAL_MODULE_react__.useRef)(false);
|
|
371
|
+
(0, __WEBPACK_EXTERNAL_MODULE_react__.useLayoutEffect)(()=>{
|
|
372
|
+
if (hasRestoredLayoutFromStorageRef.current || !storageKey || !localStorageSchema) return;
|
|
373
|
+
hasRestoredLayoutFromStorageRef.current = true;
|
|
374
|
+
const raw = window.localStorage.getItem(storageKey);
|
|
375
|
+
if (!raw) return;
|
|
376
|
+
try {
|
|
377
|
+
const parsed = JSON.parse(raw);
|
|
378
|
+
localStorageSchema.parse(parsed);
|
|
379
|
+
const sorting = (parsed.sorting ?? []).filter((sort)=>sortableEntryIds.has(sort.id));
|
|
380
|
+
if (sorting.length > 0) table.setSorting(sorting);
|
|
381
|
+
const grouping = (parsed.grouping ?? []).filter((id)=>groupableEntryIds.has(id));
|
|
382
|
+
if (grouping.length > 0) table.setGrouping(grouping);
|
|
383
|
+
if (parsed.columnVisibility) table.setColumnVisibility((prev)=>{
|
|
384
|
+
const next = {
|
|
385
|
+
...prev,
|
|
386
|
+
...parsed.columnVisibility
|
|
387
|
+
};
|
|
388
|
+
for (const id of permanentlyHiddenColumnIds)next[id] = false;
|
|
389
|
+
return next;
|
|
390
|
+
});
|
|
391
|
+
} catch (error) {
|
|
392
|
+
console.error("Error restoring RichList layout from localStorage:", error);
|
|
393
|
+
}
|
|
394
|
+
}, [
|
|
395
|
+
groupableEntryIds,
|
|
396
|
+
localStorageSchema,
|
|
397
|
+
permanentlyHiddenColumnIds,
|
|
398
|
+
sortableEntryIds,
|
|
399
|
+
storageKey,
|
|
400
|
+
table
|
|
401
|
+
]);
|
|
362
402
|
const tableState = table.getState();
|
|
363
403
|
const persistedSorting = (0, __WEBPACK_EXTERNAL_MODULE_react__.useMemo)(()=>tableState.sorting.filter((sort)=>sortableEntryIds.has(sort.id)), [
|
|
364
404
|
sortableEntryIds,
|
|
@@ -376,7 +416,8 @@ const RichListInner = ({ data, getRowId, leadingSlot, mainSlot, contentSlots = E
|
|
|
376
416
|
]);
|
|
377
417
|
const showSearchReset = activeFilterCount > 0 || "" !== tableState.globalFilter;
|
|
378
418
|
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
379
|
-
if (storageKey)
|
|
419
|
+
if (!storageKey) return;
|
|
420
|
+
window.localStorage.setItem(storageKey, JSON.stringify({
|
|
380
421
|
columnFilters: mergeInlineSinglePersistedColumnFilters(tableState.columnFilters, inlineSingleSelectExcludedFromTableColumnId, inlineSingleSelectOptionIdResolved),
|
|
381
422
|
columnVisibility: tableState.columnVisibility,
|
|
382
423
|
sorting: persistedSorting,
|
|
@@ -731,10 +772,17 @@ const RichListInner = ({ data, getRowId, leadingSlot, mainSlot, contentSlots = E
|
|
|
731
772
|
};
|
|
732
773
|
const RICH_LIST_DEFER_ROW_THRESHOLD = 1000;
|
|
733
774
|
const RichList = (props)=>{
|
|
734
|
-
const
|
|
735
|
-
const
|
|
775
|
+
const resolvedStorageId = props.storageId ?? props.id;
|
|
776
|
+
const persistenceEnabled = Boolean(resolvedStorageId);
|
|
777
|
+
const persistencePathReady = !persistenceEnabled || Boolean(props.pathName);
|
|
778
|
+
const shouldDefer = props.data.length > RICH_LIST_DEFER_ROW_THRESHOLD || persistenceEnabled;
|
|
779
|
+
const [ready, setReady] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)(!shouldDefer && persistencePathReady);
|
|
736
780
|
(0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
737
|
-
if (ready) return;
|
|
781
|
+
if (ready || !persistencePathReady) return;
|
|
782
|
+
if (!shouldDefer) {
|
|
783
|
+
setReady(true);
|
|
784
|
+
return;
|
|
785
|
+
}
|
|
738
786
|
let innerHandle = 0;
|
|
739
787
|
const outerHandle = requestAnimationFrame(()=>{
|
|
740
788
|
innerHandle = requestAnimationFrame(()=>setReady(true));
|
|
@@ -744,7 +792,9 @@ const RichList = (props)=>{
|
|
|
744
792
|
cancelAnimationFrame(innerHandle);
|
|
745
793
|
};
|
|
746
794
|
}, [
|
|
747
|
-
|
|
795
|
+
persistencePathReady,
|
|
796
|
+
ready,
|
|
797
|
+
shouldDefer
|
|
748
798
|
]);
|
|
749
799
|
return ready ? /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(RichListInner, {
|
|
750
800
|
...props
|
|
@@ -258,7 +258,8 @@ const RichListRow = ({ row, table, groupEntry, enableRowSelection, anyRowCanBeSe
|
|
|
258
258
|
icon: action.icon,
|
|
259
259
|
tooltip: action.label,
|
|
260
260
|
href: action.href(rowOriginal),
|
|
261
|
-
external: action.external
|
|
261
|
+
external: action.external,
|
|
262
|
+
download: action.download?.(rowOriginal)
|
|
262
263
|
}, action.id);
|
|
263
264
|
if ("onClick" === action.type) return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react_jsx_runtime_225474f2__.jsx)(__WEBPACK_EXTERNAL_MODULE__controls_Button_js_2f50b64a__["default"], {
|
|
264
265
|
id: action.id,
|