@k2b/ui 0.6.2 → 0.7.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/actions/Dropdown.js +2 -0
- package/dist/browser/actions/Dropdown.js.map +1 -1
- package/dist/browser/chat/ChatPrimitives.js +4 -1
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/content/FileView.js +49 -10
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/inputs/AutocompleteSelect.js +1 -1
- package/dist/browser/inputs/AutocompleteSelect.js.map +1 -1
- package/dist/browser/inputs/FileInputs.js.map +1 -1
- package/dist/browser/inputs/MultiSelectInput.js +1 -1
- package/dist/browser/inputs/MultiSelectInput.js.map +1 -1
- package/dist/browser/inputs/Select.js +1 -1
- package/dist/browser/inputs/Select.js.map +1 -1
- package/dist/browser/layout/DetailPanel.js +168 -133
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/ssr/actions/Dropdown.js +2 -0
- package/dist/ssr/actions/Dropdown.js.map +1 -1
- package/dist/ssr/chat/ChatPrimitives.js +3 -1
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/content/FileView.js +49 -10
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/inputs/AutocompleteSelect.js +1 -1
- package/dist/ssr/inputs/AutocompleteSelect.js.map +1 -1
- package/dist/ssr/inputs/FileInputs.js.map +1 -1
- package/dist/ssr/inputs/MultiSelectInput.js +1 -1
- package/dist/ssr/inputs/MultiSelectInput.js.map +1 -1
- package/dist/ssr/inputs/Select.js +1 -1
- package/dist/ssr/inputs/Select.js.map +1 -1
- package/dist/ssr/layout/DetailPanel.js +68 -38
- package/dist/ssr/layout/DetailPanel.js.map +1 -1
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/content/FileView.d.ts +1 -0
- package/dist/types/inputs/FileInputs.d.ts +1 -0
- package/dist/types/layout/DetailPanel.d.ts +10 -0
- package/dist/types/layout/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -28,21 +28,25 @@ var _tmpl$ = /*#__PURE__*/_$template(`<div class=k2b-detail-panel__header-leadin
|
|
|
28
28
|
_tmpl$14 = /*#__PURE__*/_$template(`<span class=k2b-detail-panel__action-copy><span class=k2b-detail-panel__action-title></span><!$><!/>`),
|
|
29
29
|
_tmpl$15 = /*#__PURE__*/_$template(`<span class=k2b-detail-panel__action-trailing>`),
|
|
30
30
|
_tmpl$16 = /*#__PURE__*/_$template(`<i class="ti ti-dots"aria-hidden=true>`),
|
|
31
|
-
_tmpl$17 = /*#__PURE__*/_$template(`<div class=k2b-detail-panel__action-row
|
|
32
|
-
_tmpl$18 = /*#__PURE__*/_$template(`<
|
|
33
|
-
_tmpl$19 = /*#__PURE__*/_$template(`<span class=k2b-detail-panel__section-
|
|
34
|
-
_tmpl$20 = /*#__PURE__*/_$template(`<span class=k2b-detail-panel__section-
|
|
35
|
-
_tmpl$21 = /*#__PURE__*/_$template(`<
|
|
36
|
-
_tmpl$22 = /*#__PURE__*/_$template(`<
|
|
37
|
-
_tmpl$23 = /*#__PURE__*/_$template(`<
|
|
38
|
-
_tmpl$24 = /*#__PURE__*/_$template(`<
|
|
39
|
-
_tmpl$25 = /*#__PURE__*/_$template(`<div class=k2b-detail-panel__section-
|
|
40
|
-
_tmpl$26 = /*#__PURE__*/_$template(`<div class=k2b-detail-panel__section-
|
|
41
|
-
_tmpl$27 = /*#__PURE__*/_$template(`<
|
|
31
|
+
_tmpl$17 = /*#__PURE__*/_$template(`<div class=k2b-detail-panel__action-row><!$><!/><!$><!/><!$><!/>`),
|
|
32
|
+
_tmpl$18 = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
|
|
33
|
+
_tmpl$19 = /*#__PURE__*/_$template(`<span class=k2b-detail-panel__section-description>`),
|
|
34
|
+
_tmpl$20 = /*#__PURE__*/_$template(`<span class=k2b-detail-panel__section-copy><span class=k2b-detail-panel__section-title></span><!$><!/>`),
|
|
35
|
+
_tmpl$21 = /*#__PURE__*/_$template(`<span class=k2b-detail-panel__section-meta>`),
|
|
36
|
+
_tmpl$22 = /*#__PURE__*/_$template(`<i class="ti ti-chevron-down"aria-hidden=true>`),
|
|
37
|
+
_tmpl$23 = /*#__PURE__*/_$template(`<div class=k2b-detail-panel__section-meta>`),
|
|
38
|
+
_tmpl$24 = /*#__PURE__*/_$template(`<i class="ti ti-chevron-up"aria-hidden=true>`),
|
|
39
|
+
_tmpl$25 = /*#__PURE__*/_$template(`<section><div></div><div><header class=k2b-detail-panel__section-header><!$><!/><div class=k2b-detail-panel__section-copy><h3></h3><!$><!/></div><!$><!/><!$><!/></header></div><div class=k2b-detail-panel__section-body>`),
|
|
40
|
+
_tmpl$26 = /*#__PURE__*/_$template(`<div class=k2b-detail-panel__section-actions>`),
|
|
41
|
+
_tmpl$27 = /*#__PURE__*/_$template(`<div class=k2b-detail-panel__section-body>`),
|
|
42
|
+
_tmpl$28 = /*#__PURE__*/_$template(`<section><header class=k2b-detail-panel__section-header><!$><!/><div class=k2b-detail-panel__section-copy><h3></h3><!$><!/></div><!$><!/><!$><!/></header><!$><!/>`);
|
|
42
43
|
import { children, createEffect, createSignal, createUniqueId, Show, splitProps } from "solid-js";
|
|
43
|
-
import { Button, ButtonLink } from "../actions/Button";
|
|
44
|
+
import { Button, ButtonLink, IconButton } from "../actions/Button";
|
|
44
45
|
import { Dropdown } from "../actions/Dropdown";
|
|
45
46
|
import { createScrollFade } from "./scroll-fade";
|
|
47
|
+
|
|
48
|
+
/** One direct secondary command, rendered as a sibling icon button at the end of the row. */
|
|
49
|
+
|
|
46
50
|
const classNames = (base, extra) => extra ? `${base} ${extra}` : base;
|
|
47
51
|
const DetailPanelHeader = props => (() => {
|
|
48
52
|
var _el$ = _$getNextElement(_tmpl$7),
|
|
@@ -260,7 +264,7 @@ const DetailPanelActionContent = props => [_$createComponent(Show, {
|
|
|
260
264
|
}
|
|
261
265
|
})];
|
|
262
266
|
const DetailPanelAction = props => {
|
|
263
|
-
const [local, rest] = splitProps(props, ["class", "description", "href", "leading", "menuItems", "menuLabel", "title", "trailing"]);
|
|
267
|
+
const [local, rest] = splitProps(props, ["class", "description", "href", "leading", "menuItems", "menuLabel", "secondaryAction", "title", "trailing"]);
|
|
264
268
|
const className = classNames("k2b-detail-panel__action", local.class);
|
|
265
269
|
const content = () => _$createComponent(DetailPanelActionContent, {
|
|
266
270
|
get title() {
|
|
@@ -306,7 +310,7 @@ const DetailPanelAction = props => {
|
|
|
306
310
|
});
|
|
307
311
|
return _$createComponent(Show, {
|
|
308
312
|
get when() {
|
|
309
|
-
return local.menuItems?.length;
|
|
313
|
+
return local.secondaryAction || local.menuItems?.length;
|
|
310
314
|
},
|
|
311
315
|
get fallback() {
|
|
312
316
|
return action();
|
|
@@ -316,32 +320,63 @@ const DetailPanelAction = props => {
|
|
|
316
320
|
_el$45 = _el$43.firstChild,
|
|
317
321
|
[_el$46, _co$0] = _$getNextMarker(_el$45.nextSibling),
|
|
318
322
|
_el$47 = _el$46.nextSibling,
|
|
319
|
-
[_el$48, _co$1] = _$getNextMarker(_el$47.nextSibling)
|
|
323
|
+
[_el$48, _co$1] = _$getNextMarker(_el$47.nextSibling),
|
|
324
|
+
_el$49 = _el$48.nextSibling,
|
|
325
|
+
[_el$50, _co$10] = _$getNextMarker(_el$49.nextSibling);
|
|
320
326
|
_$insert(_el$43, action, _el$46, _co$0);
|
|
321
|
-
_$insert(_el$43, _$createComponent(
|
|
322
|
-
get
|
|
323
|
-
return local.
|
|
327
|
+
_$insert(_el$43, _$createComponent(Show, {
|
|
328
|
+
get when() {
|
|
329
|
+
return local.secondaryAction;
|
|
324
330
|
},
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
331
|
+
children: secondary => _$createComponent(IconButton, {
|
|
332
|
+
size: "sm",
|
|
333
|
+
variant: "ghost",
|
|
334
|
+
get label() {
|
|
335
|
+
return secondary().label;
|
|
336
|
+
},
|
|
337
|
+
"class": "k2b-detail-panel__action-secondary",
|
|
338
|
+
get ["data-tone"]() {
|
|
339
|
+
return secondary().variant;
|
|
340
|
+
},
|
|
341
|
+
onClick: () => secondary().onClick(),
|
|
342
|
+
get children() {
|
|
343
|
+
var _el$51 = _$getNextElement(_tmpl$18);
|
|
344
|
+
_$effect(() => _$className(_el$51, secondary().icon));
|
|
345
|
+
return _el$51;
|
|
346
|
+
}
|
|
347
|
+
})
|
|
348
|
+
}), _el$48, _co$1);
|
|
349
|
+
_$insert(_el$43, _$createComponent(Show, {
|
|
350
|
+
get when() {
|
|
351
|
+
return local.menuItems?.length;
|
|
328
352
|
},
|
|
329
|
-
"class": "k2b-detail-panel__action-menu",
|
|
330
353
|
get children() {
|
|
331
|
-
return _$createComponent(Dropdown.
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
354
|
+
return _$createComponent(Dropdown.Root, {
|
|
355
|
+
get items() {
|
|
356
|
+
return local.menuItems ?? [];
|
|
357
|
+
},
|
|
358
|
+
align: "end",
|
|
335
359
|
get label() {
|
|
336
360
|
return local.menuLabel;
|
|
337
361
|
},
|
|
338
|
-
"class": "k2b-detail-panel__action-menu
|
|
362
|
+
"class": "k2b-detail-panel__action-menu",
|
|
339
363
|
get children() {
|
|
340
|
-
return _$
|
|
364
|
+
return _$createComponent(Dropdown.Trigger, {
|
|
365
|
+
iconOnly: true,
|
|
366
|
+
size: "sm",
|
|
367
|
+
variant: "ghost",
|
|
368
|
+
get label() {
|
|
369
|
+
return local.menuLabel;
|
|
370
|
+
},
|
|
371
|
+
"class": "k2b-detail-panel__action-menu-trigger",
|
|
372
|
+
get children() {
|
|
373
|
+
return _$getNextElement(_tmpl$16);
|
|
374
|
+
}
|
|
375
|
+
});
|
|
341
376
|
}
|
|
342
377
|
});
|
|
343
378
|
}
|
|
344
|
-
}), _el$
|
|
379
|
+
}), _el$50, _co$10);
|
|
345
380
|
return _el$43;
|
|
346
381
|
}
|
|
347
382
|
});
|
|
@@ -379,92 +414,92 @@ const DetailPanelSection = props => {
|
|
|
379
414
|
},
|
|
380
415
|
get fallback() {
|
|
381
416
|
return (() => {
|
|
382
|
-
var _el$
|
|
383
|
-
_el$
|
|
384
|
-
_el$
|
|
385
|
-
[_el$
|
|
386
|
-
_el$
|
|
387
|
-
_el$
|
|
388
|
-
_el$
|
|
389
|
-
[_el$
|
|
390
|
-
_el$
|
|
391
|
-
[_el$
|
|
392
|
-
_el$
|
|
393
|
-
[_el$
|
|
394
|
-
_el$
|
|
395
|
-
[_el$
|
|
396
|
-
_$setAttribute(_el$
|
|
397
|
-
_$insert(_el$
|
|
417
|
+
var _el$77 = _$getNextElement(_tmpl$28),
|
|
418
|
+
_el$78 = _el$77.firstChild,
|
|
419
|
+
_el$86 = _el$78.firstChild,
|
|
420
|
+
[_el$87, _co$17] = _$getNextMarker(_el$86.nextSibling),
|
|
421
|
+
_el$79 = _el$87.nextSibling,
|
|
422
|
+
_el$80 = _el$79.firstChild,
|
|
423
|
+
_el$82 = _el$80.nextSibling,
|
|
424
|
+
[_el$83, _co$16] = _$getNextMarker(_el$82.nextSibling),
|
|
425
|
+
_el$88 = _el$79.nextSibling,
|
|
426
|
+
[_el$89, _co$18] = _$getNextMarker(_el$88.nextSibling),
|
|
427
|
+
_el$90 = _el$89.nextSibling,
|
|
428
|
+
[_el$91, _co$19] = _$getNextMarker(_el$90.nextSibling),
|
|
429
|
+
_el$93 = _el$78.nextSibling,
|
|
430
|
+
[_el$94, _co$20] = _$getNextMarker(_el$93.nextSibling);
|
|
431
|
+
_$setAttribute(_el$77, "aria-labelledby", headingId);
|
|
432
|
+
_$insert(_el$78, _$createComponent(DetailPanelSectionIcon, {
|
|
398
433
|
get icon() {
|
|
399
434
|
return props.icon;
|
|
400
435
|
},
|
|
401
436
|
get tone() {
|
|
402
437
|
return props.tone;
|
|
403
438
|
}
|
|
404
|
-
}), _el$
|
|
405
|
-
_$setAttribute(_el$
|
|
406
|
-
_$insert(_el$
|
|
407
|
-
_$insert(_el$
|
|
439
|
+
}), _el$87, _co$17);
|
|
440
|
+
_$setAttribute(_el$80, "id", headingId);
|
|
441
|
+
_$insert(_el$80, () => props.title);
|
|
442
|
+
_$insert(_el$79, _$createComponent(Show, {
|
|
408
443
|
get when() {
|
|
409
444
|
return props.description;
|
|
410
445
|
},
|
|
411
446
|
get children() {
|
|
412
|
-
var _el$
|
|
413
|
-
_$insert(_el$
|
|
414
|
-
return _el$
|
|
447
|
+
var _el$81 = _$getNextElement(_tmpl$2);
|
|
448
|
+
_$insert(_el$81, () => props.description);
|
|
449
|
+
return _el$81;
|
|
415
450
|
}
|
|
416
|
-
}), _el$
|
|
417
|
-
_$insert(_el$
|
|
451
|
+
}), _el$83, _co$16);
|
|
452
|
+
_$insert(_el$78, _$createComponent(Show, {
|
|
418
453
|
get when() {
|
|
419
454
|
return props.meta;
|
|
420
455
|
},
|
|
421
456
|
get children() {
|
|
422
|
-
var _el$
|
|
423
|
-
_$insert(_el$
|
|
424
|
-
return _el$
|
|
457
|
+
var _el$84 = _$getNextElement(_tmpl$23);
|
|
458
|
+
_$insert(_el$84, () => props.meta);
|
|
459
|
+
return _el$84;
|
|
425
460
|
}
|
|
426
|
-
}), _el$
|
|
427
|
-
_$insert(_el$
|
|
461
|
+
}), _el$89, _co$18);
|
|
462
|
+
_$insert(_el$78, _$createComponent(Show, {
|
|
428
463
|
get when() {
|
|
429
464
|
return props.actions;
|
|
430
465
|
},
|
|
431
466
|
get children() {
|
|
432
|
-
var _el$
|
|
433
|
-
_$insert(_el$
|
|
434
|
-
return _el$
|
|
467
|
+
var _el$85 = _$getNextElement(_tmpl$26);
|
|
468
|
+
_$insert(_el$85, () => props.actions);
|
|
469
|
+
return _el$85;
|
|
435
470
|
}
|
|
436
|
-
}), _el$
|
|
437
|
-
_$insert(_el$
|
|
471
|
+
}), _el$91, _co$19);
|
|
472
|
+
_$insert(_el$77, _$createComponent(Show, {
|
|
438
473
|
get when() {
|
|
439
474
|
return resolved();
|
|
440
475
|
},
|
|
441
476
|
get children() {
|
|
442
|
-
var _el$
|
|
443
|
-
_$insert(_el$
|
|
444
|
-
return _el$
|
|
477
|
+
var _el$92 = _$getNextElement(_tmpl$27);
|
|
478
|
+
_$insert(_el$92, resolved);
|
|
479
|
+
return _el$92;
|
|
445
480
|
}
|
|
446
|
-
}), _el$
|
|
447
|
-
_$effect(() => _$className(_el$
|
|
448
|
-
return _el$
|
|
481
|
+
}), _el$94, _co$20);
|
|
482
|
+
_$effect(() => _$className(_el$77, className()));
|
|
483
|
+
return _el$77;
|
|
449
484
|
})();
|
|
450
485
|
},
|
|
451
486
|
get children() {
|
|
452
|
-
var _el$
|
|
453
|
-
_el$
|
|
454
|
-
_el$
|
|
455
|
-
_el$
|
|
456
|
-
_el$
|
|
457
|
-
[_el$
|
|
458
|
-
_el$
|
|
459
|
-
_el$
|
|
460
|
-
_el$
|
|
461
|
-
[_el$
|
|
462
|
-
_el$
|
|
463
|
-
[_el$
|
|
464
|
-
_el$
|
|
465
|
-
[_el$
|
|
466
|
-
_el$
|
|
467
|
-
_$insert(_el$
|
|
487
|
+
var _el$52 = _$getNextElement(_tmpl$25),
|
|
488
|
+
_el$53 = _el$52.firstChild,
|
|
489
|
+
_el$61 = _el$53.nextSibling,
|
|
490
|
+
_el$62 = _el$61.firstChild,
|
|
491
|
+
_el$70 = _el$62.firstChild,
|
|
492
|
+
[_el$71, _co$13] = _$getNextMarker(_el$70.nextSibling),
|
|
493
|
+
_el$63 = _el$71.nextSibling,
|
|
494
|
+
_el$64 = _el$63.firstChild,
|
|
495
|
+
_el$66 = _el$64.nextSibling,
|
|
496
|
+
[_el$67, _co$12] = _$getNextMarker(_el$66.nextSibling),
|
|
497
|
+
_el$72 = _el$63.nextSibling,
|
|
498
|
+
[_el$73, _co$14] = _$getNextMarker(_el$72.nextSibling),
|
|
499
|
+
_el$74 = _el$73.nextSibling,
|
|
500
|
+
[_el$75, _co$15] = _$getNextMarker(_el$74.nextSibling),
|
|
501
|
+
_el$76 = _el$61.nextSibling;
|
|
502
|
+
_$insert(_el$53, _$createComponent(Button, {
|
|
468
503
|
ref(r$) {
|
|
469
504
|
var _ref$2 = expand;
|
|
470
505
|
typeof _ref$2 === "function" ? _ref$2(r$) : expand = r$;
|
|
@@ -486,66 +521,66 @@ const DetailPanelSection = props => {
|
|
|
486
521
|
return props.tone;
|
|
487
522
|
}
|
|
488
523
|
}), (() => {
|
|
489
|
-
var _el$
|
|
490
|
-
_el$
|
|
491
|
-
_el$
|
|
492
|
-
[_el$
|
|
493
|
-
_$setAttribute(_el$
|
|
494
|
-
_$insert(_el$
|
|
495
|
-
_$insert(_el$
|
|
524
|
+
var _el$54 = _$getNextElement(_tmpl$20),
|
|
525
|
+
_el$55 = _el$54.firstChild,
|
|
526
|
+
_el$57 = _el$55.nextSibling,
|
|
527
|
+
[_el$58, _co$11] = _$getNextMarker(_el$57.nextSibling);
|
|
528
|
+
_$setAttribute(_el$55, "id", `${headingId}-closed`);
|
|
529
|
+
_$insert(_el$55, () => props.title);
|
|
530
|
+
_$insert(_el$54, _$createComponent(Show, {
|
|
496
531
|
get when() {
|
|
497
532
|
return props.description;
|
|
498
533
|
},
|
|
499
534
|
get children() {
|
|
500
|
-
var _el$
|
|
501
|
-
_$insert(_el$
|
|
502
|
-
return _el$
|
|
535
|
+
var _el$56 = _$getNextElement(_tmpl$19);
|
|
536
|
+
_$insert(_el$56, () => props.description);
|
|
537
|
+
return _el$56;
|
|
503
538
|
}
|
|
504
|
-
}), _el$
|
|
505
|
-
return _el$
|
|
539
|
+
}), _el$58, _co$11);
|
|
540
|
+
return _el$54;
|
|
506
541
|
})(), _$createComponent(Show, {
|
|
507
542
|
get when() {
|
|
508
543
|
return props.meta;
|
|
509
544
|
},
|
|
510
545
|
get children() {
|
|
511
|
-
var _el$
|
|
512
|
-
_$insert(_el$
|
|
513
|
-
return _el$
|
|
546
|
+
var _el$59 = _$getNextElement(_tmpl$21);
|
|
547
|
+
_$insert(_el$59, () => props.meta);
|
|
548
|
+
return _el$59;
|
|
514
549
|
}
|
|
515
|
-
}), _$getNextElement(_tmpl$
|
|
550
|
+
}), _$getNextElement(_tmpl$22)];
|
|
516
551
|
}
|
|
517
552
|
}));
|
|
518
|
-
_$insert(_el$
|
|
553
|
+
_$insert(_el$62, _$createComponent(DetailPanelSectionIcon, {
|
|
519
554
|
get icon() {
|
|
520
555
|
return props.icon;
|
|
521
556
|
},
|
|
522
557
|
get tone() {
|
|
523
558
|
return props.tone;
|
|
524
559
|
}
|
|
525
|
-
}), _el$
|
|
526
|
-
_$setAttribute(_el$
|
|
527
|
-
_$insert(_el$
|
|
528
|
-
_$insert(_el$
|
|
560
|
+
}), _el$71, _co$13);
|
|
561
|
+
_$setAttribute(_el$64, "id", headingId);
|
|
562
|
+
_$insert(_el$64, () => props.title);
|
|
563
|
+
_$insert(_el$63, _$createComponent(Show, {
|
|
529
564
|
get when() {
|
|
530
565
|
return props.description;
|
|
531
566
|
},
|
|
532
567
|
get children() {
|
|
533
|
-
var _el$
|
|
534
|
-
_$insert(_el$
|
|
535
|
-
return _el$
|
|
568
|
+
var _el$65 = _$getNextElement(_tmpl$2);
|
|
569
|
+
_$insert(_el$65, () => props.description);
|
|
570
|
+
return _el$65;
|
|
536
571
|
}
|
|
537
|
-
}), _el$
|
|
538
|
-
_$insert(_el$
|
|
572
|
+
}), _el$67, _co$12);
|
|
573
|
+
_$insert(_el$62, _$createComponent(Show, {
|
|
539
574
|
get when() {
|
|
540
575
|
return props.meta;
|
|
541
576
|
},
|
|
542
577
|
get children() {
|
|
543
|
-
var _el$
|
|
544
|
-
_$insert(_el$
|
|
545
|
-
return _el$
|
|
578
|
+
var _el$68 = _$getNextElement(_tmpl$23);
|
|
579
|
+
_$insert(_el$68, () => props.meta);
|
|
580
|
+
return _el$68;
|
|
546
581
|
}
|
|
547
|
-
}), _el$
|
|
548
|
-
_$insert(_el$
|
|
582
|
+
}), _el$73, _co$14);
|
|
583
|
+
_$insert(_el$62, _$createComponent(Button, {
|
|
549
584
|
ref(r$) {
|
|
550
585
|
var _ref$3 = collapse;
|
|
551
586
|
typeof _ref$3 === "function" ? _ref$3(r$) : collapse = r$;
|
|
@@ -560,13 +595,13 @@ const DetailPanelSection = props => {
|
|
|
560
595
|
"aria-controls": bodyId,
|
|
561
596
|
onClick: () => toggle(false),
|
|
562
597
|
get children() {
|
|
563
|
-
return _$getNextElement(_tmpl$
|
|
598
|
+
return _$getNextElement(_tmpl$24);
|
|
564
599
|
}
|
|
565
|
-
}), _el$
|
|
600
|
+
}), _el$75, _co$15);
|
|
566
601
|
var _ref$4 = body;
|
|
567
|
-
typeof _ref$4 === "function" ? _$use(_ref$4, _el$
|
|
568
|
-
_$setAttribute(_el$
|
|
569
|
-
_$insert(_el$
|
|
602
|
+
typeof _ref$4 === "function" ? _$use(_ref$4, _el$76) : body = _el$76;
|
|
603
|
+
_$setAttribute(_el$76, "id", bodyId);
|
|
604
|
+
_$insert(_el$76, () => props.children);
|
|
570
605
|
_$effect(_p$ => {
|
|
571
606
|
var _v$8 = className(),
|
|
572
607
|
_v$9 = open() ? headingId : `${headingId}-closed`,
|
|
@@ -574,12 +609,12 @@ const DetailPanelSection = props => {
|
|
|
574
609
|
_v$1 = open(),
|
|
575
610
|
_v$10 = !open(),
|
|
576
611
|
_v$11 = !open();
|
|
577
|
-
_v$8 !== _p$.e && _$className(_el$
|
|
578
|
-
_v$9 !== _p$.t && _$setAttribute(_el$
|
|
579
|
-
_v$0 !== _p$.a && _$setAttribute(_el$
|
|
580
|
-
_v$1 !== _p$.o && _$setProperty(_el$
|
|
581
|
-
_v$10 !== _p$.i && _$setProperty(_el$
|
|
582
|
-
_v$11 !== _p$.n && _$setProperty(_el$
|
|
612
|
+
_v$8 !== _p$.e && _$className(_el$52, _p$.e = _v$8);
|
|
613
|
+
_v$9 !== _p$.t && _$setAttribute(_el$52, "aria-labelledby", _p$.t = _v$9);
|
|
614
|
+
_v$0 !== _p$.a && _$setAttribute(_el$52, "data-open", _p$.a = _v$0);
|
|
615
|
+
_v$1 !== _p$.o && _$setProperty(_el$53, "hidden", _p$.o = _v$1);
|
|
616
|
+
_v$10 !== _p$.i && _$setProperty(_el$61, "hidden", _p$.i = _v$10);
|
|
617
|
+
_v$11 !== _p$.n && _$setProperty(_el$76, "hidden", _p$.n = _v$11);
|
|
583
618
|
return _p$;
|
|
584
619
|
}, {
|
|
585
620
|
e: undefined,
|
|
@@ -589,15 +624,15 @@ const DetailPanelSection = props => {
|
|
|
589
624
|
i: undefined,
|
|
590
625
|
n: undefined
|
|
591
626
|
});
|
|
592
|
-
return _el$
|
|
627
|
+
return _el$52;
|
|
593
628
|
}
|
|
594
629
|
});
|
|
595
630
|
};
|
|
596
631
|
const DetailPanel = props => (() => {
|
|
597
|
-
var _el$
|
|
598
|
-
_$insert(_el$
|
|
599
|
-
_$effect(() => _$className(_el$
|
|
600
|
-
return _el$
|
|
632
|
+
var _el$95 = _$getNextElement(_tmpl$9);
|
|
633
|
+
_$insert(_el$95, () => props.children);
|
|
634
|
+
_$effect(() => _$className(_el$95, classNames("k2b-detail-panel", props.class)));
|
|
635
|
+
return _el$95;
|
|
601
636
|
})();
|
|
602
637
|
DetailPanel.Header = DetailPanelHeader;
|
|
603
638
|
DetailPanel.Body = DetailPanelBody;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["layout/DetailPanel.tsx"],"sourcesContent":["import { children, createEffect, createSignal, createUniqueId, type JSX, Show, splitProps } from \"solid-js\";\nimport { Button, ButtonLink, type ButtonLinkProps, type ButtonProps } from \"../actions/Button\";\nimport { Dropdown, type DropdownItem } from \"../actions/Dropdown\";\nimport { createScrollFade } from \"./scroll-fade\";\n\nexport type DetailPanelProps = {\n children: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelHeaderBaseProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n meta?: JSX.Element;\n actions?: JSX.Element;\n primaryActions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelHeaderProps = DetailPanelHeaderBaseProps &\n (\n | {\n leading?: JSX.Element;\n icon?: never;\n }\n | {\n leading?: never;\n icon?: string;\n }\n );\n\nexport type DetailPanelBodyProps = {\n scrollFade?: boolean;\n children: JSX.Element;\n scrollPreserveKey?: string;\n class?: string;\n};\n\nexport type DetailPanelSummaryProps = {\n title: JSX.Element;\n children: JSX.Element;\n actions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelGroupProps = {\n children: JSX.Element;\n label?: string;\n class?: string;\n};\n\nexport type DetailPanelTone = \"accent\" | \"neutral\" | \"success\" | \"warning\" | \"danger\";\n\ntype DetailPanelSectionBaseProps = {\n title: JSX.Element;\n icon?: string;\n tone?: DetailPanelTone;\n description?: JSX.Element;\n meta?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionBaseProps = {\n title: JSX.Element;\n description?: JSX.Element;\n leading?: JSX.Element;\n trailing?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionMenuProps =\n | {\n menuItems?: never;\n menuLabel?: never;\n }\n | {\n menuItems: readonly DropdownItem[];\n menuLabel: string;\n };\n\nexport type DetailPanelActionLinkProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonLinkProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href: string;\n };\n\nexport type DetailPanelActionButtonProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href?: never;\n };\n\nexport type DetailPanelActionProps = DetailPanelActionLinkProps | DetailPanelActionButtonProps;\n\nexport type DetailPanelSectionProps = DetailPanelSectionBaseProps &\n (\n | {\n children?: JSX.Element;\n actions?: JSX.Element;\n collapsible?: false;\n defaultOpen?: never;\n open?: never;\n onOpenChange?: never;\n disabled?: never;\n }\n | {\n children: JSX.Element;\n actions?: never;\n collapsible: true;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n }\n );\n\ntype DetailPanelComponent = ((props: DetailPanelProps) => JSX.Element) & {\n Header: (props: DetailPanelHeaderProps) => JSX.Element;\n Body: (props: DetailPanelBodyProps) => JSX.Element;\n Summary: (props: DetailPanelSummaryProps) => JSX.Element;\n Group: (props: DetailPanelGroupProps) => JSX.Element;\n Section: (props: DetailPanelSectionProps) => JSX.Element;\n Action: (props: DetailPanelActionProps) => JSX.Element;\n};\n\nconst classNames = (base: string, extra?: string): string => (extra ? `${base} ${extra}` : base);\n\nconst DetailPanelHeader = (props: DetailPanelHeaderProps): JSX.Element => (\n <header class={classNames(\"k2b-detail-panel__header\", props.class)}>\n <div class=\"k2b-detail-panel__header-main\">\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__header-icon\" aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n <Show when={props.leading}>\n <div class=\"k2b-detail-panel__header-leading\">{props.leading}</div>\n </Show>\n <div class=\"k2b-detail-panel__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle || props.meta}>\n <div class=\"k2b-detail-panel__supporting\">\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__meta\">{props.meta}</div>\n </Show>\n </div>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__actions\">{props.actions}</div>\n </Show>\n </div>\n <Show when={props.primaryActions}>\n <div class=\"k2b-detail-panel__primary-actions\">{props.primaryActions}</div>\n </Show>\n </header>\n);\n\nconst DetailPanelBody = (props: DetailPanelBodyProps): JSX.Element => {\n let body!: HTMLDivElement;\n createScrollFade(\n () => body,\n () => props.scrollFade !== false,\n );\n return (\n <div\n ref={body}\n class={classNames(\"k2b-detail-panel__body\", props.class)}\n data-scroll-fade-mode={props.scrollFade !== false ? \"both\" : undefined}\n data-scroll-preserve={props.scrollPreserveKey}\n >\n {props.children}\n </div>\n );\n};\n\nconst DetailPanelSummary = (props: DetailPanelSummaryProps): JSX.Element => {\n const headingId = `k2b-detail-panel-summary-${createUniqueId()}`;\n\n return (\n <section class={classNames(\"k2b-detail-panel__summary\", props.class)} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__summary-header\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__summary-actions\">{props.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-detail-panel__summary-body\">{props.children}</div>\n </section>\n );\n};\n\nconst DetailPanelGroup = (props: DetailPanelGroupProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__group\", props.class)} role=\"group\" aria-label={props.label}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSectionIcon = (props: Pick<DetailPanelSectionBaseProps, \"icon\" | \"tone\">): JSX.Element => (\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__section-icon\" data-tone={props.tone ?? \"neutral\"} aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n);\n\nconst DetailPanelActionContent = (props: DetailPanelActionBaseProps): JSX.Element => (\n <>\n <Show when={props.leading}>\n <span class=\"k2b-detail-panel__action-leading\">{props.leading}</span>\n </Show>\n <span class=\"k2b-detail-panel__action-copy\">\n <span class=\"k2b-detail-panel__action-title\">{props.title}</span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__action-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.trailing}>\n <span class=\"k2b-detail-panel__action-trailing\">{props.trailing}</span>\n </Show>\n </>\n);\n\nconst DetailPanelAction = (props: DetailPanelActionProps): JSX.Element => {\n const [local, rest] = splitProps(props, [\"class\", \"description\", \"href\", \"leading\", \"menuItems\", \"menuLabel\", \"title\", \"trailing\"]);\n const className = classNames(\"k2b-detail-panel__action\", local.class);\n const content = () => (\n <DetailPanelActionContent title={local.title} description={local.description} leading={local.leading} trailing={local.trailing} />\n );\n\n const action = () => (\n <Show\n when={local.href !== undefined}\n fallback={\n <Button\n {...(rest as Omit<DetailPanelActionButtonProps, keyof DetailPanelActionBaseProps>)}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </Button>\n }\n >\n <ButtonLink\n {...(rest as Omit<DetailPanelActionLinkProps, keyof DetailPanelActionBaseProps | \"href\">)}\n href={local.href as string}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </ButtonLink>\n </Show>\n );\n\n return (\n <Show when={local.menuItems?.length} fallback={action()}>\n <div class=\"k2b-detail-panel__action-row\">\n {action()}\n <Dropdown.Root items={local.menuItems ?? []} align=\"end\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu\">\n <Dropdown.Trigger iconOnly size=\"sm\" variant=\"ghost\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu-trigger\">\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </div>\n </Show>\n );\n};\n\nconst DetailPanelSection = (props: DetailPanelSectionProps): JSX.Element => {\n const headingId = `k2b-detail-panel-section-${createUniqueId()}`;\n const bodyId = `${headingId}-body`;\n const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? false);\n const open = () => props.open ?? internalOpen();\n let expand: HTMLButtonElement | undefined;\n let collapse: HTMLButtonElement | undefined;\n let body: HTMLDivElement | undefined;\n const toggle = (next: boolean) => {\n if (props.disabled) return;\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n createEffect(() => {\n const expanded = open();\n // Restore focus only when its current control becomes hidden, including\n // a parent-controlled collapse while focus is inside an editor.\n queueMicrotask(() => {\n if (expanded !== open()) return;\n const active = expand?.ownerDocument.activeElement;\n if (expanded && active === expand) collapse?.focus();\n if (!expanded && (active === collapse || (active && body?.contains(active)))) expand?.focus();\n });\n });\n const className = () => classNames(\"k2b-detail-panel__section\", props.class);\n // Resolve once: reading `props.children` twice would instantiate the section body twice.\n const resolved = children(() => props.children);\n\n return (\n <Show\n when={props.collapsible}\n fallback={\n <section class={className()} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__section-actions\">{props.actions}</div>\n </Show>\n </header>\n <Show when={resolved()}>\n <div class=\"k2b-detail-panel__section-body\">{resolved()}</div>\n </Show>\n </section>\n }\n >\n <section class={className()} aria-labelledby={open() ? headingId : `${headingId}-closed`} data-open={open()}>\n <div hidden={open()}>\n <Button\n ref={expand}\n variant=\"ghost\"\n class=\"k2b-detail-panel__section-summary\"\n disabled={props.disabled}\n aria-expanded={false}\n aria-controls={bodyId}\n onClick={() => toggle(true)}\n >\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <span class=\"k2b-detail-panel__section-copy\">\n <span id={`${headingId}-closed`} class=\"k2b-detail-panel__section-title\">\n {props.title}\n </span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__section-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.meta}>\n <span class=\"k2b-detail-panel__section-meta\">{props.meta}</span>\n </Show>\n <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />\n </Button>\n </div>\n <div hidden={!open()}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Button\n ref={collapse}\n variant=\"ghost\"\n size=\"sm\"\n disabled={props.disabled}\n aria-labelledby={headingId}\n aria-expanded={true}\n aria-controls={bodyId}\n onClick={() => toggle(false)}\n >\n <i class=\"ti ti-chevron-up\" aria-hidden=\"true\" />\n </Button>\n </header>\n </div>\n <div ref={body} id={bodyId} hidden={!open()} class=\"k2b-detail-panel__section-body\">\n {props.children}\n </div>\n </section>\n </Show>\n );\n};\n\nconst DetailPanel = ((props: DetailPanelProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel\", props.class)}>{props.children}</div>\n)) as DetailPanelComponent;\n\nDetailPanel.Header = DetailPanelHeader;\nDetailPanel.Body = DetailPanelBody;\nDetailPanel.Summary = DetailPanelSummary;\nDetailPanel.Group = DetailPanelGroup;\nDetailPanel.Section = DetailPanelSection;\nDetailPanel.Action = DetailPanelAction;\n\nexport default DetailPanel;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["layout/DetailPanel.tsx"],"sourcesContent":["import { children, createEffect, createSignal, createUniqueId, type JSX, Show, splitProps } from \"solid-js\";\nimport { Button, ButtonLink, type ButtonLinkProps, type ButtonProps, IconButton } from \"../actions/Button\";\nimport { Dropdown, type DropdownItem } from \"../actions/Dropdown\";\nimport { createScrollFade } from \"./scroll-fade\";\n\nexport type DetailPanelProps = {\n children: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelHeaderBaseProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n meta?: JSX.Element;\n actions?: JSX.Element;\n primaryActions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelHeaderProps = DetailPanelHeaderBaseProps &\n (\n | {\n leading?: JSX.Element;\n icon?: never;\n }\n | {\n leading?: never;\n icon?: string;\n }\n );\n\nexport type DetailPanelBodyProps = {\n scrollFade?: boolean;\n children: JSX.Element;\n scrollPreserveKey?: string;\n class?: string;\n};\n\nexport type DetailPanelSummaryProps = {\n title: JSX.Element;\n children: JSX.Element;\n actions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelGroupProps = {\n children: JSX.Element;\n label?: string;\n class?: string;\n};\n\nexport type DetailPanelTone = \"accent\" | \"neutral\" | \"success\" | \"warning\" | \"danger\";\n\ntype DetailPanelSectionBaseProps = {\n title: JSX.Element;\n icon?: string;\n tone?: DetailPanelTone;\n description?: JSX.Element;\n meta?: JSX.Element;\n class?: string;\n};\n\n/** One direct secondary command, rendered as a sibling icon button at the end of the row. */\nexport type DetailPanelActionSecondary = {\n /** Icon class, for example `ti ti-trash`. */\n icon: string;\n /** Accessible name and tooltip of the icon button. */\n label: string;\n onClick: () => void;\n variant?: \"danger\";\n};\n\ntype DetailPanelActionBaseProps = {\n title: JSX.Element;\n description?: JSX.Element;\n leading?: JSX.Element;\n trailing?: JSX.Element;\n secondaryAction?: DetailPanelActionSecondary;\n class?: string;\n};\n\ntype DetailPanelActionMenuProps =\n | {\n menuItems?: never;\n menuLabel?: never;\n }\n | {\n menuItems: readonly DropdownItem[];\n menuLabel: string;\n };\n\nexport type DetailPanelActionLinkProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonLinkProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href: string;\n };\n\nexport type DetailPanelActionButtonProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href?: never;\n };\n\nexport type DetailPanelActionProps = DetailPanelActionLinkProps | DetailPanelActionButtonProps;\n\nexport type DetailPanelSectionProps = DetailPanelSectionBaseProps &\n (\n | {\n children?: JSX.Element;\n actions?: JSX.Element;\n collapsible?: false;\n defaultOpen?: never;\n open?: never;\n onOpenChange?: never;\n disabled?: never;\n }\n | {\n children: JSX.Element;\n actions?: never;\n collapsible: true;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n }\n );\n\ntype DetailPanelComponent = ((props: DetailPanelProps) => JSX.Element) & {\n Header: (props: DetailPanelHeaderProps) => JSX.Element;\n Body: (props: DetailPanelBodyProps) => JSX.Element;\n Summary: (props: DetailPanelSummaryProps) => JSX.Element;\n Group: (props: DetailPanelGroupProps) => JSX.Element;\n Section: (props: DetailPanelSectionProps) => JSX.Element;\n Action: (props: DetailPanelActionProps) => JSX.Element;\n};\n\nconst classNames = (base: string, extra?: string): string => (extra ? `${base} ${extra}` : base);\n\nconst DetailPanelHeader = (props: DetailPanelHeaderProps): JSX.Element => (\n <header class={classNames(\"k2b-detail-panel__header\", props.class)}>\n <div class=\"k2b-detail-panel__header-main\">\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__header-icon\" aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n <Show when={props.leading}>\n <div class=\"k2b-detail-panel__header-leading\">{props.leading}</div>\n </Show>\n <div class=\"k2b-detail-panel__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle || props.meta}>\n <div class=\"k2b-detail-panel__supporting\">\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__meta\">{props.meta}</div>\n </Show>\n </div>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__actions\">{props.actions}</div>\n </Show>\n </div>\n <Show when={props.primaryActions}>\n <div class=\"k2b-detail-panel__primary-actions\">{props.primaryActions}</div>\n </Show>\n </header>\n);\n\nconst DetailPanelBody = (props: DetailPanelBodyProps): JSX.Element => {\n let body!: HTMLDivElement;\n createScrollFade(\n () => body,\n () => props.scrollFade !== false,\n );\n return (\n <div\n ref={body}\n class={classNames(\"k2b-detail-panel__body\", props.class)}\n data-scroll-fade-mode={props.scrollFade !== false ? \"both\" : undefined}\n data-scroll-preserve={props.scrollPreserveKey}\n >\n {props.children}\n </div>\n );\n};\n\nconst DetailPanelSummary = (props: DetailPanelSummaryProps): JSX.Element => {\n const headingId = `k2b-detail-panel-summary-${createUniqueId()}`;\n\n return (\n <section class={classNames(\"k2b-detail-panel__summary\", props.class)} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__summary-header\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__summary-actions\">{props.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-detail-panel__summary-body\">{props.children}</div>\n </section>\n );\n};\n\nconst DetailPanelGroup = (props: DetailPanelGroupProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__group\", props.class)} role=\"group\" aria-label={props.label}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSectionIcon = (props: Pick<DetailPanelSectionBaseProps, \"icon\" | \"tone\">): JSX.Element => (\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__section-icon\" data-tone={props.tone ?? \"neutral\"} aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n);\n\nconst DetailPanelActionContent = (props: DetailPanelActionBaseProps): JSX.Element => (\n <>\n <Show when={props.leading}>\n <span class=\"k2b-detail-panel__action-leading\">{props.leading}</span>\n </Show>\n <span class=\"k2b-detail-panel__action-copy\">\n <span class=\"k2b-detail-panel__action-title\">{props.title}</span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__action-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.trailing}>\n <span class=\"k2b-detail-panel__action-trailing\">{props.trailing}</span>\n </Show>\n </>\n);\n\nconst DetailPanelAction = (props: DetailPanelActionProps): JSX.Element => {\n const [local, rest] = splitProps(props, [\n \"class\",\n \"description\",\n \"href\",\n \"leading\",\n \"menuItems\",\n \"menuLabel\",\n \"secondaryAction\",\n \"title\",\n \"trailing\",\n ]);\n const className = classNames(\"k2b-detail-panel__action\", local.class);\n const content = () => (\n <DetailPanelActionContent title={local.title} description={local.description} leading={local.leading} trailing={local.trailing} />\n );\n\n const action = () => (\n <Show\n when={local.href !== undefined}\n fallback={\n <Button\n {...(rest as Omit<DetailPanelActionButtonProps, keyof DetailPanelActionBaseProps>)}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </Button>\n }\n >\n <ButtonLink\n {...(rest as Omit<DetailPanelActionLinkProps, keyof DetailPanelActionBaseProps | \"href\">)}\n href={local.href as string}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </ButtonLink>\n </Show>\n );\n\n return (\n <Show when={local.secondaryAction || local.menuItems?.length} fallback={action()}>\n <div class=\"k2b-detail-panel__action-row\">\n {action()}\n <Show when={local.secondaryAction}>\n {(secondary) => (\n <IconButton\n size=\"sm\"\n variant=\"ghost\"\n label={secondary().label}\n class=\"k2b-detail-panel__action-secondary\"\n data-tone={secondary().variant}\n onClick={() => secondary().onClick()}\n >\n <i class={secondary().icon} aria-hidden=\"true\" />\n </IconButton>\n )}\n </Show>\n <Show when={local.menuItems?.length}>\n <Dropdown.Root items={local.menuItems ?? []} align=\"end\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu\">\n <Dropdown.Trigger iconOnly size=\"sm\" variant=\"ghost\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu-trigger\">\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </Show>\n </div>\n </Show>\n );\n};\n\nconst DetailPanelSection = (props: DetailPanelSectionProps): JSX.Element => {\n const headingId = `k2b-detail-panel-section-${createUniqueId()}`;\n const bodyId = `${headingId}-body`;\n const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? false);\n const open = () => props.open ?? internalOpen();\n let expand: HTMLButtonElement | undefined;\n let collapse: HTMLButtonElement | undefined;\n let body: HTMLDivElement | undefined;\n const toggle = (next: boolean) => {\n if (props.disabled) return;\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n createEffect(() => {\n const expanded = open();\n // Restore focus only when its current control becomes hidden, including\n // a parent-controlled collapse while focus is inside an editor.\n queueMicrotask(() => {\n if (expanded !== open()) return;\n const active = expand?.ownerDocument.activeElement;\n if (expanded && active === expand) collapse?.focus();\n if (!expanded && (active === collapse || (active && body?.contains(active)))) expand?.focus();\n });\n });\n const className = () => classNames(\"k2b-detail-panel__section\", props.class);\n // Resolve once: reading `props.children` twice would instantiate the section body twice.\n const resolved = children(() => props.children);\n\n return (\n <Show\n when={props.collapsible}\n fallback={\n <section class={className()} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__section-actions\">{props.actions}</div>\n </Show>\n </header>\n <Show when={resolved()}>\n <div class=\"k2b-detail-panel__section-body\">{resolved()}</div>\n </Show>\n </section>\n }\n >\n <section class={className()} aria-labelledby={open() ? headingId : `${headingId}-closed`} data-open={open()}>\n <div hidden={open()}>\n <Button\n ref={expand}\n variant=\"ghost\"\n class=\"k2b-detail-panel__section-summary\"\n disabled={props.disabled}\n aria-expanded={false}\n aria-controls={bodyId}\n onClick={() => toggle(true)}\n >\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <span class=\"k2b-detail-panel__section-copy\">\n <span id={`${headingId}-closed`} class=\"k2b-detail-panel__section-title\">\n {props.title}\n </span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__section-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.meta}>\n <span class=\"k2b-detail-panel__section-meta\">{props.meta}</span>\n </Show>\n <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />\n </Button>\n </div>\n <div hidden={!open()}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Button\n ref={collapse}\n variant=\"ghost\"\n size=\"sm\"\n disabled={props.disabled}\n aria-labelledby={headingId}\n aria-expanded={true}\n aria-controls={bodyId}\n onClick={() => toggle(false)}\n >\n <i class=\"ti ti-chevron-up\" aria-hidden=\"true\" />\n </Button>\n </header>\n </div>\n <div ref={body} id={bodyId} hidden={!open()} class=\"k2b-detail-panel__section-body\">\n {props.children}\n </div>\n </section>\n </Show>\n );\n};\n\nconst DetailPanel = ((props: DetailPanelProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel\", props.class)}>{props.children}</div>\n)) as DetailPanelComponent;\n\nDetailPanel.Header = DetailPanelHeader;\nDetailPanel.Body = DetailPanelBody;\nDetailPanel.Summary = DetailPanelSummary;\nDetailPanel.Group = DetailPanelGroup;\nDetailPanel.Section = DetailPanelSection;\nDetailPanel.Action = DetailPanelAction;\n\nexport default DetailPanel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["layout/index.ts"],"sourcesContent":["export type {\n AppOverviewCardsProps,\n AppOverviewEmptyStateProps,\n AppOverviewPanelProps,\n AppOverviewProps,\n} from \"./AppOverview\";\nexport { default as AppOverview } from \"./AppOverview\";\nexport type {\n AppWorkspaceBottomDrawerHeight,\n AppWorkspaceBottomDrawerProps,\n AppWorkspaceContentProps,\n AppWorkspaceDetailProps,\n AppWorkspaceDetailWidth,\n AppWorkspaceMainPaneProps,\n AppWorkspaceMainProps,\n AppWorkspaceNavTreeItemProps,\n AppWorkspaceNavTreeProps,\n AppWorkspaceProps,\n AppWorkspaceSidebarAccessoryVisibility,\n AppWorkspaceSidebarBodyProps,\n AppWorkspaceSidebarIconActionProps,\n AppWorkspaceSidebarIconActionTone,\n AppWorkspaceSidebarIconGridProps,\n AppWorkspaceSidebarItemActionProps,\n AppWorkspaceSidebarItemActionsProps,\n AppWorkspaceSidebarItemIconProps,\n AppWorkspaceSidebarItemLabelProps,\n AppWorkspaceSidebarItemMetaProps,\n AppWorkspaceSidebarItemProps,\n AppWorkspaceSidebarItemTone,\n AppWorkspaceSidebarProps,\n AppWorkspaceSidebarSectionProps,\n AppWorkspaceSidebarVisibility,\n} from \"./AppWorkspace\";\nexport { default as AppWorkspace } from \"./AppWorkspace\";\nexport type { AppWorkspaceControllerOptions } from \"./app-workspace-controller\";\nexport { installAppWorkspaceController } from \"./app-workspace-controller\";\nexport type {\n AppWorkspaceLayoutState,\n AppWorkspaceResizeKind,\n} from \"./app-workspace-state\";\nexport {\n APP_WORKSPACE_DETAIL_DEFAULT,\n APP_WORKSPACE_DETAIL_MAX,\n APP_WORKSPACE_DETAIL_MIN,\n APP_WORKSPACE_DRAWER_DEFAULT,\n APP_WORKSPACE_DRAWER_MAX,\n APP_WORKSPACE_DRAWER_MIN,\n APP_WORKSPACE_MAIN_MIN,\n APP_WORKSPACE_MAIN_MIN_HEIGHT,\n APP_WORKSPACE_PANE_DEFAULT,\n APP_WORKSPACE_PANE_MAX,\n APP_WORKSPACE_PANE_MIN,\n APP_WORKSPACE_SIDEBAR_COLLAPSE_THRESHOLD,\n APP_WORKSPACE_SIDEBAR_COLLAPSED,\n APP_WORKSPACE_SIDEBAR_DEFAULT,\n APP_WORKSPACE_SIDEBAR_MAX,\n APP_WORKSPACE_SIDEBAR_MIN,\n appWorkspaceLayoutStyle,\n appWorkspacePanelVariable,\n appWorkspaceResizeLimits,\n normalizeAppWorkspaceLayoutState,\n parseAppWorkspaceLayoutState,\n resolveAppWorkspaceSidebarWidth,\n safeAppWorkspacePanelId,\n serializeAppWorkspaceLayoutState,\n shouldCollapseAppWorkspaceSidebar,\n} from \"./app-workspace-state\";\nexport { type BottomSheetProps, bottomSheetOptions, default as BottomSheet } from \"./BottomSheet\";\nexport type { DataPanelProps } from \"./DataPanel\";\nexport { DataPanel } from \"./DataPanel\";\nexport type {\n DetailPanelActionButtonProps,\n DetailPanelActionLinkProps,\n DetailPanelActionProps,\n DetailPanelBodyProps,\n DetailPanelGroupProps,\n DetailPanelHeaderProps,\n DetailPanelProps,\n DetailPanelSectionProps,\n DetailPanelSummaryProps,\n DetailPanelTone,\n} from \"./DetailPanel\";\nexport { default as DetailPanel } from \"./DetailPanel\";\nexport type { DiscussionComposerProps, DiscussionItemProps, DiscussionListProps, DiscussionProps } from \"./Discussion\";\nexport { default as Discussion } from \"./Discussion\";\nexport type {\n FloatingWindowClose,\n FloatingWindowProps,\n OpenFloatingWindowOptions,\n} from \"./FloatingWindow\";\nexport {\n default as FloatingWindow,\n type FloatingWindowRect,\n fitFloatingWindowRect,\n openFloatingWindow,\n} from \"./FloatingWindow\";\nexport { default as Navigation, type NavigationProps } from \"./Navigation\";\nexport {\n createNavigation,\n findNavigationItem,\n type NavigationController,\n type NavigationItem,\n type NavigationOptions,\n} from \"./navigation-model\";\nexport type {\n PanelDialogBodyProps,\n PanelDialogFooterProps,\n PanelDialogHeaderProps,\n PanelDialogProps,\n PanelDialogSectionProps,\n PanelDialogSurface,\n PanelDialogTabOption,\n PanelDialogTabsProps,\n} from \"./PanelDialog\";\nexport {\n confirmDiscardIfDirty,\n default as PanelDialog,\n panelDialogFixedOptions,\n panelDialogFixedPanelClass,\n panelDialogOptions,\n panelDialogPanelClass,\n panelDialogWideOptions,\n panelDialogWidePanelClass,\n panelDialogWorkspaceOptions,\n panelDialogWorkspacePanelClass,\n} from \"./PanelDialog\";\nexport type { PanelHeaderProps } from \"./PanelHeader\";\nexport { PanelHeader } from \"./PanelHeader\";\nexport type { PanesItem, PanesProps } from \"./Panes\";\nexport { default as Panes } from \"./Panes\";\nexport type { PullToRefreshProps, PullToRefreshState } from \"./PullToRefresh\";\nexport { default as PullToRefresh } from \"./PullToRefresh\";\nexport type {\n AddPanesItemOptions,\n PanesDirection,\n PanesGroup,\n PanesIntent,\n PanesLayout,\n PanesNode,\n PanesPath,\n PanesPathSegment,\n PanesSide,\n PanesSplit,\n} from \"./panes-layout\";\nexport {\n activatePanesItem,\n addPanesItem,\n applyPanesIntent,\n createPanesLayout,\n isPanesItemVisible,\n PANES_LAYOUT_VERSION,\n parsePanesLayout,\n reconcilePanesLayout,\n removePanesItem,\n resizePanesSplit,\n} from \"./panes-layout\";\nexport type { ScrollAreaProps } from \"./ScrollArea\";\nexport { default as ScrollArea } from \"./ScrollArea\";\nexport type {\n SettingsFieldControlProps,\n SettingsFieldProps,\n SettingsGroupActionProps,\n SettingsGroupProps,\n SettingsPageProps,\n SettingsPanelFooterProps,\n SettingsSaveBarProps,\n SettingsSectionProps,\n} from \"./Settings\";\nexport {\n readSettingsError,\n SettingsField,\n SettingsGroup,\n SettingsPage,\n SettingsPanelFooter,\n SettingsSaveBar,\n SettingsSection,\n sameSettingValue,\n} from \"./Settings\";\nexport type {\n SettingsCollectionActionProps,\n SettingsCollectionItemActionsProps,\n SettingsCollectionItemProps,\n SettingsCollectionItemReorderProps,\n SettingsCollectionItemStatusProps,\n SettingsCollectionProps,\n} from \"./SettingsCollection\";\nexport { default as SettingsCollection } from \"./SettingsCollection\";\nexport type {\n SettingsModalFooterProps,\n SettingsModalGroupProps,\n SettingsModalProps,\n SettingsModalTabProps,\n SettingsModalTabTone,\n} from \"./SettingsModal\";\nexport { default as SettingsModal } from \"./SettingsModal\";\n"],"mappings":"AAMA,SAAS,OAAO,IAAI,WAAW,QAAQ,eAAe;AA4BtD,SAAS,OAAO,IAAI,YAAY,QAAQ,gBAAgB;AAExD,SAAS,6BAA6B,QAAQ,4BAA4B;AAK1E,SACE,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,wCAAwC,EACxC,+BAA+B,EAC/B,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,4BAA4B,EAC5B,+BAA+B,EAC/B,uBAAuB,EACvB,gCAAgC,EAChC,iCAAiC,QAC5B,uBAAuB;AAC9B,SAAgC,kBAAkB,EAAE,OAAO,IAAI,WAAW,QAAQ,eAAe;AAEjG,SAAS,SAAS,QAAQ,aAAa;
|
|
1
|
+
{"version":3,"names":[],"sources":["layout/index.ts"],"sourcesContent":["export type {\n AppOverviewCardsProps,\n AppOverviewEmptyStateProps,\n AppOverviewPanelProps,\n AppOverviewProps,\n} from \"./AppOverview\";\nexport { default as AppOverview } from \"./AppOverview\";\nexport type {\n AppWorkspaceBottomDrawerHeight,\n AppWorkspaceBottomDrawerProps,\n AppWorkspaceContentProps,\n AppWorkspaceDetailProps,\n AppWorkspaceDetailWidth,\n AppWorkspaceMainPaneProps,\n AppWorkspaceMainProps,\n AppWorkspaceNavTreeItemProps,\n AppWorkspaceNavTreeProps,\n AppWorkspaceProps,\n AppWorkspaceSidebarAccessoryVisibility,\n AppWorkspaceSidebarBodyProps,\n AppWorkspaceSidebarIconActionProps,\n AppWorkspaceSidebarIconActionTone,\n AppWorkspaceSidebarIconGridProps,\n AppWorkspaceSidebarItemActionProps,\n AppWorkspaceSidebarItemActionsProps,\n AppWorkspaceSidebarItemIconProps,\n AppWorkspaceSidebarItemLabelProps,\n AppWorkspaceSidebarItemMetaProps,\n AppWorkspaceSidebarItemProps,\n AppWorkspaceSidebarItemTone,\n AppWorkspaceSidebarProps,\n AppWorkspaceSidebarSectionProps,\n AppWorkspaceSidebarVisibility,\n} from \"./AppWorkspace\";\nexport { default as AppWorkspace } from \"./AppWorkspace\";\nexport type { AppWorkspaceControllerOptions } from \"./app-workspace-controller\";\nexport { installAppWorkspaceController } from \"./app-workspace-controller\";\nexport type {\n AppWorkspaceLayoutState,\n AppWorkspaceResizeKind,\n} from \"./app-workspace-state\";\nexport {\n APP_WORKSPACE_DETAIL_DEFAULT,\n APP_WORKSPACE_DETAIL_MAX,\n APP_WORKSPACE_DETAIL_MIN,\n APP_WORKSPACE_DRAWER_DEFAULT,\n APP_WORKSPACE_DRAWER_MAX,\n APP_WORKSPACE_DRAWER_MIN,\n APP_WORKSPACE_MAIN_MIN,\n APP_WORKSPACE_MAIN_MIN_HEIGHT,\n APP_WORKSPACE_PANE_DEFAULT,\n APP_WORKSPACE_PANE_MAX,\n APP_WORKSPACE_PANE_MIN,\n APP_WORKSPACE_SIDEBAR_COLLAPSE_THRESHOLD,\n APP_WORKSPACE_SIDEBAR_COLLAPSED,\n APP_WORKSPACE_SIDEBAR_DEFAULT,\n APP_WORKSPACE_SIDEBAR_MAX,\n APP_WORKSPACE_SIDEBAR_MIN,\n appWorkspaceLayoutStyle,\n appWorkspacePanelVariable,\n appWorkspaceResizeLimits,\n normalizeAppWorkspaceLayoutState,\n parseAppWorkspaceLayoutState,\n resolveAppWorkspaceSidebarWidth,\n safeAppWorkspacePanelId,\n serializeAppWorkspaceLayoutState,\n shouldCollapseAppWorkspaceSidebar,\n} from \"./app-workspace-state\";\nexport { type BottomSheetProps, bottomSheetOptions, default as BottomSheet } from \"./BottomSheet\";\nexport type { DataPanelProps } from \"./DataPanel\";\nexport { DataPanel } from \"./DataPanel\";\nexport type {\n DetailPanelActionButtonProps,\n DetailPanelActionLinkProps,\n DetailPanelActionProps,\n DetailPanelActionSecondary,\n DetailPanelBodyProps,\n DetailPanelGroupProps,\n DetailPanelHeaderProps,\n DetailPanelProps,\n DetailPanelSectionProps,\n DetailPanelSummaryProps,\n DetailPanelTone,\n} from \"./DetailPanel\";\nexport { default as DetailPanel } from \"./DetailPanel\";\nexport type { DiscussionComposerProps, DiscussionItemProps, DiscussionListProps, DiscussionProps } from \"./Discussion\";\nexport { default as Discussion } from \"./Discussion\";\nexport type {\n FloatingWindowClose,\n FloatingWindowProps,\n OpenFloatingWindowOptions,\n} from \"./FloatingWindow\";\nexport {\n default as FloatingWindow,\n type FloatingWindowRect,\n fitFloatingWindowRect,\n openFloatingWindow,\n} from \"./FloatingWindow\";\nexport { default as Navigation, type NavigationProps } from \"./Navigation\";\nexport {\n createNavigation,\n findNavigationItem,\n type NavigationController,\n type NavigationItem,\n type NavigationOptions,\n} from \"./navigation-model\";\nexport type {\n PanelDialogBodyProps,\n PanelDialogFooterProps,\n PanelDialogHeaderProps,\n PanelDialogProps,\n PanelDialogSectionProps,\n PanelDialogSurface,\n PanelDialogTabOption,\n PanelDialogTabsProps,\n} from \"./PanelDialog\";\nexport {\n confirmDiscardIfDirty,\n default as PanelDialog,\n panelDialogFixedOptions,\n panelDialogFixedPanelClass,\n panelDialogOptions,\n panelDialogPanelClass,\n panelDialogWideOptions,\n panelDialogWidePanelClass,\n panelDialogWorkspaceOptions,\n panelDialogWorkspacePanelClass,\n} from \"./PanelDialog\";\nexport type { PanelHeaderProps } from \"./PanelHeader\";\nexport { PanelHeader } from \"./PanelHeader\";\nexport type { PanesItem, PanesProps } from \"./Panes\";\nexport { default as Panes } from \"./Panes\";\nexport type { PullToRefreshProps, PullToRefreshState } from \"./PullToRefresh\";\nexport { default as PullToRefresh } from \"./PullToRefresh\";\nexport type {\n AddPanesItemOptions,\n PanesDirection,\n PanesGroup,\n PanesIntent,\n PanesLayout,\n PanesNode,\n PanesPath,\n PanesPathSegment,\n PanesSide,\n PanesSplit,\n} from \"./panes-layout\";\nexport {\n activatePanesItem,\n addPanesItem,\n applyPanesIntent,\n createPanesLayout,\n isPanesItemVisible,\n PANES_LAYOUT_VERSION,\n parsePanesLayout,\n reconcilePanesLayout,\n removePanesItem,\n resizePanesSplit,\n} from \"./panes-layout\";\nexport type { ScrollAreaProps } from \"./ScrollArea\";\nexport { default as ScrollArea } from \"./ScrollArea\";\nexport type {\n SettingsFieldControlProps,\n SettingsFieldProps,\n SettingsGroupActionProps,\n SettingsGroupProps,\n SettingsPageProps,\n SettingsPanelFooterProps,\n SettingsSaveBarProps,\n SettingsSectionProps,\n} from \"./Settings\";\nexport {\n readSettingsError,\n SettingsField,\n SettingsGroup,\n SettingsPage,\n SettingsPanelFooter,\n SettingsSaveBar,\n SettingsSection,\n sameSettingValue,\n} from \"./Settings\";\nexport type {\n SettingsCollectionActionProps,\n SettingsCollectionItemActionsProps,\n SettingsCollectionItemProps,\n SettingsCollectionItemReorderProps,\n SettingsCollectionItemStatusProps,\n SettingsCollectionProps,\n} from \"./SettingsCollection\";\nexport { default as SettingsCollection } from \"./SettingsCollection\";\nexport type {\n SettingsModalFooterProps,\n SettingsModalGroupProps,\n SettingsModalProps,\n SettingsModalTabProps,\n SettingsModalTabTone,\n} from \"./SettingsModal\";\nexport { default as SettingsModal } from \"./SettingsModal\";\n"],"mappings":"AAMA,SAAS,OAAO,IAAI,WAAW,QAAQ,eAAe;AA4BtD,SAAS,OAAO,IAAI,YAAY,QAAQ,gBAAgB;AAExD,SAAS,6BAA6B,QAAQ,4BAA4B;AAK1E,SACE,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACtB,wCAAwC,EACxC,+BAA+B,EAC/B,6BAA6B,EAC7B,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,4BAA4B,EAC5B,+BAA+B,EAC/B,uBAAuB,EACvB,gCAAgC,EAChC,iCAAiC,QAC5B,uBAAuB;AAC9B,SAAgC,kBAAkB,EAAE,OAAO,IAAI,WAAW,QAAQ,eAAe;AAEjG,SAAS,SAAS,QAAQ,aAAa;AAcvC,SAAS,OAAO,IAAI,WAAW,QAAQ,eAAe;AAEtD,SAAS,OAAO,IAAI,UAAU,QAAQ,cAAc;AAMpD,SACE,OAAO,IAAI,cAAc,EAEzB,qBAAqB,EACrB,kBAAkB,QACb,kBAAkB;AACzB,SAAS,OAAO,IAAI,UAAU,QAA8B,cAAc;AAC1E,SACE,gBAAgB,EAChB,kBAAkB,QAIb,oBAAoB;AAW3B,SACE,qBAAqB,EACrB,OAAO,IAAI,WAAW,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,QACzB,eAAe;AAEtB,SAAS,WAAW,QAAQ,eAAe;AAE3C,SAAS,OAAO,IAAI,KAAK,QAAQ,SAAS;AAE1C,SAAS,OAAO,IAAI,aAAa,QAAQ,iBAAiB;AAa1D,SACE,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,QACX,gBAAgB;AAEvB,SAAS,OAAO,IAAI,UAAU,QAAQ,cAAc;AAWpD,SACE,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,gBAAgB,QACX,YAAY;AASnB,SAAS,OAAO,IAAI,kBAAkB,QAAQ,sBAAsB;AAQpE,SAAS,OAAO,IAAI,aAAa,QAAQ,iBAAiB","ignoreList":[]}
|
|
@@ -361,6 +361,8 @@ function DropdownRoot(props) {
|
|
|
361
361
|
const open = (focus = "first") => {
|
|
362
362
|
if (props.disabled || !menuRef || menuRef.matches(":popover-open")) return;
|
|
363
363
|
menuRef.showPopover();
|
|
364
|
+
// The toggle event arrives a task later; expose the open state before focus moves into the menu.
|
|
365
|
+
setInternalOpen(true);
|
|
364
366
|
attachViewportListeners();
|
|
365
367
|
place();
|
|
366
368
|
queueMicrotask(() => {
|