@k2b/ui 0.29.0 → 0.30.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 (173) hide show
  1. package/README.md +1 -1
  2. package/dist/base.css +2 -2
  3. package/dist/browser/actions/Dropdown.js +6 -3
  4. package/dist/browser/actions/Dropdown.js.map +1 -1
  5. package/dist/browser/actions/FilterChip.js +137 -7
  6. package/dist/browser/actions/FilterChip.js.map +1 -1
  7. package/dist/browser/actions/SegmentedControl.js +5 -9
  8. package/dist/browser/actions/SegmentedControl.js.map +1 -1
  9. package/dist/browser/actions/SpotlightSearch.js +6 -3
  10. package/dist/browser/actions/SpotlightSearch.js.map +1 -1
  11. package/dist/browser/actions/Tabs.js +5 -2
  12. package/dist/browser/actions/Tabs.js.map +1 -1
  13. package/dist/browser/actions/ViewTabs.js +294 -0
  14. package/dist/browser/actions/ViewTabs.js.map +1 -0
  15. package/dist/browser/actions/filter-messages.js +6 -2
  16. package/dist/browser/actions/filter-messages.js.map +1 -1
  17. package/dist/browser/actions/index.js +2 -1
  18. package/dist/browser/actions/index.js.map +1 -1
  19. package/dist/browser/chat/ChatComposer.js +1108 -604
  20. package/dist/browser/chat/ChatComposer.js.map +1 -1
  21. package/dist/browser/chat/ChatDecision.js +120 -84
  22. package/dist/browser/chat/ChatDecision.js.map +1 -1
  23. package/dist/browser/chat/ChatPrimitives.js +292 -159
  24. package/dist/browser/chat/ChatPrimitives.js.map +1 -1
  25. package/dist/browser/chat/chat-messages.js +8 -0
  26. package/dist/browser/chat/chat-messages.js.map +1 -1
  27. package/dist/browser/chat/command-search.js +26 -15
  28. package/dist/browser/chat/command-search.js.map +1 -1
  29. package/dist/browser/chat/index.js +4 -2
  30. package/dist/browser/chat/index.js.map +1 -1
  31. package/dist/browser/content/Calendar.js +143 -116
  32. package/dist/browser/content/Calendar.js.map +1 -1
  33. package/dist/browser/content/CalendarWeekView.js +291 -266
  34. package/dist/browser/content/CalendarWeekView.js.map +1 -1
  35. package/dist/browser/content/DataTable.js +224 -155
  36. package/dist/browser/content/DataTable.js.map +1 -1
  37. package/dist/browser/content/data-table-messages.js +4 -2
  38. package/dist/browser/content/data-table-messages.js.map +1 -1
  39. package/dist/browser/feedback/MovedHint.js +197 -0
  40. package/dist/browser/feedback/MovedHint.js.map +1 -0
  41. package/dist/browser/feedback/dialog-core.js +66 -9
  42. package/dist/browser/feedback/dialog-core.js.map +1 -1
  43. package/dist/browser/feedback/index.js +1 -0
  44. package/dist/browser/feedback/index.js.map +1 -1
  45. package/dist/browser/feedback/prompts.js +6 -1
  46. package/dist/browser/feedback/prompts.js.map +1 -1
  47. package/dist/browser/inputs/DatePicker.js +337 -212
  48. package/dist/browser/inputs/DatePicker.js.map +1 -1
  49. package/dist/browser/inputs/date-picker.js +59 -5
  50. package/dist/browser/inputs/date-picker.js.map +1 -1
  51. package/dist/browser/intl/messages.js +12 -0
  52. package/dist/browser/intl/messages.js.map +1 -1
  53. package/dist/browser/intl/weekend.js +39 -0
  54. package/dist/browser/intl/weekend.js.map +1 -0
  55. package/dist/browser/layout/AppOverview.js +0 -1
  56. package/dist/browser/layout/AppOverview.js.map +1 -1
  57. package/dist/browser/layout/AppWorkspace.js +688 -471
  58. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  59. package/dist/browser/layout/PageTitle.js +3 -2
  60. package/dist/browser/layout/PageTitle.js.map +1 -1
  61. package/dist/browser/layout/SettingsModal.js +2 -2
  62. package/dist/browser/layout/SettingsModal.js.map +1 -1
  63. package/dist/browser/layout/SidebarSwitcher.js +13 -12
  64. package/dist/browser/layout/SidebarSwitcher.js.map +1 -1
  65. package/dist/browser/layout/TabBar.js +1 -1
  66. package/dist/browser/layout/TabBar.js.map +1 -1
  67. package/dist/browser/layout/app-host-width.js +44 -0
  68. package/dist/browser/layout/app-host-width.js.map +1 -0
  69. package/dist/browser/layout/app-workspace-controller.js +219 -39
  70. package/dist/browser/layout/app-workspace-controller.js.map +1 -1
  71. package/dist/browser/layout/index.js +1 -0
  72. package/dist/browser/layout/index.js.map +1 -1
  73. package/dist/browser/surfaces/Placeholder.js +36 -13
  74. package/dist/browser/surfaces/Placeholder.js.map +1 -1
  75. package/dist/ssr/actions/Dropdown.js +5 -2
  76. package/dist/ssr/actions/Dropdown.js.map +1 -1
  77. package/dist/ssr/actions/FilterChip.js +59 -7
  78. package/dist/ssr/actions/FilterChip.js.map +1 -1
  79. package/dist/ssr/actions/SegmentedControl.js +1 -2
  80. package/dist/ssr/actions/SegmentedControl.js.map +1 -1
  81. package/dist/ssr/actions/SpotlightSearch.js +2 -2
  82. package/dist/ssr/actions/SpotlightSearch.js.map +1 -1
  83. package/dist/ssr/actions/Tabs.js +2 -2
  84. package/dist/ssr/actions/Tabs.js.map +1 -1
  85. package/dist/ssr/actions/ViewTabs.js +211 -0
  86. package/dist/ssr/actions/ViewTabs.js.map +1 -0
  87. package/dist/ssr/actions/filter-messages.js +6 -2
  88. package/dist/ssr/actions/filter-messages.js.map +1 -1
  89. package/dist/ssr/actions/index.js +2 -1
  90. package/dist/ssr/actions/index.js.map +1 -1
  91. package/dist/ssr/chat/ChatComposer.js +546 -131
  92. package/dist/ssr/chat/ChatComposer.js.map +1 -1
  93. package/dist/ssr/chat/ChatDecision.js +33 -19
  94. package/dist/ssr/chat/ChatDecision.js.map +1 -1
  95. package/dist/ssr/chat/ChatPrimitives.js +95 -24
  96. package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
  97. package/dist/ssr/chat/chat-messages.js +8 -0
  98. package/dist/ssr/chat/chat-messages.js.map +1 -1
  99. package/dist/ssr/chat/command-search.js +26 -15
  100. package/dist/ssr/chat/command-search.js.map +1 -1
  101. package/dist/ssr/chat/index.js +4 -2
  102. package/dist/ssr/chat/index.js.map +1 -1
  103. package/dist/ssr/content/Calendar.js +109 -100
  104. package/dist/ssr/content/Calendar.js.map +1 -1
  105. package/dist/ssr/content/CalendarWeekView.js +42 -28
  106. package/dist/ssr/content/CalendarWeekView.js.map +1 -1
  107. package/dist/ssr/content/DataTable.js +78 -31
  108. package/dist/ssr/content/DataTable.js.map +1 -1
  109. package/dist/ssr/content/data-table-messages.js +4 -2
  110. package/dist/ssr/content/data-table-messages.js.map +1 -1
  111. package/dist/ssr/feedback/MovedHint.js +166 -0
  112. package/dist/ssr/feedback/MovedHint.js.map +1 -0
  113. package/dist/ssr/feedback/dialog-core.js +66 -9
  114. package/dist/ssr/feedback/dialog-core.js.map +1 -1
  115. package/dist/ssr/feedback/index.js +1 -0
  116. package/dist/ssr/feedback/index.js.map +1 -1
  117. package/dist/ssr/feedback/prompts.js +6 -1
  118. package/dist/ssr/feedback/prompts.js.map +1 -1
  119. package/dist/ssr/inputs/DatePicker.js +138 -69
  120. package/dist/ssr/inputs/DatePicker.js.map +1 -1
  121. package/dist/ssr/inputs/date-picker.js +59 -5
  122. package/dist/ssr/inputs/date-picker.js.map +1 -1
  123. package/dist/ssr/intl/messages.js +12 -0
  124. package/dist/ssr/intl/messages.js.map +1 -1
  125. package/dist/ssr/intl/weekend.js +39 -0
  126. package/dist/ssr/intl/weekend.js.map +1 -0
  127. package/dist/ssr/layout/AppOverview.js +0 -1
  128. package/dist/ssr/layout/AppOverview.js.map +1 -1
  129. package/dist/ssr/layout/AppWorkspace.js +203 -39
  130. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  131. package/dist/ssr/layout/PageTitle.js +3 -2
  132. package/dist/ssr/layout/PageTitle.js.map +1 -1
  133. package/dist/ssr/layout/SettingsModal.js +2 -2
  134. package/dist/ssr/layout/SettingsModal.js.map +1 -1
  135. package/dist/ssr/layout/SidebarSwitcher.js +13 -12
  136. package/dist/ssr/layout/SidebarSwitcher.js.map +1 -1
  137. package/dist/ssr/layout/TabBar.js +1 -1
  138. package/dist/ssr/layout/TabBar.js.map +1 -1
  139. package/dist/ssr/layout/app-host-width.js +44 -0
  140. package/dist/ssr/layout/app-host-width.js.map +1 -0
  141. package/dist/ssr/layout/app-workspace-controller.js +219 -39
  142. package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
  143. package/dist/ssr/layout/index.js +1 -0
  144. package/dist/ssr/layout/index.js.map +1 -1
  145. package/dist/ssr/surfaces/Placeholder.js +24 -7
  146. package/dist/ssr/surfaces/Placeholder.js.map +1 -1
  147. package/dist/styles.css +1 -1
  148. package/dist/types/actions/Dropdown.d.ts +4 -0
  149. package/dist/types/actions/FilterChip.d.ts +22 -0
  150. package/dist/types/actions/ViewTabs.d.ts +30 -0
  151. package/dist/types/actions/filter-messages.d.ts +2 -0
  152. package/dist/types/actions/index.d.ts +4 -2
  153. package/dist/types/chat/ChatComposer.d.ts +52 -0
  154. package/dist/types/chat/ChatDecision.d.ts +18 -2
  155. package/dist/types/chat/ChatPrimitives.d.ts +10 -0
  156. package/dist/types/chat/chat-messages.d.ts +4 -0
  157. package/dist/types/chat/command-search.d.ts +2 -0
  158. package/dist/types/chat/index.d.ts +9 -8
  159. package/dist/types/content/DataTable.d.ts +3 -0
  160. package/dist/types/content/data-table-messages.d.ts +1 -0
  161. package/dist/types/feedback/MovedHint.d.ts +25 -0
  162. package/dist/types/feedback/dialog-core.d.ts +5 -2
  163. package/dist/types/feedback/index.d.ts +2 -0
  164. package/dist/types/feedback/prompts.d.ts +2 -0
  165. package/dist/types/inputs/DatePicker.d.ts +7 -0
  166. package/dist/types/inputs/date-picker.d.ts +25 -1
  167. package/dist/types/intl/messages.d.ts +6 -0
  168. package/dist/types/intl/weekend.d.ts +12 -0
  169. package/dist/types/layout/AppWorkspace.d.ts +43 -7
  170. package/dist/types/layout/app-host-width.d.ts +6 -0
  171. package/dist/types/layout/index.d.ts +2 -1
  172. package/dist/types/surfaces/Placeholder.d.ts +2 -1
  173. package/package.json +4 -4
@@ -1,7 +1,9 @@
1
1
  import { template as _$template } from "solid-js/web";
2
+ import { delegateEvents as _$delegateEvents } from "solid-js/web";
2
3
  import { setProperty as _$setProperty } from "solid-js/web";
3
4
  import { style as _$style } from "solid-js/web";
4
5
  import { mergeProps as _$mergeProps } from "solid-js/web";
6
+ import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
5
7
  import { className as _$className } from "solid-js/web";
6
8
  import { setAttribute as _$setAttribute } from "solid-js/web";
7
9
  import { effect as _$effect } from "solid-js/web";
@@ -31,12 +33,14 @@ var _tmpl$ = /*#__PURE__*/_$template(`<span class=k2b-chat-progress-dots aria-hi
31
33
  _tmpl$17 = /*#__PURE__*/_$template(`<i class="ti ti-chevron-right k2b-chat-activity__chevron"aria-hidden=true>`),
32
34
  _tmpl$18 = /*#__PURE__*/_$template(`<i>`),
33
35
  _tmpl$19 = /*#__PURE__*/_$template(`<small>`),
34
- _tmpl$20 = /*#__PURE__*/_$template(`<details><summary class=k2b-chat-activity__row></summary><div class=k2b-chat-activity__body>`),
35
- _tmpl$21 = /*#__PURE__*/_$template(`<div><div class=k2b-chat-activity__row>`),
36
- _tmpl$22 = /*#__PURE__*/_$template(`<i class="ti ti-brain"aria-hidden=true>`),
37
- _tmpl$23 = /*#__PURE__*/_$template(`<div><dt></dt><dd>`),
38
- _tmpl$24 = /*#__PURE__*/_$template(`<dl><!$><!/><div><dt></dt><dd></dd></div><div><dt></dt><dd></dd></div><!$><!/><div><dt></dt><dd></dd></div><!$><!/>`);
39
- import { createRenderEffect, createSignal, For, onCleanup, Show } from "solid-js";
36
+ _tmpl$20 = /*#__PURE__*/_$template(`<button type=button class=k2b-chat-activity__toggle><span class=k2b-chat-activity__toggle-label></span><i class="ti ti-chevron-right k2b-chat-activity__chevron"aria-hidden=true>`),
37
+ _tmpl$21 = /*#__PURE__*/_$template(`<details><summary class=k2b-chat-activity__row></summary><div class=k2b-chat-activity__body>`),
38
+ _tmpl$22 = /*#__PURE__*/_$template(`<div><div class=k2b-chat-activity__row>`),
39
+ _tmpl$23 = /*#__PURE__*/_$template(`<div><div class=k2b-chat-activity__row></div><div class=k2b-chat-activity__body>`),
40
+ _tmpl$24 = /*#__PURE__*/_$template(`<i class="ti ti-brain"aria-hidden=true>`),
41
+ _tmpl$25 = /*#__PURE__*/_$template(`<div><dt></dt><dd>`),
42
+ _tmpl$26 = /*#__PURE__*/_$template(`<dl><!$><!/><div><dt></dt><dd></dd></div><div><dt></dt><dd></dd></div><!$><!/><div><dt></dt><dd></dd></div><!$><!/>`);
43
+ import { children, createContext, createRenderEffect, createSignal, createUniqueId, For, onCleanup, Show, useContext } from "solid-js";
40
44
  import { Button } from "../actions/Button";
41
45
  import { Dropdown } from "../actions/Dropdown";
42
46
  import { Tooltip } from "../feedback/Tooltip";
@@ -468,6 +472,42 @@ const ActivityContent = props => [(() => {
468
472
  return _$getNextElement(_tmpl$17);
469
473
  }
470
474
  })];
475
+ const ActivityDisclosureContext = createContext();
476
+ /**
477
+ * The words of an activity label that open its body, with the chevron right after them. With a toggle in its label,
478
+ * only these words are the disclosure, and the rest of the row, chips with links included, stays ordinary content.
479
+ * Outside an activity with a body it renders its words as plain text.
480
+ */
481
+ export function ChatActivityToggle(props) {
482
+ const disclosure = useContext(ActivityDisclosureContext);
483
+ disclosure?.register();
484
+ return _$createComponent(Show, {
485
+ get when() {
486
+ return disclosure?.expandable() ? disclosure : undefined;
487
+ },
488
+ get fallback() {
489
+ return props.children;
490
+ },
491
+ children: current => (() => {
492
+ var _el$46 = _$getNextElement(_tmpl$20),
493
+ _el$47 = _el$46.firstChild;
494
+ _el$46.$$click = () => current().toggle();
495
+ _$insert(_el$47, () => props.children);
496
+ _$effect(_p$ => {
497
+ var _v$14 = current().open() ? "true" : "false",
498
+ _v$15 = current().bodyId;
499
+ _v$14 !== _p$.e && _$setAttribute(_el$46, "aria-expanded", _p$.e = _v$14);
500
+ _v$15 !== _p$.t && _$setAttribute(_el$46, "aria-controls", _p$.t = _v$15);
501
+ return _p$;
502
+ }, {
503
+ e: undefined,
504
+ t: undefined
505
+ });
506
+ _$runHydrationEvents();
507
+ return _el$46;
508
+ })()
509
+ });
510
+ }
471
511
  export function ChatActivity(props) {
472
512
  // The disclosure's real state. A controlled `open` sets it, and every toggle reports it, so the body renders whenever
473
513
  // the row is open, also when a host has not yet passed its new `open` back.
@@ -477,108 +517,200 @@ export function ChatActivity(props) {
477
517
  if (open !== undefined) setExpanded(open);
478
518
  });
479
519
  const open = expanded;
520
+ const setOpen = next => {
521
+ if (next === expanded()) return;
522
+ setExpanded(next);
523
+ props.onOpenChange?.(next);
524
+ };
480
525
  const tone = () => props.tone ?? "neutral";
481
526
  const style = () => props.accent ? {
482
527
  "--k2b-chat-activity-accent": props.accent
483
528
  } : undefined;
484
- return _$createComponent(Show, {
529
+ const expandable = () => Boolean(props.renderBody || props.children);
530
+ // A `Chat.Activity.Toggle` in the label registers while the label resolves, before the row picks its element, so the
531
+ // server and the first browser frame agree on whether the whole row or only the toggle is the disclosure.
532
+ const [toggles, setToggles] = createSignal(0);
533
+ const bodyId = createUniqueId();
534
+ const disclosure = {
535
+ expandable,
536
+ open,
537
+ toggle: () => setOpen(!expanded()),
538
+ bodyId,
539
+ register: () => {
540
+ setToggles(count => count + 1);
541
+ onCleanup(() => setToggles(count => count - 1));
542
+ }
543
+ };
544
+ const body = () => props.renderBody ? _$createComponent(Show, {
485
545
  get when() {
486
- return props.renderBody || props.children;
487
- },
488
- get fallback() {
489
- return (() => {
490
- var _el$49 = _$getNextElement(_tmpl$21),
491
- _el$50 = _el$49.firstChild;
492
- _$insert(_el$50, _$createComponent(ActivityContent, props));
493
- _$effect(_p$ => {
494
- var _v$25 = `k2b-chat-activity ${props.class ?? ""}`,
495
- _v$26 = tone(),
496
- _v$27 = props.accent ? "true" : undefined,
497
- _v$28 = props.busy ? "true" : undefined,
498
- _v$29 = props.wrap ? "true" : undefined,
499
- _v$30 = props.anchorId !== undefined ? String(props.anchorId) : undefined,
500
- _v$31 = style(),
501
- _v$32 = props.busy ? "true" : undefined;
502
- _v$25 !== _p$.e && _$className(_el$49, _p$.e = _v$25);
503
- _v$26 !== _p$.t && _$setAttribute(_el$49, "data-tone", _p$.t = _v$26);
504
- _v$27 !== _p$.a && _$setAttribute(_el$49, "data-accent", _p$.a = _v$27);
505
- _v$28 !== _p$.o && _$setAttribute(_el$49, "data-busy", _p$.o = _v$28);
506
- _v$29 !== _p$.i && _$setAttribute(_el$49, "data-wrap", _p$.i = _v$29);
507
- _v$30 !== _p$.n && _$setAttribute(_el$49, "data-chat-anchor", _p$.n = _v$30);
508
- _p$.s = _$style(_el$49, _v$31, _p$.s);
509
- _v$32 !== _p$.h && _$setAttribute(_el$49, "aria-busy", _p$.h = _v$32);
510
- return _p$;
511
- }, {
512
- e: undefined,
513
- t: undefined,
514
- a: undefined,
515
- o: undefined,
516
- i: undefined,
517
- n: undefined,
518
- s: undefined,
519
- h: undefined
520
- });
521
- return _el$49;
522
- })();
546
+ return _$memo(() => !!open())() ? props.renderBody : undefined;
523
547
  },
548
+ children: render => render()()
549
+ }) : props.children;
550
+ return _$createComponent(ActivityDisclosureContext.Provider, {
551
+ value: disclosure,
524
552
  get children() {
525
- var _el$46 = _$getNextElement(_tmpl$20),
526
- _el$47 = _el$46.firstChild,
527
- _el$48 = _el$47.nextSibling;
528
- _el$46.addEventListener("toggle", event => {
529
- setExpanded(event.currentTarget.open);
530
- props.onOpenChange?.(event.currentTarget.open);
531
- });
532
- _$insert(_el$47, _$createComponent(ActivityContent, _$mergeProps(props, {
533
- disclosure: true
534
- })));
535
- _$insert(_el$48, (() => {
536
- var _c$ = _$memo(() => !!props.renderBody);
537
- return () => _c$() ? _$createComponent(Show, {
553
+ return (() => {
554
+ const label = children(() => props.label);
555
+ return _$createComponent(Show, {
538
556
  get when() {
539
- return _$memo(() => !!open())() ? props.renderBody : undefined;
557
+ return expandable();
540
558
  },
541
- children: render => render()()
542
- }) : props.children;
543
- })());
544
- _$effect(_p$ => {
545
- var _v$14 = `k2b-chat-activity ${props.class ?? ""}`,
546
- _v$15 = tone(),
547
- _v$16 = props.accent ? "true" : undefined,
548
- _v$17 = props.busy ? "true" : undefined,
549
- _v$18 = props.wrap ? "true" : undefined,
550
- _v$19 = props.bodyInset === false ? "false" : undefined,
551
- _v$20 = props.anchorId !== undefined ? String(props.anchorId) : undefined,
552
- _v$21 = style(),
553
- _v$22 = open(),
554
- _v$23 = props.busy ? "true" : undefined,
555
- _v$24 = props.ariaLabel;
556
- _v$14 !== _p$.e && _$className(_el$46, _p$.e = _v$14);
557
- _v$15 !== _p$.t && _$setAttribute(_el$46, "data-tone", _p$.t = _v$15);
558
- _v$16 !== _p$.a && _$setAttribute(_el$46, "data-accent", _p$.a = _v$16);
559
- _v$17 !== _p$.o && _$setAttribute(_el$46, "data-busy", _p$.o = _v$17);
560
- _v$18 !== _p$.i && _$setAttribute(_el$46, "data-wrap", _p$.i = _v$18);
561
- _v$19 !== _p$.n && _$setAttribute(_el$46, "data-body-inset", _p$.n = _v$19);
562
- _v$20 !== _p$.s && _$setAttribute(_el$46, "data-chat-anchor", _p$.s = _v$20);
563
- _p$.h = _$style(_el$46, _v$21, _p$.h);
564
- _v$22 !== _p$.r && _$setProperty(_el$46, "open", _p$.r = _v$22);
565
- _v$23 !== _p$.d && _$setAttribute(_el$46, "aria-busy", _p$.d = _v$23);
566
- _v$24 !== _p$.l && _$setAttribute(_el$47, "aria-label", _p$.l = _v$24);
567
- return _p$;
568
- }, {
569
- e: undefined,
570
- t: undefined,
571
- a: undefined,
572
- o: undefined,
573
- i: undefined,
574
- n: undefined,
575
- s: undefined,
576
- h: undefined,
577
- r: undefined,
578
- d: undefined,
579
- l: undefined
580
- });
581
- return _el$46;
559
+ get fallback() {
560
+ return (() => {
561
+ var _el$51 = _$getNextElement(_tmpl$22),
562
+ _el$52 = _el$51.firstChild;
563
+ _$insert(_el$52, _$createComponent(ActivityContent, _$mergeProps(props, {
564
+ get label() {
565
+ return label();
566
+ }
567
+ })));
568
+ _$effect(_p$ => {
569
+ var _v$27 = `k2b-chat-activity ${props.class ?? ""}`,
570
+ _v$28 = tone(),
571
+ _v$29 = props.accent ? "true" : undefined,
572
+ _v$30 = props.busy ? "true" : undefined,
573
+ _v$31 = props.wrap ? "true" : undefined,
574
+ _v$32 = props.anchorId !== undefined ? String(props.anchorId) : undefined,
575
+ _v$33 = style(),
576
+ _v$34 = props.busy ? "true" : undefined;
577
+ _v$27 !== _p$.e && _$className(_el$51, _p$.e = _v$27);
578
+ _v$28 !== _p$.t && _$setAttribute(_el$51, "data-tone", _p$.t = _v$28);
579
+ _v$29 !== _p$.a && _$setAttribute(_el$51, "data-accent", _p$.a = _v$29);
580
+ _v$30 !== _p$.o && _$setAttribute(_el$51, "data-busy", _p$.o = _v$30);
581
+ _v$31 !== _p$.i && _$setAttribute(_el$51, "data-wrap", _p$.i = _v$31);
582
+ _v$32 !== _p$.n && _$setAttribute(_el$51, "data-chat-anchor", _p$.n = _v$32);
583
+ _p$.s = _$style(_el$51, _v$33, _p$.s);
584
+ _v$34 !== _p$.h && _$setAttribute(_el$51, "aria-busy", _p$.h = _v$34);
585
+ return _p$;
586
+ }, {
587
+ e: undefined,
588
+ t: undefined,
589
+ a: undefined,
590
+ o: undefined,
591
+ i: undefined,
592
+ n: undefined,
593
+ s: undefined,
594
+ h: undefined
595
+ });
596
+ return _el$51;
597
+ })();
598
+ },
599
+ get children() {
600
+ return _$createComponent(Show, {
601
+ get when() {
602
+ return toggles() === 0;
603
+ },
604
+ get fallback() {
605
+ return (() => {
606
+ var _el$53 = _$getNextElement(_tmpl$23),
607
+ _el$54 = _el$53.firstChild,
608
+ _el$55 = _el$54.nextSibling;
609
+ _$insert(_el$54, _$createComponent(ActivityContent, _$mergeProps(props, {
610
+ get label() {
611
+ return label();
612
+ }
613
+ })));
614
+ _$setAttribute(_el$55, "id", bodyId);
615
+ _$insert(_el$55, body);
616
+ _$effect(_p$ => {
617
+ var _v$35 = `k2b-chat-activity ${props.class ?? ""}`,
618
+ _v$36 = tone(),
619
+ _v$37 = props.accent ? "true" : undefined,
620
+ _v$38 = props.busy ? "true" : undefined,
621
+ _v$39 = props.wrap ? "true" : undefined,
622
+ _v$40 = props.bodyInset === false ? "false" : undefined,
623
+ _v$41 = open() ? "true" : "false",
624
+ _v$42 = props.anchorId !== undefined ? String(props.anchorId) : undefined,
625
+ _v$43 = style(),
626
+ _v$44 = props.busy ? "true" : undefined,
627
+ _v$45 = !open();
628
+ _v$35 !== _p$.e && _$className(_el$53, _p$.e = _v$35);
629
+ _v$36 !== _p$.t && _$setAttribute(_el$53, "data-tone", _p$.t = _v$36);
630
+ _v$37 !== _p$.a && _$setAttribute(_el$53, "data-accent", _p$.a = _v$37);
631
+ _v$38 !== _p$.o && _$setAttribute(_el$53, "data-busy", _p$.o = _v$38);
632
+ _v$39 !== _p$.i && _$setAttribute(_el$53, "data-wrap", _p$.i = _v$39);
633
+ _v$40 !== _p$.n && _$setAttribute(_el$53, "data-body-inset", _p$.n = _v$40);
634
+ _v$41 !== _p$.s && _$setAttribute(_el$53, "data-open", _p$.s = _v$41);
635
+ _v$42 !== _p$.h && _$setAttribute(_el$53, "data-chat-anchor", _p$.h = _v$42);
636
+ _p$.r = _$style(_el$53, _v$43, _p$.r);
637
+ _v$44 !== _p$.d && _$setAttribute(_el$53, "aria-busy", _p$.d = _v$44);
638
+ _v$45 !== _p$.l && _$setProperty(_el$55, "hidden", _p$.l = _v$45);
639
+ return _p$;
640
+ }, {
641
+ e: undefined,
642
+ t: undefined,
643
+ a: undefined,
644
+ o: undefined,
645
+ i: undefined,
646
+ n: undefined,
647
+ s: undefined,
648
+ h: undefined,
649
+ r: undefined,
650
+ d: undefined,
651
+ l: undefined
652
+ });
653
+ return _el$53;
654
+ })();
655
+ },
656
+ get children() {
657
+ var _el$48 = _$getNextElement(_tmpl$21),
658
+ _el$49 = _el$48.firstChild,
659
+ _el$50 = _el$49.nextSibling;
660
+ _el$48.addEventListener("toggle", event => {
661
+ setExpanded(event.currentTarget.open);
662
+ props.onOpenChange?.(event.currentTarget.open);
663
+ });
664
+ _$insert(_el$49, _$createComponent(ActivityContent, _$mergeProps(props, {
665
+ get label() {
666
+ return label();
667
+ },
668
+ disclosure: true
669
+ })));
670
+ _$insert(_el$50, body);
671
+ _$effect(_p$ => {
672
+ var _v$16 = `k2b-chat-activity ${props.class ?? ""}`,
673
+ _v$17 = tone(),
674
+ _v$18 = props.accent ? "true" : undefined,
675
+ _v$19 = props.busy ? "true" : undefined,
676
+ _v$20 = props.wrap ? "true" : undefined,
677
+ _v$21 = props.bodyInset === false ? "false" : undefined,
678
+ _v$22 = props.anchorId !== undefined ? String(props.anchorId) : undefined,
679
+ _v$23 = style(),
680
+ _v$24 = open(),
681
+ _v$25 = props.busy ? "true" : undefined,
682
+ _v$26 = props.ariaLabel;
683
+ _v$16 !== _p$.e && _$className(_el$48, _p$.e = _v$16);
684
+ _v$17 !== _p$.t && _$setAttribute(_el$48, "data-tone", _p$.t = _v$17);
685
+ _v$18 !== _p$.a && _$setAttribute(_el$48, "data-accent", _p$.a = _v$18);
686
+ _v$19 !== _p$.o && _$setAttribute(_el$48, "data-busy", _p$.o = _v$19);
687
+ _v$20 !== _p$.i && _$setAttribute(_el$48, "data-wrap", _p$.i = _v$20);
688
+ _v$21 !== _p$.n && _$setAttribute(_el$48, "data-body-inset", _p$.n = _v$21);
689
+ _v$22 !== _p$.s && _$setAttribute(_el$48, "data-chat-anchor", _p$.s = _v$22);
690
+ _p$.h = _$style(_el$48, _v$23, _p$.h);
691
+ _v$24 !== _p$.r && _$setProperty(_el$48, "open", _p$.r = _v$24);
692
+ _v$25 !== _p$.d && _$setAttribute(_el$48, "aria-busy", _p$.d = _v$25);
693
+ _v$26 !== _p$.l && _$setAttribute(_el$49, "aria-label", _p$.l = _v$26);
694
+ return _p$;
695
+ }, {
696
+ e: undefined,
697
+ t: undefined,
698
+ a: undefined,
699
+ o: undefined,
700
+ i: undefined,
701
+ n: undefined,
702
+ s: undefined,
703
+ h: undefined,
704
+ r: undefined,
705
+ d: undefined,
706
+ l: undefined
707
+ });
708
+ return _el$48;
709
+ }
710
+ });
711
+ }
712
+ });
713
+ })();
582
714
  }
583
715
  });
584
716
  }
@@ -647,74 +779,74 @@ export function ChatContextUsage(props) {
647
779
  });
648
780
  }
649
781
  }), (() => {
650
- var _el$53 = _$getNextElement(_tmpl$24),
651
- _el$69 = _el$53.firstChild,
652
- [_el$70, _co$1] = _$getNextMarker(_el$69.nextSibling),
653
- _el$54 = _el$70.nextSibling,
654
- _el$55 = _el$54.firstChild,
655
- _el$56 = _el$55.nextSibling,
656
- _el$57 = _el$54.nextSibling,
657
- _el$58 = _el$57.firstChild,
658
- _el$59 = _el$58.nextSibling,
659
- _el$71 = _el$57.nextSibling,
660
- [_el$72, _co$10] = _$getNextMarker(_el$71.nextSibling),
661
- _el$63 = _el$72.nextSibling,
662
- _el$64 = _el$63.firstChild,
663
- _el$65 = _el$64.nextSibling,
664
- _el$73 = _el$63.nextSibling,
665
- [_el$74, _co$11] = _$getNextMarker(_el$73.nextSibling);
666
- _$insert(_el$53, _$createComponent(Show, {
782
+ var _el$58 = _$getNextElement(_tmpl$26),
783
+ _el$74 = _el$58.firstChild,
784
+ [_el$75, _co$1] = _$getNextMarker(_el$74.nextSibling),
785
+ _el$59 = _el$75.nextSibling,
786
+ _el$60 = _el$59.firstChild,
787
+ _el$61 = _el$60.nextSibling,
788
+ _el$62 = _el$59.nextSibling,
789
+ _el$63 = _el$62.firstChild,
790
+ _el$64 = _el$63.nextSibling,
791
+ _el$76 = _el$62.nextSibling,
792
+ [_el$77, _co$10] = _$getNextMarker(_el$76.nextSibling),
793
+ _el$68 = _el$77.nextSibling,
794
+ _el$69 = _el$68.firstChild,
795
+ _el$70 = _el$69.nextSibling,
796
+ _el$78 = _el$68.nextSibling,
797
+ [_el$79, _co$11] = _$getNextMarker(_el$78.nextSibling);
798
+ _$insert(_el$58, _$createComponent(Show, {
667
799
  get when() {
668
800
  return props.modelLabel;
669
801
  },
670
802
  children: model => (() => {
671
- var _el$75 = _$getNextElement(_tmpl$23),
672
- _el$76 = _el$75.firstChild,
673
- _el$77 = _el$76.nextSibling;
674
- _$insert(_el$76, () => chatMessages().model);
675
- _$insert(_el$77, model);
676
- return _el$75;
803
+ var _el$80 = _$getNextElement(_tmpl$25),
804
+ _el$81 = _el$80.firstChild,
805
+ _el$82 = _el$81.nextSibling;
806
+ _$insert(_el$81, () => chatMessages().model);
807
+ _$insert(_el$82, model);
808
+ return _el$80;
677
809
  })()
678
- }), _el$70, _co$1);
679
- _$insert(_el$55, () => chatMessages().input);
680
- _$insert(_el$56, () => formattedUsageValue(usage().input));
681
- _$insert(_el$58, () => chatMessages().output);
682
- _$insert(_el$59, () => formattedUsageValue(usage().output));
683
- _$insert(_el$53, _$createComponent(Show, {
810
+ }), _el$75, _co$1);
811
+ _$insert(_el$60, () => chatMessages().input);
812
+ _$insert(_el$61, () => formattedUsageValue(usage().input));
813
+ _$insert(_el$63, () => chatMessages().output);
814
+ _$insert(_el$64, () => formattedUsageValue(usage().output));
815
+ _$insert(_el$58, _$createComponent(Show, {
684
816
  get when() {
685
817
  return loopUsage().reported;
686
818
  },
687
819
  get children() {
688
- var _el$60 = _$getNextElement(_tmpl$23),
689
- _el$61 = _el$60.firstChild,
690
- _el$62 = _el$61.nextSibling;
691
- _$insert(_el$61, () => chatMessages().loopTotal);
692
- _$insert(_el$62, () => formattedUsageValue(loopUsage().total));
693
- return _el$60;
820
+ var _el$65 = _$getNextElement(_tmpl$25),
821
+ _el$66 = _el$65.firstChild,
822
+ _el$67 = _el$66.nextSibling;
823
+ _$insert(_el$66, () => chatMessages().loopTotal);
824
+ _$insert(_el$67, () => formattedUsageValue(loopUsage().total));
825
+ return _el$65;
694
826
  }
695
- }), _el$72, _co$10);
696
- _$insert(_el$64, () => chatMessages().contextWindow);
697
- _$insert(_el$65, (() => {
698
- var _c$3 = _$memo(() => windowSize() > 0);
699
- return () => _c$3() ? formatNumber(windowSize()) : chatMessages().notConfigured;
827
+ }), _el$77, _co$10);
828
+ _$insert(_el$69, () => chatMessages().contextWindow);
829
+ _$insert(_el$70, (() => {
830
+ var _c$2 = _$memo(() => windowSize() > 0);
831
+ return () => _c$2() ? formatNumber(windowSize()) : chatMessages().notConfigured;
700
832
  })());
701
- _$insert(_el$53, _$createComponent(Show, {
833
+ _$insert(_el$58, _$createComponent(Show, {
702
834
  get when() {
703
835
  return remaining() !== null;
704
836
  },
705
837
  get children() {
706
- var _el$66 = _$getNextElement(_tmpl$23),
707
- _el$67 = _el$66.firstChild,
708
- _el$68 = _el$67.nextSibling;
709
- _$insert(_el$67, () => chatMessages().remaining);
710
- _$insert(_el$68, (() => {
711
- var _c$4 = _$memo(() => remaining() === null);
712
- return () => _c$4() ? messages().unknown : formatNumber(remaining());
838
+ var _el$71 = _$getNextElement(_tmpl$25),
839
+ _el$72 = _el$71.firstChild,
840
+ _el$73 = _el$72.nextSibling;
841
+ _$insert(_el$72, () => chatMessages().remaining);
842
+ _$insert(_el$73, (() => {
843
+ var _c$3 = _$memo(() => remaining() === null);
844
+ return () => _c$3() ? messages().unknown : formatNumber(remaining());
713
845
  })());
714
- return _el$66;
846
+ return _el$71;
715
847
  }
716
- }), _el$74, _co$11);
717
- return _el$53;
848
+ }), _el$79, _co$11);
849
+ return _el$58;
718
850
  })(), _$createComponent(Show, {
719
851
  get when() {
720
852
  return props.action;
@@ -731,9 +863,9 @@ export function ChatContextUsage(props) {
731
863
  },
732
864
  get children() {
733
865
  return [(() => {
734
- var _el$78 = _$getNextElement(_tmpl$1);
735
- _$effect(() => _$className(_el$78, busy() ? "ti ti-loader-2 k2b-spin" : action().icon));
736
- return _el$78;
866
+ var _el$83 = _$getNextElement(_tmpl$1);
867
+ _$effect(() => _$className(_el$83, busy() ? "ti ti-loader-2 k2b-spin" : action().icon));
868
+ return _el$83;
737
869
  })(), _$memo(() => action().label)];
738
870
  }
739
871
  })
@@ -752,15 +884,16 @@ export function ChatContextUsage(props) {
752
884
  return accessibleLabel();
753
885
  },
754
886
  get children() {
755
- return [_$getNextElement(_tmpl$22), (() => {
756
- var _el$52 = _$getNextElement(_tmpl$0);
757
- _$insert(_el$52, (() => {
758
- var _c$2 = _$memo(() => percent() === null);
759
- return () => _c$2() ? "–" : `${percent()}%`;
887
+ return [_$getNextElement(_tmpl$24), (() => {
888
+ var _el$57 = _$getNextElement(_tmpl$0);
889
+ _$insert(_el$57, (() => {
890
+ var _c$ = _$memo(() => percent() === null);
891
+ return () => _c$() ? "–" : `${percent()}%`;
760
892
  })());
761
- return _el$52;
893
+ return _el$57;
762
894
  })()];
763
895
  }
764
896
  });
765
897
  }
898
+ _$delegateEvents(["click"]);
766
899
  //# sourceMappingURL=ChatPrimitives.js.map