@k2b/ui 0.45.0 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/browser/actions/Dropdown.js +8 -1
  2. package/dist/browser/actions/Dropdown.js.map +1 -1
  3. package/dist/browser/actions/FilterChip.js +11 -5
  4. package/dist/browser/actions/FilterChip.js.map +1 -1
  5. package/dist/browser/actions/ViewTabs.js +225 -93
  6. package/dist/browser/actions/ViewTabs.js.map +1 -1
  7. package/dist/browser/chat/ChatDecision.js +10 -6
  8. package/dist/browser/chat/ChatDecision.js.map +1 -1
  9. package/dist/browser/content/FileGrid.js +125 -99
  10. package/dist/browser/content/FileGrid.js.map +1 -1
  11. package/dist/browser/content/VirtualFeed.js +26 -21
  12. package/dist/browser/content/VirtualFeed.js.map +1 -1
  13. package/dist/browser/inputs/Combobox.js +14 -6
  14. package/dist/browser/inputs/Combobox.js.map +1 -1
  15. package/dist/browser/inputs/choice.js +36 -9
  16. package/dist/browser/inputs/choice.js.map +1 -1
  17. package/dist/browser/layout/AnchoredPopover.js +2 -1
  18. package/dist/browser/layout/AnchoredPopover.js.map +1 -1
  19. package/dist/browser/layout/AppWorkspace.js +348 -444
  20. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  21. package/dist/browser/layout/AppWorkspaceSidebarItemStatus.js +113 -0
  22. package/dist/browser/layout/AppWorkspaceSidebarItemStatus.js.map +1 -0
  23. package/dist/browser/layout/DetailPanel.js +130 -108
  24. package/dist/browser/layout/DetailPanel.js.map +1 -1
  25. package/dist/browser/layout/DetailSections.js +1123 -0
  26. package/dist/browser/layout/DetailSections.js.map +1 -0
  27. package/dist/browser/layout/DetailsToggle.js +32 -0
  28. package/dist/browser/layout/DetailsToggle.js.map +1 -0
  29. package/dist/browser/layout/Discussion.js +3 -0
  30. package/dist/browser/layout/Discussion.js.map +1 -1
  31. package/dist/browser/layout/MobileShell.js +141 -102
  32. package/dist/browser/layout/MobileShell.js.map +1 -1
  33. package/dist/browser/layout/PageTitle.js +33 -10
  34. package/dist/browser/layout/PageTitle.js.map +1 -1
  35. package/dist/browser/layout/app-workspace-controller.js +12 -0
  36. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  37. package/dist/browser/layout/detail-sections-messages.js +127 -0
  38. package/dist/browser/layout/detail-sections-messages.js.map +1 -0
  39. package/dist/browser/layout/index.js +3 -0
  40. package/dist/browser/layout/index.js.map +1 -1
  41. package/dist/browser/surfaces/Avatar.js +3 -1
  42. package/dist/browser/surfaces/Avatar.js.map +1 -1
  43. package/dist/browser/surfaces/AvatarStack.js +95 -61
  44. package/dist/browser/surfaces/AvatarStack.js.map +1 -1
  45. package/dist/browser/surfaces/ChangeList.js +77 -0
  46. package/dist/browser/surfaces/ChangeList.js.map +1 -0
  47. package/dist/browser/surfaces/index.js +2 -1
  48. package/dist/browser/surfaces/index.js.map +1 -1
  49. package/dist/browser/text-editor/TextEditor.js +19 -8
  50. package/dist/browser/text-editor/TextEditor.js.map +1 -1
  51. package/dist/ssr/actions/Dropdown.js +6 -0
  52. package/dist/ssr/actions/Dropdown.js.map +1 -1
  53. package/dist/ssr/actions/FilterChip.js +1 -1
  54. package/dist/ssr/actions/FilterChip.js.map +1 -1
  55. package/dist/ssr/actions/ViewTabs.js +144 -37
  56. package/dist/ssr/actions/ViewTabs.js.map +1 -1
  57. package/dist/ssr/chat/ChatDecision.js +10 -6
  58. package/dist/ssr/chat/ChatDecision.js.map +1 -1
  59. package/dist/ssr/content/FileGrid.js +36 -22
  60. package/dist/ssr/content/FileGrid.js.map +1 -1
  61. package/dist/ssr/content/VirtualFeed.js +26 -21
  62. package/dist/ssr/content/VirtualFeed.js.map +1 -1
  63. package/dist/ssr/inputs/Combobox.js +6 -3
  64. package/dist/ssr/inputs/Combobox.js.map +1 -1
  65. package/dist/ssr/inputs/choice.js +36 -9
  66. package/dist/ssr/inputs/choice.js.map +1 -1
  67. package/dist/ssr/layout/AnchoredPopover.js +2 -1
  68. package/dist/ssr/layout/AnchoredPopover.js.map +1 -1
  69. package/dist/ssr/layout/AppWorkspace.js +66 -132
  70. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  71. package/dist/ssr/layout/AppWorkspaceSidebarItemStatus.js +76 -0
  72. package/dist/ssr/layout/AppWorkspaceSidebarItemStatus.js.map +1 -0
  73. package/dist/ssr/layout/DetailPanel.js +18 -1
  74. package/dist/ssr/layout/DetailPanel.js.map +1 -1
  75. package/dist/ssr/layout/DetailSections.js +838 -0
  76. package/dist/ssr/layout/DetailSections.js.map +1 -0
  77. package/dist/ssr/layout/DetailsToggle.js +29 -0
  78. package/dist/ssr/layout/DetailsToggle.js.map +1 -0
  79. package/dist/ssr/layout/Discussion.js +3 -0
  80. package/dist/ssr/layout/Discussion.js.map +1 -1
  81. package/dist/ssr/layout/MobileShell.js +60 -29
  82. package/dist/ssr/layout/MobileShell.js.map +1 -1
  83. package/dist/ssr/layout/PageTitle.js +29 -6
  84. package/dist/ssr/layout/PageTitle.js.map +1 -1
  85. package/dist/ssr/layout/app-workspace-controller.js +12 -0
  86. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  87. package/dist/ssr/layout/detail-sections-messages.js +127 -0
  88. package/dist/ssr/layout/detail-sections-messages.js.map +1 -0
  89. package/dist/ssr/layout/index.js +3 -0
  90. package/dist/ssr/layout/index.js.map +1 -1
  91. package/dist/ssr/surfaces/Avatar.js +3 -1
  92. package/dist/ssr/surfaces/Avatar.js.map +1 -1
  93. package/dist/ssr/surfaces/AvatarStack.js +61 -32
  94. package/dist/ssr/surfaces/AvatarStack.js.map +1 -1
  95. package/dist/ssr/surfaces/ChangeList.js +37 -0
  96. package/dist/ssr/surfaces/ChangeList.js.map +1 -0
  97. package/dist/ssr/surfaces/index.js +2 -1
  98. package/dist/ssr/surfaces/index.js.map +1 -1
  99. package/dist/ssr/text-editor/TextEditor.js +19 -8
  100. package/dist/ssr/text-editor/TextEditor.js.map +1 -1
  101. package/dist/styles.css +1 -1
  102. package/dist/types/actions/FilterChip.d.ts +4 -0
  103. package/dist/types/actions/ViewTabs.d.ts +11 -1
  104. package/dist/types/chat/ChatDecision.d.ts +5 -0
  105. package/dist/types/content/FileGrid.d.ts +6 -0
  106. package/dist/types/inputs/Combobox.d.ts +2 -0
  107. package/dist/types/inputs/choice.d.ts +9 -3
  108. package/dist/types/layout/AppWorkspace.d.ts +2 -28
  109. package/dist/types/layout/AppWorkspaceSidebarItemStatus.d.ts +30 -0
  110. package/dist/types/layout/DetailPanel.d.ts +9 -0
  111. package/dist/types/layout/DetailSections.d.ts +186 -0
  112. package/dist/types/layout/DetailsToggle.d.ts +13 -0
  113. package/dist/types/layout/MobileShell.d.ts +12 -0
  114. package/dist/types/layout/PageTitle.d.ts +7 -0
  115. package/dist/types/layout/detail-sections-messages.d.ts +61 -0
  116. package/dist/types/layout/index.d.ts +5 -1
  117. package/dist/types/surfaces/Avatar.d.ts +3 -0
  118. package/dist/types/surfaces/AvatarStack.d.ts +20 -1
  119. package/dist/types/surfaces/ChangeList.d.ts +20 -0
  120. package/dist/types/surfaces/index.d.ts +5 -3
  121. package/package.json +3 -3
@@ -0,0 +1,113 @@
1
+ import { template as _$template } from "solid-js/web";
2
+ import { getNextMarker as _$getNextMarker } from "solid-js/web";
3
+ import { setAttribute as _$setAttribute } from "solid-js/web";
4
+ import { effect as _$effect } from "solid-js/web";
5
+ import { insert as _$insert } from "solid-js/web";
6
+ import { memo as _$memo } from "solid-js/web";
7
+ import { createComponent as _$createComponent } from "solid-js/web";
8
+ import { getNextElement as _$getNextElement } from "solid-js/web";
9
+ var _tmpl$ = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-status-mention aria-hidden=true>@`),
10
+ _tmpl$2 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-status-muted aria-hidden=true><i class="ti ti-bell-off">`),
11
+ _tmpl$3 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-status-count>`),
12
+ _tmpl$4 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-status-unread aria-hidden=true>`),
13
+ _tmpl$5 = /*#__PURE__*/_$template(`<span class=k2b-sr-only>, <!$><!/>`),
14
+ _tmpl$6 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-status>`),
15
+ _tmpl$7 = /*#__PURE__*/_$template(`<span class=k2b-app-workspace__sidebar-status-dot>`);
16
+ import { Show } from "solid-js";
17
+ import { useWorkspaceMessages } from "./workspace-messages";
18
+
19
+ /**
20
+ * Unread state for the trailing `meta` slot. Every mark keeps a fixed width,
21
+ * so the row keeps its height and the label its start in every state.
22
+ */
23
+
24
+ export const AppWorkspaceSidebarItemStatus = props => {
25
+ const workspaceMessages = useWorkspaceMessages();
26
+ const waiting = () => props.waiting && Number.isFinite(props.waiting.count) ? Math.max(0, Math.floor(props.waiting.count)) : null;
27
+ const count = () => waiting() ?? (typeof props.unread === "number" && props.unread >= 1 ? Math.floor(props.unread) : 0);
28
+ const dot = () => waiting() === null && props.unread === true;
29
+ // The marks are decorative; the row's accessible name gets one phrase instead,
30
+ // which says no more than the "99+" a capped count shows.
31
+ const description = () => [waiting() !== null ? props.waiting?.label ?? "" : count() > 99 ? workspaceMessages().sidebarUnreadMany : count() ? workspaceMessages().sidebarUnread({
32
+ count: count()
33
+ }) : dot() ? workspaceMessages().sidebarNewActivity : "", props.mention ? workspaceMessages().sidebarMentioned : "", props.muted ? workspaceMessages().sidebarMuted : ""].filter(Boolean).join(", ");
34
+ // The unread slot stays reserved at the end, and the marks that change most
35
+ // often sit outermost, so new activity or a mention never moves another mark.
36
+ // The element itself stays when there is nothing to show: empty, it takes no
37
+ // space, and it still keeps the row's label on one line, so the first count
38
+ // never re-wraps the label and moves the rows below.
39
+ return (() => {
40
+ var _el$ = _$getNextElement(_tmpl$6);
41
+ _$insert(_el$, _$createComponent(Show, {
42
+ get when() {
43
+ return description();
44
+ },
45
+ get children() {
46
+ return [_$createComponent(Show, {
47
+ get when() {
48
+ return props.mention;
49
+ },
50
+ get children() {
51
+ return _$getNextElement(_tmpl$);
52
+ }
53
+ }), _$createComponent(Show, {
54
+ get when() {
55
+ return props.muted;
56
+ },
57
+ get children() {
58
+ return _$getNextElement(_tmpl$2);
59
+ }
60
+ }), (() => {
61
+ var _el$4 = _$getNextElement(_tmpl$4);
62
+ _$insert(_el$4, _$createComponent(Show, {
63
+ get when() {
64
+ return count() || waiting() === 0;
65
+ },
66
+ get fallback() {
67
+ return _$createComponent(Show, {
68
+ get when() {
69
+ return dot();
70
+ },
71
+ get children() {
72
+ return _$getNextElement(_tmpl$7);
73
+ }
74
+ });
75
+ },
76
+ get children() {
77
+ var _el$5 = _$getNextElement(_tmpl$3);
78
+ _$insert(_el$5, (() => {
79
+ var _c$ = _$memo(() => count() > 99);
80
+ return () => _c$() ? "99+" : count();
81
+ })());
82
+ _$effect(() => _$setAttribute(_el$5, "data-mention", props.mention ? "true" : undefined));
83
+ return _el$5;
84
+ }
85
+ }));
86
+ return _el$4;
87
+ })(), (() => {
88
+ var _el$6 = _$getNextElement(_tmpl$5),
89
+ _el$7 = _el$6.firstChild,
90
+ _el$8 = _el$7.nextSibling,
91
+ [_el$9, _co$] = _$getNextMarker(_el$8.nextSibling);
92
+ _$insert(_el$6, description, _el$9, _co$);
93
+ return _el$6;
94
+ })()];
95
+ }
96
+ }));
97
+ _$effect(_p$ => {
98
+ var _v$ = waiting() !== null ? undefined : count() ? "count" : dot() ? "dot" : undefined,
99
+ _v$2 = waiting() === null ? undefined : waiting() ? "count" : "zero",
100
+ _v$3 = props.muted ? "true" : undefined;
101
+ _v$ !== _p$.e && _$setAttribute(_el$, "data-unread", _p$.e = _v$);
102
+ _v$2 !== _p$.t && _$setAttribute(_el$, "data-waiting", _p$.t = _v$2);
103
+ _v$3 !== _p$.a && _$setAttribute(_el$, "data-muted", _p$.a = _v$3);
104
+ return _p$;
105
+ }, {
106
+ e: undefined,
107
+ t: undefined,
108
+ a: undefined
109
+ });
110
+ return _el$;
111
+ })();
112
+ };
113
+ //# sourceMappingURL=AppWorkspaceSidebarItemStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["layout/AppWorkspaceSidebarItemStatus.tsx"],"sourcesContent":["import { type JSX, Show } from \"solid-js\";\nimport { useWorkspaceMessages } from \"./workspace-messages\";\n\n/**\n * Unread state for the trailing `meta` slot. Every mark keeps a fixed width,\n * so the row keeps its height and the label its start in every state.\n */\nexport type AppWorkspaceSidebarItemStatusProps = {\n /**\n * A positive number shows a count (above 99 as \"99+\") and sets the label in\n * a stronger weight; `true` shows a quiet dot for new activity that should\n * not draw attention, such as in a muted conversation.\n */\n unread?: number | boolean;\n /** Marks unread items that mention the person with \"@\". */\n mention?: boolean;\n /**\n * Shows a muted bell, and the item reads as set aside: its label in the muted ink without unread weight, and a\n * mention count without its fill.\n */\n muted?: boolean;\n /**\n * Items that wait for the person, such as requests to approve, in the unread slot instead of `unread`. `label` is\n * the phrase a screen reader hears, for example \"3 waiting\". `0` stays as a muted count, for a count that dropped\n * to zero while the row is still shown; leave the prop out when nothing waits.\n */\n waiting?: { count: number; label: string };\n};\nexport const AppWorkspaceSidebarItemStatus = (props: AppWorkspaceSidebarItemStatusProps): JSX.Element => {\n const workspaceMessages = useWorkspaceMessages();\n const waiting = () => (props.waiting && Number.isFinite(props.waiting.count) ? Math.max(0, Math.floor(props.waiting.count)) : null);\n const count = () => waiting() ?? (typeof props.unread === \"number\" && props.unread >= 1 ? Math.floor(props.unread) : 0);\n const dot = () => waiting() === null && props.unread === true;\n // The marks are decorative; the row's accessible name gets one phrase instead,\n // which says no more than the \"99+\" a capped count shows.\n const description = () =>\n [\n waiting() !== null\n ? (props.waiting?.label ?? \"\")\n : count() > 99\n ? workspaceMessages().sidebarUnreadMany\n : count()\n ? workspaceMessages().sidebarUnread({ count: count() })\n : dot()\n ? workspaceMessages().sidebarNewActivity\n : \"\",\n props.mention ? workspaceMessages().sidebarMentioned : \"\",\n props.muted ? workspaceMessages().sidebarMuted : \"\",\n ]\n .filter(Boolean)\n .join(\", \");\n // The unread slot stays reserved at the end, and the marks that change most\n // often sit outermost, so new activity or a mention never moves another mark.\n // The element itself stays when there is nothing to show: empty, it takes no\n // space, and it still keeps the row's label on one line, so the first count\n // never re-wraps the label and moves the rows below.\n return (\n <span\n class=\"k2b-app-workspace__sidebar-status\"\n data-unread={waiting() !== null ? undefined : count() ? \"count\" : dot() ? \"dot\" : undefined}\n data-waiting={waiting() === null ? undefined : waiting() ? \"count\" : \"zero\"}\n data-muted={props.muted ? \"true\" : undefined}\n >\n <Show when={description()}>\n <Show when={props.mention}>\n <span class=\"k2b-app-workspace__sidebar-status-mention\" aria-hidden=\"true\">\n @\n </span>\n </Show>\n <Show when={props.muted}>\n <span class=\"k2b-app-workspace__sidebar-status-muted\" aria-hidden=\"true\">\n <i class=\"ti ti-bell-off\" />\n </span>\n </Show>\n <span class=\"k2b-app-workspace__sidebar-status-unread\" aria-hidden=\"true\">\n <Show\n when={count() || waiting() === 0}\n fallback={\n <Show when={dot()}>\n <span class=\"k2b-app-workspace__sidebar-status-dot\" />\n </Show>\n }\n >\n <span class=\"k2b-app-workspace__sidebar-status-count\" data-mention={props.mention ? \"true\" : undefined}>\n {count() > 99 ? \"99+\" : count()}\n </span>\n </Show>\n </span>\n <span class=\"k2b-sr-only\">, {description()}</span>\n </Show>\n </span>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -53,6 +53,8 @@ import { createScrollFade } from "./scroll-fade";
53
53
 
54
54
  /** One direct secondary command, rendered as a sibling icon button at the end of the row. */
55
55
 
56
+ /** A row that only shows something, such as a person and their role: the columns of an action, without a command. */
57
+
56
58
  const classNames = (base, extra) => extra ? `${base} ${extra}` : base;
57
59
  const showTruncatedTitle = event => {
58
60
  const heading = event.currentTarget;
@@ -551,6 +553,25 @@ const DetailPanelAction = props => {
551
553
  }
552
554
  });
553
555
  };
556
+ const DetailPanelRow = props => (() => {
557
+ var _el$72 = _$getNextElement(_tmpl$1);
558
+ _$insert(_el$72, _$createComponent(DetailPanelActionContent, {
559
+ get title() {
560
+ return props.title;
561
+ },
562
+ get description() {
563
+ return props.description;
564
+ },
565
+ get leading() {
566
+ return props.leading;
567
+ },
568
+ get trailing() {
569
+ return props.trailing;
570
+ }
571
+ }));
572
+ _$effect(() => _$className(_el$72, classNames("k2b-detail-panel__row", props.class)));
573
+ return _el$72;
574
+ })();
554
575
  const DetailPanelSection = props => {
555
576
  const headingId = `k2b-detail-panel-section-${createUniqueId()}`;
556
577
  const bodyId = `${headingId}-body`;
@@ -584,101 +605,101 @@ const DetailPanelSection = props => {
584
605
  },
585
606
  get fallback() {
586
607
  return (() => {
587
- var _el$102 = _$getNextElement(_tmpl$33),
588
- _el$103 = _el$102.firstChild,
589
- _el$113 = _el$103.firstChild,
590
- [_el$114, _co$27] = _$getNextMarker(_el$113.nextSibling),
591
- _el$104 = _el$114.nextSibling,
592
- _el$105 = _el$104.firstChild,
608
+ var _el$103 = _$getNextElement(_tmpl$33),
609
+ _el$104 = _el$103.firstChild,
610
+ _el$114 = _el$104.firstChild,
611
+ [_el$115, _co$27] = _$getNextMarker(_el$114.nextSibling),
612
+ _el$105 = _el$115.nextSibling,
593
613
  _el$106 = _el$105.firstChild,
594
- _el$107 = _el$106.nextSibling,
595
- [_el$108, _co$25] = _$getNextMarker(_el$107.nextSibling),
596
- _el$110 = _el$105.nextSibling,
597
- [_el$111, _co$26] = _$getNextMarker(_el$110.nextSibling),
598
- _el$115 = _el$104.nextSibling,
599
- [_el$116, _co$28] = _$getNextMarker(_el$115.nextSibling),
600
- _el$118 = _el$103.nextSibling,
601
- [_el$119, _co$29] = _$getNextMarker(_el$118.nextSibling);
602
- _$setAttribute(_el$102, "aria-labelledby", headingId);
603
- _$insert(_el$103, _$createComponent(DetailPanelSectionIcon, {
614
+ _el$107 = _el$106.firstChild,
615
+ _el$108 = _el$107.nextSibling,
616
+ [_el$109, _co$25] = _$getNextMarker(_el$108.nextSibling),
617
+ _el$111 = _el$106.nextSibling,
618
+ [_el$112, _co$26] = _$getNextMarker(_el$111.nextSibling),
619
+ _el$116 = _el$105.nextSibling,
620
+ [_el$117, _co$28] = _$getNextMarker(_el$116.nextSibling),
621
+ _el$119 = _el$104.nextSibling,
622
+ [_el$120, _co$29] = _$getNextMarker(_el$119.nextSibling);
623
+ _$setAttribute(_el$103, "aria-labelledby", headingId);
624
+ _$insert(_el$104, _$createComponent(DetailPanelSectionIcon, {
604
625
  get icon() {
605
626
  return props.icon;
606
627
  },
607
628
  get tone() {
608
629
  return props.tone;
609
630
  }
610
- }), _el$114, _co$27);
611
- _$setAttribute(_el$106, "id", headingId);
612
- _$insert(_el$106, () => props.title);
613
- _$insert(_el$105, _$createComponent(SectionTitleMeta, {
631
+ }), _el$115, _co$27);
632
+ _$setAttribute(_el$107, "id", headingId);
633
+ _$insert(_el$107, () => props.title);
634
+ _$insert(_el$106, _$createComponent(SectionTitleMeta, {
614
635
  get count() {
615
636
  return props.count;
616
637
  },
617
638
  get meta() {
618
639
  return props.meta;
619
640
  }
620
- }), _el$108, _co$25);
621
- _$insert(_el$104, _$createComponent(Show, {
641
+ }), _el$109, _co$25);
642
+ _$insert(_el$105, _$createComponent(Show, {
622
643
  get when() {
623
644
  return props.description;
624
645
  },
625
646
  get children() {
626
- var _el$109 = _$getNextElement(_tmpl$28);
627
- _$insert(_el$109, () => props.description);
628
- return _el$109;
647
+ var _el$110 = _$getNextElement(_tmpl$28);
648
+ _$insert(_el$110, () => props.description);
649
+ return _el$110;
629
650
  }
630
- }), _el$111, _co$26);
631
- _$insert(_el$103, _$createComponent(Show, {
651
+ }), _el$112, _co$26);
652
+ _$insert(_el$104, _$createComponent(Show, {
632
653
  get when() {
633
654
  return props.actions;
634
655
  },
635
656
  get children() {
636
- var _el$112 = _$getNextElement(_tmpl$31);
637
- _$insert(_el$112, () => props.actions);
638
- return _el$112;
657
+ var _el$113 = _$getNextElement(_tmpl$31);
658
+ _$insert(_el$113, () => props.actions);
659
+ return _el$113;
639
660
  }
640
- }), _el$116, _co$28);
641
- _$insert(_el$102, _$createComponent(Show, {
661
+ }), _el$117, _co$28);
662
+ _$insert(_el$103, _$createComponent(Show, {
642
663
  get when() {
643
664
  return resolved();
644
665
  },
645
666
  get children() {
646
- var _el$117 = _$getNextElement(_tmpl$32);
647
- _$insert(_el$117, resolved);
648
- return _el$117;
667
+ var _el$118 = _$getNextElement(_tmpl$32);
668
+ _$insert(_el$118, resolved);
669
+ return _el$118;
649
670
  }
650
- }), _el$119, _co$29);
671
+ }), _el$120, _co$29);
651
672
  _$effect(_p$ => {
652
673
  var _v$18 = className(),
653
674
  _v$19 = props.icon ? "true" : undefined;
654
- _v$18 !== _p$.e && _$className(_el$102, _p$.e = _v$18);
655
- _v$19 !== _p$.t && _$setAttribute(_el$102, "data-icon", _p$.t = _v$19);
675
+ _v$18 !== _p$.e && _$className(_el$103, _p$.e = _v$18);
676
+ _v$19 !== _p$.t && _$setAttribute(_el$103, "data-icon", _p$.t = _v$19);
656
677
  return _p$;
657
678
  }, {
658
679
  e: undefined,
659
680
  t: undefined
660
681
  });
661
- return _el$102;
682
+ return _el$103;
662
683
  })();
663
684
  },
664
685
  get children() {
665
- var _el$72 = _$getNextElement(_tmpl$30),
666
- _el$73 = _el$72.firstChild,
667
- _el$86 = _el$73.nextSibling,
668
- _el$87 = _el$86.firstChild,
669
- _el$97 = _el$87.firstChild,
670
- [_el$98, _co$23] = _$getNextMarker(_el$97.nextSibling),
671
- _el$88 = _el$98.nextSibling,
672
- _el$89 = _el$88.firstChild,
686
+ var _el$73 = _$getNextElement(_tmpl$30),
687
+ _el$74 = _el$73.firstChild,
688
+ _el$87 = _el$74.nextSibling,
689
+ _el$88 = _el$87.firstChild,
690
+ _el$98 = _el$88.firstChild,
691
+ [_el$99, _co$23] = _$getNextMarker(_el$98.nextSibling),
692
+ _el$89 = _el$99.nextSibling,
673
693
  _el$90 = _el$89.firstChild,
674
- _el$91 = _el$90.nextSibling,
675
- [_el$92, _co$21] = _$getNextMarker(_el$91.nextSibling),
676
- _el$94 = _el$89.nextSibling,
677
- [_el$95, _co$22] = _$getNextMarker(_el$94.nextSibling),
678
- _el$99 = _el$88.nextSibling,
679
- [_el$100, _co$24] = _$getNextMarker(_el$99.nextSibling),
680
- _el$101 = _el$86.nextSibling;
681
- _$insert(_el$73, _$createComponent(Button, {
694
+ _el$91 = _el$90.firstChild,
695
+ _el$92 = _el$91.nextSibling,
696
+ [_el$93, _co$21] = _$getNextMarker(_el$92.nextSibling),
697
+ _el$95 = _el$90.nextSibling,
698
+ [_el$96, _co$22] = _$getNextMarker(_el$95.nextSibling),
699
+ _el$100 = _el$89.nextSibling,
700
+ [_el$101, _co$24] = _$getNextMarker(_el$100.nextSibling),
701
+ _el$102 = _el$87.nextSibling;
702
+ _$insert(_el$74, _$createComponent(Button, {
682
703
  ref(r$) {
683
704
  var _ref$2 = expand;
684
705
  typeof _ref$2 === "function" ? _ref$2(r$) : expand = r$;
@@ -700,78 +721,78 @@ const DetailPanelSection = props => {
700
721
  return props.tone;
701
722
  }
702
723
  }), (() => {
703
- var _el$74 = _$getNextElement(_tmpl$26),
704
- _el$75 = _el$74.firstChild,
724
+ var _el$75 = _$getNextElement(_tmpl$26),
705
725
  _el$76 = _el$75.firstChild,
706
- _el$78 = _el$76.nextSibling,
707
- [_el$79, _co$18] = _$getNextMarker(_el$78.nextSibling),
708
- _el$80 = _el$79.nextSibling,
709
- [_el$81, _co$19] = _$getNextMarker(_el$80.nextSibling),
710
- _el$83 = _el$75.nextSibling,
711
- [_el$84, _co$20] = _$getNextMarker(_el$83.nextSibling);
712
- _$setAttribute(_el$76, "id", `${headingId}-closed`);
713
- _$insert(_el$76, () => props.title);
714
- _$insert(_el$75, _$createComponent(SectionTitleMeta, {
726
+ _el$77 = _el$76.firstChild,
727
+ _el$79 = _el$77.nextSibling,
728
+ [_el$80, _co$18] = _$getNextMarker(_el$79.nextSibling),
729
+ _el$81 = _el$80.nextSibling,
730
+ [_el$82, _co$19] = _$getNextMarker(_el$81.nextSibling),
731
+ _el$84 = _el$76.nextSibling,
732
+ [_el$85, _co$20] = _$getNextMarker(_el$84.nextSibling);
733
+ _$setAttribute(_el$77, "id", `${headingId}-closed`);
734
+ _$insert(_el$77, () => props.title);
735
+ _$insert(_el$76, _$createComponent(SectionTitleMeta, {
715
736
  get count() {
716
737
  return props.count;
717
738
  },
718
739
  get meta() {
719
740
  return props.meta;
720
741
  }
721
- }), _el$79, _co$18);
722
- _$insert(_el$75, _$createComponent(Show, {
742
+ }), _el$80, _co$18);
743
+ _$insert(_el$76, _$createComponent(Show, {
723
744
  get when() {
724
745
  return props.summary;
725
746
  },
726
747
  get children() {
727
- var _el$77 = _$getNextElement(_tmpl$24);
728
- _$insert(_el$77, () => props.summary);
729
- return _el$77;
748
+ var _el$78 = _$getNextElement(_tmpl$24);
749
+ _$insert(_el$78, () => props.summary);
750
+ return _el$78;
730
751
  }
731
- }), _el$81, _co$19);
732
- _$insert(_el$74, _$createComponent(Show, {
752
+ }), _el$82, _co$19);
753
+ _$insert(_el$75, _$createComponent(Show, {
733
754
  get when() {
734
755
  return props.description;
735
756
  },
736
757
  get children() {
737
- var _el$82 = _$getNextElement(_tmpl$25);
738
- _$insert(_el$82, () => props.description);
739
- return _el$82;
758
+ var _el$83 = _$getNextElement(_tmpl$25);
759
+ _$insert(_el$83, () => props.description);
760
+ return _el$83;
740
761
  }
741
- }), _el$84, _co$20);
742
- return _el$74;
762
+ }), _el$85, _co$20);
763
+ return _el$75;
743
764
  })(), _$getNextElement(_tmpl$27)];
744
765
  }
745
766
  }));
746
- _$insert(_el$87, _$createComponent(DetailPanelSectionIcon, {
767
+ _$insert(_el$88, _$createComponent(DetailPanelSectionIcon, {
747
768
  get icon() {
748
769
  return props.icon;
749
770
  },
750
771
  get tone() {
751
772
  return props.tone;
752
773
  }
753
- }), _el$98, _co$23);
754
- _$setAttribute(_el$90, "id", headingId);
755
- _$insert(_el$90, () => props.title);
756
- _$insert(_el$89, _$createComponent(SectionTitleMeta, {
774
+ }), _el$99, _co$23);
775
+ _$setAttribute(_el$91, "id", headingId);
776
+ _$insert(_el$91, () => props.title);
777
+ _$insert(_el$90, _$createComponent(SectionTitleMeta, {
757
778
  get count() {
758
779
  return props.count;
759
780
  },
760
781
  get meta() {
761
782
  return props.meta;
762
783
  }
763
- }), _el$92, _co$21);
764
- _$insert(_el$88, _$createComponent(Show, {
784
+ }), _el$93, _co$21);
785
+ _$insert(_el$89, _$createComponent(Show, {
765
786
  get when() {
766
787
  return props.description;
767
788
  },
768
789
  get children() {
769
- var _el$93 = _$getNextElement(_tmpl$28);
770
- _$insert(_el$93, () => props.description);
771
- return _el$93;
790
+ var _el$94 = _$getNextElement(_tmpl$28);
791
+ _$insert(_el$94, () => props.description);
792
+ return _el$94;
772
793
  }
773
- }), _el$95, _co$22);
774
- _$insert(_el$87, _$createComponent(Button, {
794
+ }), _el$96, _co$22);
795
+ _$insert(_el$88, _$createComponent(Button, {
775
796
  ref(r$) {
776
797
  var _ref$3 = collapse;
777
798
  typeof _ref$3 === "function" ? _ref$3(r$) : collapse = r$;
@@ -789,11 +810,11 @@ const DetailPanelSection = props => {
789
810
  get children() {
790
811
  return _$getNextElement(_tmpl$29);
791
812
  }
792
- }), _el$100, _co$24);
813
+ }), _el$101, _co$24);
793
814
  var _ref$4 = body;
794
- typeof _ref$4 === "function" ? _$use(_ref$4, _el$101) : body = _el$101;
795
- _$setAttribute(_el$101, "id", bodyId);
796
- _$insert(_el$101, () => props.children);
815
+ typeof _ref$4 === "function" ? _$use(_ref$4, _el$102) : body = _el$102;
816
+ _$setAttribute(_el$102, "id", bodyId);
817
+ _$insert(_el$102, resolved);
797
818
  _$effect(_p$ => {
798
819
  var _v$10 = className(),
799
820
  _v$11 = open() ? headingId : `${headingId}-closed`,
@@ -803,14 +824,14 @@ const DetailPanelSection = props => {
803
824
  _v$15 = open(),
804
825
  _v$16 = !open(),
805
826
  _v$17 = !open();
806
- _v$10 !== _p$.e && _$className(_el$72, _p$.e = _v$10);
807
- _v$11 !== _p$.t && _$setAttribute(_el$72, "aria-labelledby", _p$.t = _v$11);
808
- _v$12 !== _p$.a && _$setAttribute(_el$72, "data-open", _p$.a = _v$12);
809
- _v$13 !== _p$.o && _$setAttribute(_el$72, "data-icon", _p$.o = _v$13);
810
- _v$14 !== _p$.i && _$setAttribute(_el$72, "data-summary", _p$.i = _v$14);
811
- _v$15 !== _p$.n && _$setProperty(_el$73, "hidden", _p$.n = _v$15);
812
- _v$16 !== _p$.s && _$setProperty(_el$86, "hidden", _p$.s = _v$16);
813
- _v$17 !== _p$.h && _$setProperty(_el$101, "hidden", _p$.h = _v$17);
827
+ _v$10 !== _p$.e && _$className(_el$73, _p$.e = _v$10);
828
+ _v$11 !== _p$.t && _$setAttribute(_el$73, "aria-labelledby", _p$.t = _v$11);
829
+ _v$12 !== _p$.a && _$setAttribute(_el$73, "data-open", _p$.a = _v$12);
830
+ _v$13 !== _p$.o && _$setAttribute(_el$73, "data-icon", _p$.o = _v$13);
831
+ _v$14 !== _p$.i && _$setAttribute(_el$73, "data-summary", _p$.i = _v$14);
832
+ _v$15 !== _p$.n && _$setProperty(_el$74, "hidden", _p$.n = _v$15);
833
+ _v$16 !== _p$.s && _$setProperty(_el$87, "hidden", _p$.s = _v$16);
834
+ _v$17 !== _p$.h && _$setProperty(_el$102, "hidden", _p$.h = _v$17);
814
835
  return _p$;
815
836
  }, {
816
837
  e: undefined,
@@ -822,24 +843,24 @@ const DetailPanelSection = props => {
822
843
  s: undefined,
823
844
  h: undefined
824
845
  });
825
- return _el$72;
846
+ return _el$73;
826
847
  }
827
848
  });
828
849
  };
829
850
  const DetailPanel = props => (() => {
830
- var _el$120 = _$getNextElement(_tmpl$1);
831
- _$insert(_el$120, () => props.children);
851
+ var _el$121 = _$getNextElement(_tmpl$1);
852
+ _$insert(_el$121, () => props.children);
832
853
  _$effect(_p$ => {
833
854
  var _v$20 = classNames("k2b-detail-panel", props.class),
834
855
  _v$21 = props.surface;
835
- _v$20 !== _p$.e && _$className(_el$120, _p$.e = _v$20);
836
- _v$21 !== _p$.t && _$setAttribute(_el$120, "data-surface", _p$.t = _v$21);
856
+ _v$20 !== _p$.e && _$className(_el$121, _p$.e = _v$20);
857
+ _v$21 !== _p$.t && _$setAttribute(_el$121, "data-surface", _p$.t = _v$21);
837
858
  return _p$;
838
859
  }, {
839
860
  e: undefined,
840
861
  t: undefined
841
862
  });
842
- return _el$120;
863
+ return _el$121;
843
864
  })();
844
865
  DetailPanel.Header = DetailPanelHeader;
845
866
  DetailPanel.Body = DetailPanelBody;
@@ -847,5 +868,6 @@ DetailPanel.Summary = DetailPanelSummary;
847
868
  DetailPanel.Group = DetailPanelGroup;
848
869
  DetailPanel.Section = DetailPanelSection;
849
870
  DetailPanel.Action = DetailPanelAction;
871
+ DetailPanel.Row = DetailPanelRow;
850
872
  export default DetailPanel;
851
873
  //# sourceMappingURL=DetailPanel.js.map