@k2b/ui 0.17.0 → 0.18.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/browser/chat/ChatComposer.js +261 -274
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/ChatPrimitives.js +9 -6
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/content/FileView.js +62 -36
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/content/MarkdownView.js +9 -3
- package/dist/browser/content/MarkdownView.js.map +1 -1
- package/dist/browser/content/VideoPlayer.js +279 -0
- package/dist/browser/content/VideoPlayer.js.map +1 -0
- package/dist/browser/content/file-view-preview.js +2 -2
- package/dist/browser/content/file-view-preview.js.map +1 -1
- package/dist/browser/content/index.js +2 -0
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/content/markdown-links.js +178 -0
- package/dist/browser/content/markdown-links.js.map +1 -0
- package/dist/browser/inputs/FileDropTarget.js +129 -0
- package/dist/browser/inputs/FileDropTarget.js.map +1 -0
- package/dist/browser/inputs/FileInputs.js +37 -11
- package/dist/browser/inputs/FileInputs.js.map +1 -1
- package/dist/browser/inputs/file-drop.js +338 -0
- package/dist/browser/inputs/file-drop.js.map +1 -0
- package/dist/browser/inputs/index.js +1 -0
- package/dist/browser/inputs/index.js.map +1 -1
- package/dist/browser/inputs/markdown/MarkdownEditor.js +72 -78
- package/dist/browser/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/browser/intl/messages.js +97 -4
- package/dist/browser/intl/messages.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +210 -44
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/Navigation.js +274 -197
- package/dist/browser/layout/Navigation.js.map +1 -1
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/browser/layout/navigation-model.js +2 -0
- package/dist/browser/layout/navigation-model.js.map +1 -1
- package/dist/browser/surfaces/NoticeCard.js +47 -44
- package/dist/browser/surfaces/NoticeCard.js.map +1 -1
- package/dist/ssr/chat/ChatComposer.js +59 -48
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/ChatPrimitives.js +9 -6
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/content/FileView.js +30 -6
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/content/MarkdownView.js +9 -3
- package/dist/ssr/content/MarkdownView.js.map +1 -1
- package/dist/ssr/content/VideoPlayer.js +208 -0
- package/dist/ssr/content/VideoPlayer.js.map +1 -0
- package/dist/ssr/content/file-view-preview.js +2 -2
- package/dist/ssr/content/file-view-preview.js.map +1 -1
- package/dist/ssr/content/index.js +2 -0
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/content/markdown-links.js +178 -0
- package/dist/ssr/content/markdown-links.js.map +1 -0
- package/dist/ssr/inputs/FileDropTarget.js +103 -0
- package/dist/ssr/inputs/FileDropTarget.js.map +1 -0
- package/dist/ssr/inputs/FileInputs.js +32 -10
- package/dist/ssr/inputs/FileInputs.js.map +1 -1
- package/dist/ssr/inputs/file-drop.js +338 -0
- package/dist/ssr/inputs/file-drop.js.map +1 -0
- package/dist/ssr/inputs/index.js +1 -0
- package/dist/ssr/inputs/index.js.map +1 -1
- package/dist/ssr/inputs/markdown/MarkdownEditor.js +14 -2
- package/dist/ssr/inputs/markdown/MarkdownEditor.js.map +1 -1
- package/dist/ssr/intl/messages.js +97 -4
- package/dist/ssr/intl/messages.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +173 -27
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/Navigation.js +169 -122
- package/dist/ssr/layout/Navigation.js.map +1 -1
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/ssr/layout/navigation-model.js +2 -0
- package/dist/ssr/layout/navigation-model.js.map +1 -1
- package/dist/ssr/surfaces/NoticeCard.js +17 -12
- package/dist/ssr/surfaces/NoticeCard.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/chat/ChatPrimitives.d.ts +1 -1
- package/dist/types/content/VideoPlayer.d.ts +41 -0
- package/dist/types/content/index.d.ts +2 -0
- package/dist/types/content/markdown-links.d.ts +66 -0
- package/dist/types/inputs/FileDropTarget.d.ts +23 -0
- package/dist/types/inputs/FileInputs.d.ts +2 -0
- package/dist/types/inputs/file-drop.d.ts +80 -0
- package/dist/types/inputs/index.d.ts +2 -0
- package/dist/types/intl/messages.d.ts +47 -0
- package/dist/types/layout/AppWorkspace.d.ts +21 -0
- package/dist/types/layout/index.d.ts +2 -2
- package/dist/types/layout/navigation-model.d.ts +18 -0
- package/package.json +1 -1
|
@@ -1,33 +1,46 @@
|
|
|
1
1
|
import { template as _$template } from "solid-js/web";
|
|
2
2
|
import { delegateEvents as _$delegateEvents } from "solid-js/web";
|
|
3
3
|
import { setProperty as _$setProperty } from "solid-js/web";
|
|
4
|
-
import { setAttribute as _$setAttribute } from "solid-js/web";
|
|
5
|
-
import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
|
|
6
4
|
import { memo as _$memo } from "solid-js/web";
|
|
5
|
+
import { className as _$className } from "solid-js/web";
|
|
7
6
|
import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
|
|
8
7
|
import { getNextMarker as _$getNextMarker } from "solid-js/web";
|
|
9
|
-
import {
|
|
8
|
+
import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
|
|
9
|
+
import { spread as _$spread } from "solid-js/web";
|
|
10
|
+
import { mergeProps as _$mergeProps } from "solid-js/web";
|
|
11
|
+
import { setAttribute as _$setAttribute } from "solid-js/web";
|
|
10
12
|
import { effect as _$effect } from "solid-js/web";
|
|
11
13
|
import { getNextElement as _$getNextElement } from "solid-js/web";
|
|
12
14
|
import { insert as _$insert } from "solid-js/web";
|
|
13
15
|
import { createComponent as _$createComponent } from "solid-js/web";
|
|
14
16
|
var _tmpl$ = /*#__PURE__*/_$template(`<ul class=k2b-navigation__list>`),
|
|
15
|
-
_tmpl$2 = /*#__PURE__*/_$template(`<i
|
|
17
|
+
_tmpl$2 = /*#__PURE__*/_$template(`<i>`),
|
|
16
18
|
_tmpl$3 = /*#__PURE__*/_$template(`<small>`),
|
|
17
19
|
_tmpl$4 = /*#__PURE__*/_$template(`<span class=k2b-navigation__copy><span></span><!$><!/>`),
|
|
18
20
|
_tmpl$5 = /*#__PURE__*/_$template(`<span class=k2b-navigation__color>`),
|
|
19
21
|
_tmpl$6 = /*#__PURE__*/_$template(`<span class=k2b-navigation__badge>`),
|
|
20
|
-
_tmpl$7 = /*#__PURE__*/_$template(`<
|
|
21
|
-
_tmpl$8 = /*#__PURE__*/_$template(`<i
|
|
22
|
-
_tmpl$9 = /*#__PURE__*/_$template(`<
|
|
23
|
-
_tmpl$0 = /*#__PURE__*/_$template(`<li><div class=k2b-
|
|
24
|
-
_tmpl$1 = /*#__PURE__*/_$template(`<button type=button class=k2b-
|
|
25
|
-
_tmpl$10 = /*#__PURE__*/_$template(`<
|
|
22
|
+
_tmpl$7 = /*#__PURE__*/_$template(`<span class=k2b-navigation__status>`),
|
|
23
|
+
_tmpl$8 = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
|
|
24
|
+
_tmpl$9 = /*#__PURE__*/_$template(`<span class=k2b-sr-only>`),
|
|
25
|
+
_tmpl$0 = /*#__PURE__*/_$template(`<li class=k2b-navigation__section><div class=k2b-navigation__heading></div><!$><!/>`),
|
|
26
|
+
_tmpl$1 = /*#__PURE__*/_$template(`<button type=button class=k2b-navigation__disclosure><i aria-hidden=true>`),
|
|
27
|
+
_tmpl$10 = /*#__PURE__*/_$template(`<i class="ti ti-dots"aria-hidden=true>`),
|
|
28
|
+
_tmpl$11 = /*#__PURE__*/_$template(`<div>`),
|
|
29
|
+
_tmpl$12 = /*#__PURE__*/_$template(`<li><div class=k2b-navigation__row><!$><!/><!$><!/><!$><!/><!$><!/></div><!$><!/>`),
|
|
30
|
+
_tmpl$13 = /*#__PURE__*/_$template(`<button type=button class=k2b-navigation__control><!$><!/><!$><!/>`),
|
|
31
|
+
_tmpl$14 = /*#__PURE__*/_$template(`<nav class=k2b-navigation>`);
|
|
26
32
|
import { documentNavigate, Link } from "@k2b/ssr/nav";
|
|
27
|
-
import { createSignal, For, Show } from "solid-js";
|
|
33
|
+
import { createSignal, createUniqueId, For, Show } from "solid-js";
|
|
28
34
|
import { IconButton } from "../actions/Button";
|
|
29
35
|
import { Dropdown } from "../actions/Dropdown";
|
|
30
36
|
import { useUiMessages } from "../intl/messages";
|
|
37
|
+
/** A named icon is an image screen readers announce; any other icon is decoration. */
|
|
38
|
+
const iconAccessibility = label => label ? {
|
|
39
|
+
role: "img",
|
|
40
|
+
"aria-label": label
|
|
41
|
+
} : {
|
|
42
|
+
"aria-hidden": true
|
|
43
|
+
};
|
|
31
44
|
export default function Navigation(props) {
|
|
32
45
|
const messages = useUiMessages();
|
|
33
46
|
const [expanded, setExpanded] = createSignal({});
|
|
@@ -44,6 +57,7 @@ export default function Navigation(props) {
|
|
|
44
57
|
children: id => {
|
|
45
58
|
const item = () => rows.items.find(entry => entry.id === id);
|
|
46
59
|
const disabled = () => rows.disabled || item().disabled;
|
|
60
|
+
const headingId = `k2b-navigation-section-${createUniqueId()}`;
|
|
47
61
|
// `expanded` hands disclosure to the item's owner; every other toggle stays local to this renderer.
|
|
48
62
|
const open = () => item().expanded ?? expanded()[id] ?? item().defaultExpanded ?? true;
|
|
49
63
|
const toggle = () => {
|
|
@@ -58,7 +72,12 @@ export default function Navigation(props) {
|
|
|
58
72
|
},
|
|
59
73
|
get children() {
|
|
60
74
|
var _el$2 = _$getNextElement(_tmpl$2);
|
|
61
|
-
_$
|
|
75
|
+
_$spread(_el$2, _$mergeProps({
|
|
76
|
+
get ["class"]() {
|
|
77
|
+
return item().icon;
|
|
78
|
+
}
|
|
79
|
+
}, () => iconAccessibility(item().iconLabel)), false, false);
|
|
80
|
+
_$runHydrationEvents();
|
|
62
81
|
return _el$2;
|
|
63
82
|
}
|
|
64
83
|
}), (() => {
|
|
@@ -96,217 +115,275 @@ export default function Navigation(props) {
|
|
|
96
115
|
_$insert(_el$9, () => item().badge);
|
|
97
116
|
return _el$9;
|
|
98
117
|
}
|
|
99
|
-
})
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
_el$
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
[_el$18, _co$4] = _$getNextMarker(_el$17.nextSibling),
|
|
109
|
-
_el$19 = _el$18.nextSibling,
|
|
110
|
-
[_el$20, _co$5] = _$getNextMarker(_el$19.nextSibling),
|
|
111
|
-
_el$22 = _el$1.nextSibling,
|
|
112
|
-
[_el$23, _co$6] = _$getNextMarker(_el$22.nextSibling);
|
|
113
|
-
_$insert(_el$1, _$createComponent(Show, {
|
|
114
|
-
get when() {
|
|
115
|
-
return item().href;
|
|
116
|
-
},
|
|
117
|
-
get fallback() {
|
|
118
|
-
return (() => {
|
|
119
|
-
var _el$24 = _$getNextElement(_tmpl$1),
|
|
120
|
-
_el$26 = _el$24.firstChild,
|
|
121
|
-
[_el$27, _co$7] = _$getNextMarker(_el$26.nextSibling),
|
|
122
|
-
_el$28 = _el$27.nextSibling,
|
|
123
|
-
[_el$29, _co$8] = _$getNextMarker(_el$28.nextSibling);
|
|
124
|
-
_el$24.$$click = () => item().action ? void activate(id) : toggle();
|
|
125
|
-
_$insert(_el$24, content, _el$27, _co$7);
|
|
126
|
-
_$insert(_el$24, _$createComponent(Show, {
|
|
127
|
-
get when() {
|
|
128
|
-
return _$memo(() => !!!item().action)() && item().children?.length;
|
|
129
|
-
},
|
|
130
|
-
get children() {
|
|
131
|
-
var _el$25 = _$getNextElement(_tmpl$2);
|
|
132
|
-
_$effect(() => _$className(_el$25, open() ? "ti ti-chevron-down" : "ti ti-chevron-right"));
|
|
133
|
-
return _el$25;
|
|
134
|
-
}
|
|
135
|
-
}), _el$29, _co$8);
|
|
136
|
-
_$effect(_p$ => {
|
|
137
|
-
var _v$5 = disabled(),
|
|
138
|
-
_v$6 = !item().action ? open() : undefined;
|
|
139
|
-
_v$5 !== _p$.e && _$setProperty(_el$24, "disabled", _p$.e = _v$5);
|
|
140
|
-
_v$6 !== _p$.t && _$setAttribute(_el$24, "aria-expanded", _p$.t = _v$6);
|
|
141
|
-
return _p$;
|
|
142
|
-
}, {
|
|
143
|
-
e: undefined,
|
|
144
|
-
t: undefined
|
|
145
|
-
});
|
|
146
|
-
_$runHydrationEvents();
|
|
147
|
-
return _el$24;
|
|
148
|
-
})();
|
|
149
|
-
},
|
|
150
|
-
children: href => _$createComponent(Link, {
|
|
151
|
-
"class": "k2b-navigation__control",
|
|
152
|
-
get href() {
|
|
153
|
-
return href();
|
|
154
|
-
},
|
|
155
|
-
get ["aria-current"]() {
|
|
156
|
-
return item().active ? "page" : undefined;
|
|
157
|
-
},
|
|
158
|
-
get ["aria-disabled"]() {
|
|
159
|
-
return disabled() || undefined;
|
|
160
|
-
},
|
|
161
|
-
get tabIndex() {
|
|
162
|
-
return disabled() ? -1 : undefined;
|
|
163
|
-
},
|
|
164
|
-
get scroll() {
|
|
165
|
-
return item().scroll;
|
|
166
|
-
},
|
|
167
|
-
onNavigate: async event => {
|
|
168
|
-
if (!(await ready())) return;
|
|
169
|
-
if (item().navigation === "enhanced" && props.navigation.onNavigate) await props.navigation.onNavigate(event);else event.fallback();
|
|
170
|
-
},
|
|
171
|
-
onClick: event => {
|
|
172
|
-
if (disabled()) {
|
|
173
|
-
event.preventDefault();
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
if (!item().action || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
|
|
177
|
-
// Local opening can fetch before committing navigation, outside a view transition.
|
|
178
|
-
event.preventDefault();
|
|
179
|
-
void activate(id);
|
|
118
|
+
}), _$createComponent(Show, {
|
|
119
|
+
get when() {
|
|
120
|
+
return item().status !== undefined;
|
|
121
|
+
},
|
|
122
|
+
get children() {
|
|
123
|
+
var _el$0 = _$getNextElement(_tmpl$7);
|
|
124
|
+
_$insert(_el$0, _$createComponent(Show, {
|
|
125
|
+
get when() {
|
|
126
|
+
return item().status;
|
|
180
127
|
},
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
_$
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
_$
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
128
|
+
children: status => [(() => {
|
|
129
|
+
var _el$1 = _$getNextElement(_tmpl$8);
|
|
130
|
+
_$effect(() => _$className(_el$1, status().icon));
|
|
131
|
+
return _el$1;
|
|
132
|
+
})(), (() => {
|
|
133
|
+
var _el$10 = _$getNextElement(_tmpl$9);
|
|
134
|
+
_$insert(_el$10, () => status().label);
|
|
135
|
+
return _el$10;
|
|
136
|
+
})()]
|
|
137
|
+
}));
|
|
138
|
+
_$effect(_p$ => {
|
|
139
|
+
var _v$ = item().status?.tone,
|
|
140
|
+
_v$2 = item().status?.label;
|
|
141
|
+
_v$ !== _p$.e && _$setAttribute(_el$0, "data-tone", _p$.e = _v$);
|
|
142
|
+
_v$2 !== _p$.t && _$setAttribute(_el$0, "title", _p$.t = _v$2);
|
|
143
|
+
return _p$;
|
|
144
|
+
}, {
|
|
145
|
+
e: undefined,
|
|
146
|
+
t: undefined
|
|
147
|
+
});
|
|
148
|
+
return _el$0;
|
|
149
|
+
}
|
|
150
|
+
})];
|
|
151
|
+
return _$createComponent(Show, {
|
|
152
|
+
get when() {
|
|
153
|
+
return item().section;
|
|
154
|
+
},
|
|
155
|
+
get fallback() {
|
|
156
|
+
return (() => {
|
|
157
|
+
var _el$15 = _$getNextElement(_tmpl$12),
|
|
158
|
+
_el$16 = _el$15.firstChild,
|
|
159
|
+
_el$20 = _el$16.firstChild,
|
|
160
|
+
[_el$21, _co$3] = _$getNextMarker(_el$20.nextSibling),
|
|
161
|
+
_el$22 = _el$21.nextSibling,
|
|
162
|
+
[_el$23, _co$4] = _$getNextMarker(_el$22.nextSibling),
|
|
163
|
+
_el$24 = _el$23.nextSibling,
|
|
164
|
+
[_el$25, _co$5] = _$getNextMarker(_el$24.nextSibling),
|
|
165
|
+
_el$26 = _el$25.nextSibling,
|
|
166
|
+
[_el$27, _co$6] = _$getNextMarker(_el$26.nextSibling),
|
|
167
|
+
_el$29 = _el$16.nextSibling,
|
|
168
|
+
[_el$30, _co$7] = _$getNextMarker(_el$29.nextSibling);
|
|
169
|
+
_$insert(_el$16, _$createComponent(Show, {
|
|
221
170
|
get when() {
|
|
222
|
-
return
|
|
171
|
+
return item().href;
|
|
223
172
|
},
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
173
|
+
get fallback() {
|
|
174
|
+
return (() => {
|
|
175
|
+
var _el$31 = _$getNextElement(_tmpl$13),
|
|
176
|
+
_el$33 = _el$31.firstChild,
|
|
177
|
+
[_el$34, _co$8] = _$getNextMarker(_el$33.nextSibling),
|
|
178
|
+
_el$35 = _el$34.nextSibling,
|
|
179
|
+
[_el$36, _co$9] = _$getNextMarker(_el$35.nextSibling);
|
|
180
|
+
_el$31.$$click = () => item().action ? void activate(id) : toggle();
|
|
181
|
+
_$insert(_el$31, content, _el$34, _co$8);
|
|
182
|
+
_$insert(_el$31, _$createComponent(Show, {
|
|
183
|
+
get when() {
|
|
184
|
+
return _$memo(() => !!!item().action)() && item().children?.length;
|
|
185
|
+
},
|
|
186
|
+
get children() {
|
|
187
|
+
var _el$32 = _$getNextElement(_tmpl$8);
|
|
188
|
+
_$effect(() => _$className(_el$32, open() ? "ti ti-chevron-down" : "ti ti-chevron-right"));
|
|
189
|
+
return _el$32;
|
|
190
|
+
}
|
|
191
|
+
}), _el$36, _co$9);
|
|
192
|
+
_$effect(_p$ => {
|
|
193
|
+
var _v$7 = disabled(),
|
|
194
|
+
_v$8 = !item().action ? open() : undefined;
|
|
195
|
+
_v$7 !== _p$.e && _$setProperty(_el$31, "disabled", _p$.e = _v$7);
|
|
196
|
+
_v$8 !== _p$.t && _$setAttribute(_el$31, "aria-expanded", _p$.t = _v$8);
|
|
197
|
+
return _p$;
|
|
198
|
+
}, {
|
|
199
|
+
e: undefined,
|
|
200
|
+
t: undefined
|
|
201
|
+
});
|
|
202
|
+
_$runHydrationEvents();
|
|
203
|
+
return _el$31;
|
|
204
|
+
})();
|
|
205
|
+
},
|
|
206
|
+
children: href => _$createComponent(Link, {
|
|
207
|
+
"class": "k2b-navigation__control",
|
|
208
|
+
get href() {
|
|
209
|
+
return href();
|
|
210
|
+
},
|
|
211
|
+
get ["aria-current"]() {
|
|
212
|
+
return item().active ? "page" : undefined;
|
|
228
213
|
},
|
|
229
|
-
get disabled() {
|
|
230
|
-
return disabled() ||
|
|
214
|
+
get ["aria-disabled"]() {
|
|
215
|
+
return disabled() || undefined;
|
|
216
|
+
},
|
|
217
|
+
get tabIndex() {
|
|
218
|
+
return disabled() ? -1 : undefined;
|
|
219
|
+
},
|
|
220
|
+
get scroll() {
|
|
221
|
+
return item().scroll;
|
|
222
|
+
},
|
|
223
|
+
onNavigate: async event => {
|
|
224
|
+
if (!(await ready())) return;
|
|
225
|
+
if (item().navigation === "enhanced" && props.navigation.onNavigate) await props.navigation.onNavigate(event);else event.fallback();
|
|
226
|
+
},
|
|
227
|
+
onClick: event => {
|
|
228
|
+
if (disabled()) {
|
|
229
|
+
event.preventDefault();
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
if (!item().action || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return;
|
|
233
|
+
// Local opening can fetch before committing navigation, outside a view transition.
|
|
234
|
+
event.preventDefault();
|
|
235
|
+
void activate(id);
|
|
231
236
|
},
|
|
232
|
-
onClick: () => void activate(actionId),
|
|
233
237
|
get children() {
|
|
234
|
-
|
|
235
|
-
_$effect(() => _$className(_el$30, current().icon));
|
|
236
|
-
return _el$30;
|
|
238
|
+
return content();
|
|
237
239
|
}
|
|
238
240
|
})
|
|
239
|
-
});
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
241
|
+
}), _el$21, _co$3);
|
|
242
|
+
_$insert(_el$16, _$createComponent(Show, {
|
|
243
|
+
get when() {
|
|
244
|
+
return _$memo(() => !!(item().href || item().action))() && item().children?.length;
|
|
245
|
+
},
|
|
246
|
+
get children() {
|
|
247
|
+
var _el$17 = _$getNextElement(_tmpl$1),
|
|
248
|
+
_el$18 = _el$17.firstChild;
|
|
249
|
+
_el$17.$$click = toggle;
|
|
250
|
+
_$effect(_p$ => {
|
|
251
|
+
var _v$3 = item().label,
|
|
252
|
+
_v$4 = open(),
|
|
253
|
+
_v$5 = disabled(),
|
|
254
|
+
_v$6 = open() ? "ti ti-chevron-down" : "ti ti-chevron-right";
|
|
255
|
+
_v$3 !== _p$.e && _$setAttribute(_el$17, "aria-label", _p$.e = _v$3);
|
|
256
|
+
_v$4 !== _p$.t && _$setAttribute(_el$17, "aria-expanded", _p$.t = _v$4);
|
|
257
|
+
_v$5 !== _p$.a && _$setProperty(_el$17, "disabled", _p$.a = _v$5);
|
|
258
|
+
_v$6 !== _p$.o && _$className(_el$18, _p$.o = _v$6);
|
|
259
|
+
return _p$;
|
|
260
|
+
}, {
|
|
261
|
+
e: undefined,
|
|
262
|
+
t: undefined,
|
|
263
|
+
a: undefined,
|
|
264
|
+
o: undefined
|
|
265
|
+
});
|
|
266
|
+
_$runHydrationEvents();
|
|
267
|
+
return _el$17;
|
|
268
|
+
}
|
|
269
|
+
}), _el$23, _co$4);
|
|
270
|
+
_$insert(_el$16, _$createComponent(For, {
|
|
271
|
+
get each() {
|
|
272
|
+
return (item().inlineActions ?? []).map(action => action.id);
|
|
273
|
+
},
|
|
274
|
+
children: actionId => {
|
|
275
|
+
const action = () => item().inlineActions?.find(entry => entry.id === actionId);
|
|
276
|
+
return _$createComponent(Show, {
|
|
277
|
+
get when() {
|
|
278
|
+
return action();
|
|
279
|
+
},
|
|
280
|
+
children: current => _$createComponent(IconButton, {
|
|
281
|
+
"class": "k2b-navigation__inline-action",
|
|
282
|
+
get label() {
|
|
283
|
+
return current().label;
|
|
284
|
+
},
|
|
285
|
+
get disabled() {
|
|
286
|
+
return disabled() || current().disabled;
|
|
287
|
+
},
|
|
288
|
+
onClick: () => void activate(actionId),
|
|
289
|
+
get children() {
|
|
290
|
+
var _el$37 = _$getNextElement(_tmpl$8);
|
|
291
|
+
_$effect(() => _$className(_el$37, current().icon));
|
|
292
|
+
return _el$37;
|
|
293
|
+
}
|
|
294
|
+
})
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}), _el$25, _co$5);
|
|
298
|
+
_$insert(_el$16, _$createComponent(Show, {
|
|
299
|
+
get when() {
|
|
300
|
+
return item().actions?.length;
|
|
260
301
|
},
|
|
261
302
|
get children() {
|
|
262
|
-
return _$createComponent(Dropdown.
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
303
|
+
return _$createComponent(Dropdown.Root, {
|
|
304
|
+
get items() {
|
|
305
|
+
return (item().actions ?? []).map(action => ({
|
|
306
|
+
label: action.label,
|
|
307
|
+
icon: action.icon,
|
|
308
|
+
description: action.description,
|
|
309
|
+
disabled: disabled() || action.disabled,
|
|
310
|
+
action: () => {
|
|
311
|
+
if (action.href) void ready().then(allowed => {
|
|
312
|
+
if (allowed) documentNavigate(action.href);
|
|
313
|
+
});else void activate(action.id);
|
|
314
|
+
}
|
|
315
|
+
}));
|
|
266
316
|
},
|
|
267
|
-
variant: "ghost",
|
|
268
317
|
get children() {
|
|
269
|
-
return _$
|
|
318
|
+
return _$createComponent(Dropdown.Trigger, {
|
|
319
|
+
iconOnly: true,
|
|
320
|
+
get label() {
|
|
321
|
+
return `${item().label}: ${messages().rowAction}`;
|
|
322
|
+
},
|
|
323
|
+
variant: "ghost",
|
|
324
|
+
get children() {
|
|
325
|
+
return _$getNextElement(_tmpl$10);
|
|
326
|
+
}
|
|
327
|
+
});
|
|
270
328
|
}
|
|
271
329
|
});
|
|
272
330
|
}
|
|
273
|
-
});
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
get when() {
|
|
278
|
-
return item().children?.length;
|
|
279
|
-
},
|
|
280
|
-
get children() {
|
|
281
|
-
var _el$21 = _$getNextElement(_tmpl$9);
|
|
282
|
-
_$insert(_el$21, _$createComponent(Rows, {
|
|
283
|
-
get items() {
|
|
284
|
-
return item().children ?? [];
|
|
331
|
+
}), _el$27, _co$6);
|
|
332
|
+
_$insert(_el$15, _$createComponent(Show, {
|
|
333
|
+
get when() {
|
|
334
|
+
return item().children?.length;
|
|
285
335
|
},
|
|
286
|
-
get
|
|
287
|
-
|
|
336
|
+
get children() {
|
|
337
|
+
var _el$28 = _$getNextElement(_tmpl$11);
|
|
338
|
+
_$insert(_el$28, _$createComponent(Rows, {
|
|
339
|
+
get items() {
|
|
340
|
+
return item().children ?? [];
|
|
341
|
+
},
|
|
342
|
+
get disabled() {
|
|
343
|
+
return disabled();
|
|
344
|
+
}
|
|
345
|
+
}));
|
|
346
|
+
_$effect(() => _$setProperty(_el$28, "hidden", !open()));
|
|
347
|
+
return _el$28;
|
|
288
348
|
}
|
|
289
|
-
}));
|
|
290
|
-
_$effect(() => _$
|
|
291
|
-
return _el$
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
349
|
+
}), _el$30, _co$7);
|
|
350
|
+
_$effect(() => _$setAttribute(_el$16, "data-active", item().active || undefined));
|
|
351
|
+
return _el$15;
|
|
352
|
+
})();
|
|
353
|
+
},
|
|
354
|
+
get children() {
|
|
355
|
+
var _el$11 = _$getNextElement(_tmpl$0),
|
|
356
|
+
_el$12 = _el$11.firstChild,
|
|
357
|
+
_el$13 = _el$12.nextSibling,
|
|
358
|
+
[_el$14, _co$2] = _$getNextMarker(_el$13.nextSibling);
|
|
359
|
+
_$setAttribute(_el$12, "id", headingId);
|
|
360
|
+
_$insert(_el$12, () => item().label);
|
|
361
|
+
_$insert(_el$11, _$createComponent(Rows, {
|
|
362
|
+
get items() {
|
|
363
|
+
return item().children ?? [];
|
|
364
|
+
},
|
|
365
|
+
get disabled() {
|
|
366
|
+
return disabled();
|
|
367
|
+
},
|
|
368
|
+
labelledBy: headingId
|
|
369
|
+
}), _el$14, _co$2);
|
|
370
|
+
return _el$11;
|
|
371
|
+
}
|
|
372
|
+
});
|
|
297
373
|
}
|
|
298
374
|
}));
|
|
375
|
+
_$effect(() => _$setAttribute(_el$, "aria-labelledby", rows.labelledBy));
|
|
299
376
|
return _el$;
|
|
300
377
|
})();
|
|
301
378
|
return (() => {
|
|
302
|
-
var _el$
|
|
303
|
-
_$insert(_el$
|
|
379
|
+
var _el$38 = _$getNextElement(_tmpl$14);
|
|
380
|
+
_$insert(_el$38, _$createComponent(Rows, {
|
|
304
381
|
get items() {
|
|
305
382
|
return props.navigation.items();
|
|
306
383
|
}
|
|
307
384
|
}));
|
|
308
|
-
_$effect(() => _$setAttribute(_el$
|
|
309
|
-
return _el$
|
|
385
|
+
_$effect(() => _$setAttribute(_el$38, "aria-label", props.label));
|
|
386
|
+
return _el$38;
|
|
310
387
|
})();
|
|
311
388
|
}
|
|
312
389
|
_$delegateEvents(["click"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["layout/Navigation.tsx"],"sourcesContent":["import { documentNavigate, Link } from \"@k2b/ssr/nav\";\nimport { createSignal, For, Show } from \"solid-js\";\nimport { IconButton } from \"../actions/Button\";\nimport { Dropdown } from \"../actions/Dropdown\";\nimport { useUiMessages } from \"../intl/messages\";\nimport type { NavigationController, NavigationItem } from \"./navigation-model\";\n\nexport type NavigationProps = {\n navigation: NavigationController;\n label: string;\n /** A host can finish dismissing its menu before the selected operation runs. */\n beforeSelect?: () => boolean | void | Promise<boolean | void>;\n};\n\nexport default function Navigation(props: NavigationProps) {\n const messages = useUiMessages();\n const [expanded, setExpanded] = createSignal<Record<string, boolean>>({});\n const ready = async () => (await props.beforeSelect?.()) !== false;\n const activate = async (id: string) => {\n if (await ready()) await props.navigation.activate(id);\n };\n const Rows = (rows: { items: readonly NavigationItem[]; disabled?: boolean }) => (\n <ul class=\"k2b-navigation__list\">\n <For each={rows.items.map((item) => item.id)}>\n {(id) => {\n const item = () => rows.items.find((entry) => entry.id === id)!;\n const disabled = () => rows.disabled || item().disabled;\n // `expanded` hands disclosure to the item's owner; every other toggle stays local to this renderer.\n const open = () => item().expanded ?? expanded()[id] ?? item().defaultExpanded ?? true;\n const toggle = () => {\n if (item().expanded !== undefined) props.navigation.onExpandedChange?.(id, !open());\n else setExpanded((current) => ({ ...current, [id]: !open() }));\n };\n const content = () => (\n <>\n <Show when={item().icon}>\n <i class={item().icon} aria-hidden=\"true\" />\n </Show>\n <span class=\"k2b-navigation__copy\">\n <span>{item().label}</span>\n <Show when={item().description}>\n <small>{item().description}</small>\n </Show>\n </span>\n <Show when={item().color}>\n <span class=\"k2b-navigation__color\" style={{ \"background-color\": item().color }} />\n </Show>\n <Show when={item().badge !== undefined}>\n <span class=\"k2b-navigation__badge\">{item().badge}</span>\n </Show>\n </>\n );\n return (\n <li>\n <div class=\"k2b-navigation__row\" data-active={item().active || undefined}>\n <Show\n when={item().href}\n fallback={\n <button\n type=\"button\"\n class=\"k2b-navigation__control\"\n disabled={disabled()}\n aria-expanded={!item().action ? open() : undefined}\n onClick={() => (item().action ? void activate(id) : toggle())}\n >\n {content()}\n <Show when={!item().action && item().children?.length}>\n <i class={open() ? \"ti ti-chevron-down\" : \"ti ti-chevron-right\"} aria-hidden=\"true\" />\n </Show>\n </button>\n }\n >\n {(href) => (\n <Link\n class=\"k2b-navigation__control\"\n href={href()}\n aria-current={item().active ? \"page\" : undefined}\n aria-disabled={disabled() || undefined}\n tabIndex={disabled() ? -1 : undefined}\n scroll={item().scroll}\n onNavigate={async (event) => {\n if (!(await ready())) return;\n if (item().navigation === \"enhanced\" && props.navigation.onNavigate) await props.navigation.onNavigate(event);\n else event.fallback();\n }}\n onClick={(event) => {\n if (disabled()) {\n event.preventDefault();\n return;\n }\n if (!item().action || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey)\n return;\n // Local opening can fetch before committing navigation, outside a view transition.\n event.preventDefault();\n void activate(id);\n }}\n >\n {content()}\n </Link>\n )}\n </Show>\n <Show when={(item().href || item().action) && item().children?.length}>\n <button\n type=\"button\"\n class=\"k2b-navigation__disclosure\"\n aria-label={item().label}\n aria-expanded={open()}\n disabled={disabled()}\n onClick={toggle}\n >\n <i class={open() ? \"ti ti-chevron-down\" : \"ti ti-chevron-right\"} aria-hidden=\"true\" />\n </button>\n </Show>\n {/* Keyed by id like the rows, so a button keeps its identity and focus when the model updates. */}\n <For each={(item().inlineActions ?? []).map((action) => action.id)}>\n {(actionId) => {\n const action = () => item().inlineActions?.find((entry) => entry.id === actionId);\n return (\n <Show when={action()}>\n {(current) => (\n <IconButton\n class=\"k2b-navigation__inline-action\"\n label={current().label}\n disabled={disabled() || current().disabled}\n onClick={() => void activate(actionId)}\n >\n <i class={current().icon} aria-hidden=\"true\" />\n </IconButton>\n )}\n </Show>\n );\n }}\n </For>\n <Show when={item().actions?.length}>\n <Dropdown.Root\n items={(item().actions ?? []).map((action) => ({\n label: action.label,\n icon: action.icon,\n description: action.description,\n disabled: disabled() || action.disabled,\n action: () => {\n if (action.href)\n void ready().then((allowed) => {\n if (allowed) documentNavigate(action.href!);\n });\n else void activate(action.id);\n },\n }))}\n >\n <Dropdown.Trigger iconOnly label={`${item().label}: ${messages().rowAction}`} variant=\"ghost\">\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </Show>\n </div>\n <Show when={item().children?.length}>\n <div hidden={!open()}>\n <Rows items={item().children ?? []} disabled={disabled()} />\n </div>\n </Show>\n </li>\n );\n }}\n </For>\n </ul>\n );\n return (\n <nav class=\"k2b-navigation\" aria-label={props.label}>\n <Rows items={props.navigation.items()} />\n </nav>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["layout/Navigation.tsx"],"sourcesContent":["import { documentNavigate, Link } from \"@k2b/ssr/nav\";\nimport { createSignal, createUniqueId, For, Show } from \"solid-js\";\nimport { IconButton } from \"../actions/Button\";\nimport { Dropdown } from \"../actions/Dropdown\";\nimport { useUiMessages } from \"../intl/messages\";\nimport type { NavigationController, NavigationItem } from \"./navigation-model\";\n\nexport type NavigationProps = {\n navigation: NavigationController;\n label: string;\n /** A host can finish dismissing its menu before the selected operation runs. */\n beforeSelect?: () => boolean | void | Promise<boolean | void>;\n};\n\n/** A named icon is an image screen readers announce; any other icon is decoration. */\nconst iconAccessibility = (label: string | undefined) => (label ? { role: \"img\" as const, \"aria-label\": label } : { \"aria-hidden\": true });\n\nexport default function Navigation(props: NavigationProps) {\n const messages = useUiMessages();\n const [expanded, setExpanded] = createSignal<Record<string, boolean>>({});\n const ready = async () => (await props.beforeSelect?.()) !== false;\n const activate = async (id: string) => {\n if (await ready()) await props.navigation.activate(id);\n };\n const Rows = (rows: { items: readonly NavigationItem[]; disabled?: boolean; labelledBy?: string }) => (\n <ul class=\"k2b-navigation__list\" aria-labelledby={rows.labelledBy}>\n <For each={rows.items.map((item) => item.id)}>\n {(id) => {\n const item = () => rows.items.find((entry) => entry.id === id)!;\n const disabled = () => rows.disabled || item().disabled;\n const headingId = `k2b-navigation-section-${createUniqueId()}`;\n // `expanded` hands disclosure to the item's owner; every other toggle stays local to this renderer.\n const open = () => item().expanded ?? expanded()[id] ?? item().defaultExpanded ?? true;\n const toggle = () => {\n if (item().expanded !== undefined) props.navigation.onExpandedChange?.(id, !open());\n else setExpanded((current) => ({ ...current, [id]: !open() }));\n };\n const content = () => (\n <>\n <Show when={item().icon}>\n <i class={item().icon} {...iconAccessibility(item().iconLabel)} />\n </Show>\n <span class=\"k2b-navigation__copy\">\n <span>{item().label}</span>\n <Show when={item().description}>\n <small>{item().description}</small>\n </Show>\n </span>\n <Show when={item().color}>\n <span class=\"k2b-navigation__color\" style={{ \"background-color\": item().color }} />\n </Show>\n <Show when={item().badge !== undefined}>\n <span class=\"k2b-navigation__badge\">{item().badge}</span>\n </Show>\n {/* `null` keeps the empty slot, so a status that appears later takes no width from the label. */}\n <Show when={item().status !== undefined}>\n <span class=\"k2b-navigation__status\" data-tone={item().status?.tone} title={item().status?.label}>\n <Show when={item().status}>\n {(status) => (\n <>\n <i class={status().icon} aria-hidden=\"true\" />\n <span class=\"k2b-sr-only\">{status().label}</span>\n </>\n )}\n </Show>\n </span>\n </Show>\n </>\n );\n return (\n <Show\n when={item().section}\n fallback={\n <li>\n <div class=\"k2b-navigation__row\" data-active={item().active || undefined}>\n <Show\n when={item().href}\n fallback={\n <button\n type=\"button\"\n class=\"k2b-navigation__control\"\n disabled={disabled()}\n aria-expanded={!item().action ? open() : undefined}\n onClick={() => (item().action ? void activate(id) : toggle())}\n >\n {content()}\n <Show when={!item().action && item().children?.length}>\n <i class={open() ? \"ti ti-chevron-down\" : \"ti ti-chevron-right\"} aria-hidden=\"true\" />\n </Show>\n </button>\n }\n >\n {(href) => (\n <Link\n class=\"k2b-navigation__control\"\n href={href()}\n aria-current={item().active ? \"page\" : undefined}\n aria-disabled={disabled() || undefined}\n tabIndex={disabled() ? -1 : undefined}\n scroll={item().scroll}\n onNavigate={async (event) => {\n if (!(await ready())) return;\n if (item().navigation === \"enhanced\" && props.navigation.onNavigate) await props.navigation.onNavigate(event);\n else event.fallback();\n }}\n onClick={(event) => {\n if (disabled()) {\n event.preventDefault();\n return;\n }\n if (!item().action || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey)\n return;\n // Local opening can fetch before committing navigation, outside a view transition.\n event.preventDefault();\n void activate(id);\n }}\n >\n {content()}\n </Link>\n )}\n </Show>\n <Show when={(item().href || item().action) && item().children?.length}>\n <button\n type=\"button\"\n class=\"k2b-navigation__disclosure\"\n aria-label={item().label}\n aria-expanded={open()}\n disabled={disabled()}\n onClick={toggle}\n >\n <i class={open() ? \"ti ti-chevron-down\" : \"ti ti-chevron-right\"} aria-hidden=\"true\" />\n </button>\n </Show>\n {/* Keyed by id like the rows, so a button keeps its identity and focus when the model updates. */}\n <For each={(item().inlineActions ?? []).map((action) => action.id)}>\n {(actionId) => {\n const action = () => item().inlineActions?.find((entry) => entry.id === actionId);\n return (\n <Show when={action()}>\n {(current) => (\n <IconButton\n class=\"k2b-navigation__inline-action\"\n label={current().label}\n disabled={disabled() || current().disabled}\n onClick={() => void activate(actionId)}\n >\n <i class={current().icon} aria-hidden=\"true\" />\n </IconButton>\n )}\n </Show>\n );\n }}\n </For>\n <Show when={item().actions?.length}>\n <Dropdown.Root\n items={(item().actions ?? []).map((action) => ({\n label: action.label,\n icon: action.icon,\n description: action.description,\n disabled: disabled() || action.disabled,\n action: () => {\n if (action.href)\n void ready().then((allowed) => {\n if (allowed) documentNavigate(action.href!);\n });\n else void activate(action.id);\n },\n }))}\n >\n <Dropdown.Trigger iconOnly label={`${item().label}: ${messages().rowAction}`} variant=\"ghost\">\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </Show>\n </div>\n <Show when={item().children?.length}>\n <div hidden={!open()}>\n <Rows items={item().children ?? []} disabled={disabled()} />\n </div>\n </Show>\n </li>\n }\n >\n <li class=\"k2b-navigation__section\">\n <div class=\"k2b-navigation__heading\" id={headingId}>\n {item().label}\n </div>\n <Rows items={item().children ?? []} disabled={disabled()} labelledBy={headingId} />\n </li>\n </Show>\n );\n }}\n </For>\n </ul>\n );\n return (\n <nav class=\"k2b-navigation\" aria-label={props.label}>\n <Rows items={props.navigation.items()} />\n </nav>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|