@elmethis/qwik 1.0.0-alpha.27 → 1.0.0-alpha.29

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.
@@ -2,14 +2,14 @@ var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key2, value) => key2 in obj ? __defProp(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value;
3
3
  var __publicField = (obj, key2, value) => __defNormalProp(obj, typeof key2 !== "symbol" ? key2 + "" : key2, value);
4
4
  import "@elmethis/core/tokens.css";
5
- import { componentQrl, inlinedQrl, _restProps, _jsxSplit, _getVarProps, _fnSignal, _getConstProps, _jsxSorted, Slot, useSignal, useContext, _wrapProp, useContextProvider, createContextId, _captures, useTaskQrl, noSerialize, useStore, useVisibleTaskQrl, useComputedQrl, useId, Fragment, isSignal, useOnWindow, useOnDocument } from "@qwik.dev/core";
5
+ import { componentQrl, inlinedQrl, _restProps, _jsxSplit, _getVarProps, _fnSignal, _getConstProps, _jsxSorted, Slot, useSignal, useContext, _wrapProp, useContextProvider, createContextId, _captures, useTaskQrl, noSerialize, useStore, useVisibleTaskQrl, useComputedQrl, useId, Fragment as Fragment$1, isSignal, useOnWindow, useOnDocument } from "@qwik.dev/core";
6
6
  import { ComponentContext, Catalog, MessageProcessor } from "@a2ui/web_core/v0_9";
7
7
  import { TextApi, RowApi, ColumnApi, ListApi, CardApi, ButtonApi, ImageApi, IconApi, DividerApi, TextFieldApi, CheckBoxApi, SliderApi, TabsApi, ModalApi, VideoApi, AudioPlayerApi, ChoicePickerApi, DateTimeInputApi, BASIC_COMPONENTS, BASIC_FUNCTIONS } from "@a2ui/web_core/v0_9/basic_catalog";
8
- import { Fragment as Fragment$1 } from "@qwik.dev/core/jsx-runtime";
8
+ import { Fragment } from "@qwik.dev/core/jsx-runtime";
9
9
  import { renderToString } from "katex";
10
- import { normalizeLanguage, languageIcons, RichTextApi, LinkTextApi, IconApi as IconApi$1, ColumnApi as ColumnApi$1, ColumnListApi, HeadingApi, ParagraphApi, ListApi as ListApi$1, ListItemApi, BlockQuoteApi, CalloutApi, DividerApi as DividerApi$1, ToggleApi, BookmarkApi, FileApi, BlockImageApi, CodeBlockApi, KatexApi, MermaidApi, ContentTabApi, ContentTabsApi, TableApi, TableRowApi, TableCellApi, UnsupportedApi } from "@elmethis/core";
10
+ import { normalizeLanguage, languageIcons, RichTextApi, LinkTextApi, IconApi as IconApi$1, ColumnApi as ColumnApi$1, ColumnListApi, HeadingApi, ParagraphApi, ListApi as ListApi$1, ListItemApi, BlockQuoteApi, CalloutApi, DividerApi as DividerApi$1, ToggleApi, BookmarkApi, FileApi, AudioApi, VideoApi as VideoApi$1, BlockImageApi, CodeBlockApi, KatexApi, MermaidApi, ContentTabApi, ContentTabsApi, TableApi, TableRowApi, TableCellApi, UnsupportedApi } from "@elmethis/core";
11
11
  import { BlockImageApi as BlockImageApi2, BlockQuoteApi as BlockQuoteApi2, BookmarkApi as BookmarkApi2, CalloutApi as CalloutApi2, CodeBlockApi as CodeBlockApi2, ColumnApi as ColumnApi2, ColumnListApi as ColumnListApi2, ContentTabApi as ContentTabApi2, ContentTabsApi as ContentTabsApi2, DividerApi as DividerApi2, FileApi as FileApi2, HeadingApi as HeadingApi2, IconApi as IconApi2, KatexApi as KatexApi2, LinkTextApi as LinkTextApi2, ListApi as ListApi2, ListItemApi as ListItemApi2, MermaidApi as MermaidApi2, ParagraphApi as ParagraphApi2, RichTextApi as RichTextApi2, RowApi as RowApi2, TableApi as TableApi2, TableCellApi as TableCellApi2, TableRowApi as TableRowApi2, ToggleApi as ToggleApi2, UnsupportedApi as UnsupportedApi2 } from "@elmethis/core";
12
- import { mdiCodeTags, mdiClipboardCheckOutline, mdiClipboardOutline, mdiMessageImageOutline, mdiFile, mdiDownload, mdiLinkVariant, mdiChevronRight, mdiPlus, mdiFormatQuoteOpen, mdiFormatQuoteClose, mdiAlertOctagram, mdiAlert, mdiShieldAlert, mdiLightbulbOn, mdiInformation, mdiAccount, mdiClose, mdiStop, mdiSend, mdiHammerScrewdriver, mdiFunctionVariant, mdiCodeJson, mdiWrenchClock, mdiImage, mdiTextBox, mdiCreation, mdiRefresh, mdiForumOutline, mdiArrowDownDropCircleOutline, mdiMenuDown, mdiTextLong, mdiText, mdiEyeOutline, mdiEyeOffOutline, mdiTrashCanOutline, mdiCheckCircle, mdiCheckCircleOutline, mdiHome, mdiApplicationOutline, mdiFolderOpen, mdiHexadecimal, mdiFormatColorFill } from "@mdi/js";
12
+ import { mdiCodeTags, mdiClipboardCheckOutline, mdiClipboardOutline, mdiVolumeOff, mdiVolumeLow, mdiVolumeMedium, mdiVolumeHigh, mdiAlertCircleOutline, mdiMusicNote, mdiRewind10, mdiPause, mdiPlay, mdiFastForward10, mdiMessageImageOutline, mdiFile, mdiDownload, mdiLinkVariant, mdiChevronRight, mdiPlus, mdiFormatQuoteOpen, mdiFormatQuoteClose, mdiAlertOctagram, mdiAlert, mdiShieldAlert, mdiLightbulbOn, mdiInformation, mdiAccount, mdiClose, mdiStop, mdiSend, mdiHammerScrewdriver, mdiFunctionVariant, mdiCodeJson, mdiWrenchClock, mdiImage, mdiTextBox, mdiCreation, mdiRefresh, mdiForumOutline, mdiArrowDownDropCircleOutline, mdiMenuDown, mdiTextLong, mdiText, mdiEyeOutline, mdiEyeOffOutline, mdiTrashCanOutline, mdiCheckCircle, mdiCheckCircleOutline, mdiHome, mdiApplicationOutline, mdiFolderOpen, mdiHexadecimal, mdiFormatColorFill } from "@mdi/js";
13
13
  import { codeToHtml } from "shiki";
14
14
  import ikumaDark from "@46ki75/ikuma-theme/dark";
15
15
  import ikumaLight from "@46ki75/ikuma-theme/light";
@@ -22,7 +22,7 @@ import autoAnimate from "@formkit/auto-animate";
22
22
  import { cloneDeep, isEqual } from "es-toolkit";
23
23
  const tab = "_tab_1fco0_14";
24
24
  const active$3 = "_active_1fco0_37";
25
- const styles$R = {
25
+ const styles$S = {
26
26
  "elm-tabs": "_elm-tabs_1fco0_1",
27
27
  "tab-container": "_tab-container_1fco0_14",
28
28
  tab,
@@ -35,7 +35,7 @@ const open$1 = "_open_12wiu_11";
35
35
  const column$1 = "_column_12wiu_16";
36
36
  const both = "_both_12wiu_27";
37
37
  const inner = "_inner_12wiu_44";
38
- const styles$Q = {
38
+ const styles$R = {
39
39
  "elm-collapse": "_elm-collapse_12wiu_1",
40
40
  row: row$2,
41
41
  open: open$1,
@@ -43,7 +43,7 @@ const styles$Q = {
43
43
  both,
44
44
  inner
45
45
  };
46
- const _hf0$A = (p0) => ({
46
+ const _hf0$B = (p0) => ({
47
47
  "--elmethis-scoped-transition-timing-function": p0.transitionTimingFunction ?? "ease-in-out"
48
48
  });
49
49
  const ElmCollapse = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_rawProps) => {
@@ -55,28 +55,28 @@ const ElmCollapse = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_ra
55
55
  ]);
56
56
  return /* @__PURE__ */ _jsxSplit("div", {
57
57
  class: [
58
- styles$Q["elm-collapse"],
58
+ styles$R["elm-collapse"],
59
59
  {
60
- [styles$Q["open"]]: _rawProps.isOpen,
61
- [styles$Q["row"]]: (_rawProps.direction ?? "row") === "row",
62
- [styles$Q["column"]]: (_rawProps.direction ?? "row") === "column",
63
- [styles$Q["both"]]: (_rawProps.direction ?? "row") === "both"
60
+ [styles$R["open"]]: _rawProps.isOpen,
61
+ [styles$R["row"]]: (_rawProps.direction ?? "row") === "row",
62
+ [styles$R["column"]]: (_rawProps.direction ?? "row") === "column",
63
+ [styles$R["both"]]: (_rawProps.direction ?? "row") === "both"
64
64
  },
65
65
  _rawProps.class
66
66
  ],
67
- style: _fnSignal(_hf0$A, [
67
+ style: _fnSignal(_hf0$B, [
68
68
  _rawProps
69
69
  ]),
70
70
  ..._getVarProps(props)
71
71
  }, _getConstProps(props), /* @__PURE__ */ _jsxSorted("div", null, {
72
- class: styles$Q["inner"]
72
+ class: styles$R["inner"]
73
73
  }, /* @__PURE__ */ _jsxSorted(Slot, null, null, null, 3, "iE_0"), 1, null), 0, "iE_1");
74
74
  }, "ElmCollapse_component_P0XF5bWlJxw"));
75
75
  function useBindableSignal({ signal, defaultValue }) {
76
76
  const internal = useSignal(defaultValue);
77
77
  return signal ?? internal;
78
78
  }
79
- const _hf0$z = (p0, p1) => p0.selectedValue.value === p1.value;
79
+ const _hf0$A = (p0, p1) => p0.selectedValue.value === p1.value;
80
80
  const ElmTabsContext = createContextId("elmethis.tabs");
81
81
  const ElmTabs = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
82
82
  const rest = _restProps(props, [
@@ -95,7 +95,7 @@ const ElmTabs = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props)
95
95
  });
96
96
  return /* @__PURE__ */ _jsxSplit("div", {
97
97
  class: [
98
- styles$R["elm-tabs"],
98
+ styles$S["elm-tabs"],
99
99
  props.class
100
100
  ],
101
101
  ..._getVarProps(rest)
@@ -107,7 +107,7 @@ const ElmTabList = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_raw
107
107
  ]);
108
108
  return /* @__PURE__ */ _jsxSplit("div", {
109
109
  class: [
110
- styles$R["tab-container"],
110
+ styles$S["tab-container"],
111
111
  _rawProps.class
112
112
  ],
113
113
  ..._getVarProps(rest)
@@ -128,9 +128,9 @@ const ElmTab = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) =
128
128
  ]);
129
129
  return /* @__PURE__ */ _jsxSplit("div", {
130
130
  class: [
131
- styles$R["tab"],
131
+ styles$S["tab"],
132
132
  {
133
- [styles$R["active"]]: ctx.selectedValue.value === props.value
133
+ [styles$S["active"]]: ctx.selectedValue.value === props.value
134
134
  },
135
135
  props.class
136
136
  ],
@@ -146,19 +146,19 @@ const ElmTabPanel = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((pro
146
146
  const ctx = useContext(ElmTabsContext);
147
147
  return /* @__PURE__ */ _jsxSplit("div", {
148
148
  class: [
149
- styles$R["tab-content"],
149
+ styles$S["tab-content"],
150
150
  props.class
151
151
  ],
152
152
  ..._getVarProps(rest)
153
153
  }, _getConstProps(rest), /* @__PURE__ */ _jsxSorted(ElmCollapse, null, {
154
154
  direction: "row",
155
- isOpen: _fnSignal(_hf0$z, [
155
+ isOpen: _fnSignal(_hf0$A, [
156
156
  ctx,
157
157
  props
158
158
  ]),
159
159
  transitionTimingFunction: _wrapProp(ctx, "transitionTimingFunction")
160
160
  }, /* @__PURE__ */ _jsxSorted("div", null, {
161
- class: styles$R["tab-content-inner"]
161
+ class: styles$S["tab-content-inner"]
162
162
  }, /* @__PURE__ */ _jsxSorted(Slot, null, null, null, 3, "lK_6"), 1, null), 1, "lK_7"), 0, "lK_8");
163
163
  }, "ElmTabPanel_component_4GhH207NkRY"));
164
164
  const h1 = "_h1_9vw8y_13";
@@ -167,7 +167,7 @@ const h3 = "_h3_9vw8y_72";
167
167
  const h4 = "_h4_9vw8y_87";
168
168
  const h5 = "_h5_9vw8y_91";
169
169
  const h6 = "_h6_9vw8y_95";
170
- const styles$P = {
170
+ const styles$Q = {
171
171
  "elm-heading": "_elm-heading_9vw8y_1",
172
172
  h1,
173
173
  h2,
@@ -181,7 +181,7 @@ const text$2 = "_text_zme4t_1";
181
181
  const textStyles = {
182
182
  text: text$2
183
183
  };
184
- const styles$O = {
184
+ const styles$P = {
185
185
  "elm-fragment-identifier": "_elm-fragment-identifier_xb2v4_1"
186
186
  };
187
187
  const ElmFragmentIdentifier = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_rawProps) => {
@@ -202,7 +202,7 @@ const ElmFragmentIdentifier = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlin
202
202
  }, "ElmFragmentIdentifier_component_handleHashClick_0I1su3qeCsY");
203
203
  return /* @__PURE__ */ _jsxSplit("span", {
204
204
  class: [
205
- styles$O["elm-fragment-identifier"],
205
+ styles$P["elm-fragment-identifier"],
206
206
  _rawProps.class
207
207
  ],
208
208
  "q-e:click": /* @__PURE__ */ inlinedQrl((_, _1, _rawProps2, handleHashClick2) => handleHashClick2(_rawProps2.id), "ElmFragmentIdentifier_component_span_q_e_click_acZZ1kAS1Ek"),
@@ -232,9 +232,9 @@ const ElmHeading = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_raw
232
232
  const Tag = `h${_rawProps.level}`;
233
233
  return /* @__PURE__ */ _jsxSplit(Tag, {
234
234
  class: [
235
- styles$P["elm-heading"],
235
+ styles$Q["elm-heading"],
236
236
  textStyles.text,
237
- styles$P[`h${_rawProps.level}`],
237
+ styles$Q[`h${_rawProps.level}`],
238
238
  _rawProps.class
239
239
  ],
240
240
  style: {
@@ -254,7 +254,7 @@ const ElmHeading = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_raw
254
254
  id: _wrapProp(_rawProps, "id")
255
255
  }, null, 3, "sL_1"), 1, "sL_2"),
256
256
  _rawProps.level === 2 && /* @__PURE__ */ _jsxSorted("span", null, {
257
- class: styles$P["h2-underline"],
257
+ class: styles$Q["h2-underline"],
258
258
  "aria-hidden": "true"
259
259
  }, null, 3, "sL_3")
260
260
  ], 0, "sL_4");
@@ -262,17 +262,17 @@ const ElmHeading = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_raw
262
262
  const code$1 = "_code_uf3sg_13";
263
263
  const kbd = "_kbd_uf3sg_25";
264
264
  const link$1 = "_link_uf3sg_58";
265
- const styles$N = {
265
+ const styles$O = {
266
266
  "elm-inline-text": "_elm-inline-text_uf3sg_1",
267
267
  code: code$1,
268
268
  kbd,
269
269
  link: link$1
270
270
  };
271
- const styles$M = {
271
+ const styles$N = {
272
272
  "elm-inline-icon": "_elm-inline-icon_1qs0i_1"
273
273
  };
274
- const _hf0$y = (p0) => p0.width ?? p0.size ?? 16;
275
- const _hf1$i = (p0) => p0.height ?? p0.size ?? 16;
274
+ const _hf0$z = (p0) => p0.width ?? p0.size ?? 16;
275
+ const _hf1$j = (p0) => p0.height ?? p0.size ?? 16;
276
276
  const ElmInlineIcon = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_rawProps) => {
277
277
  const props = _restProps(_rawProps, [
278
278
  "class",
@@ -284,24 +284,24 @@ const ElmInlineIcon = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_
284
284
  ]);
285
285
  return /* @__PURE__ */ _jsxSplit("span", {
286
286
  class: [
287
- styles$M["elm-inline-icon"],
287
+ styles$N["elm-inline-icon"],
288
288
  _rawProps.class
289
289
  ],
290
290
  ..._getVarProps(props)
291
291
  }, _getConstProps(props), /* @__PURE__ */ _jsxSorted("img", {
292
292
  alt: _wrapProp(_rawProps, "alt"),
293
- height: _fnSignal(_hf1$i, [
293
+ height: _fnSignal(_hf1$j, [
294
294
  _rawProps
295
295
  ]),
296
296
  src: _wrapProp(_rawProps, "src"),
297
- width: _fnSignal(_hf0$y, [
297
+ width: _fnSignal(_hf0$z, [
298
298
  _rawProps
299
299
  ])
300
300
  }, {
301
- class: styles$M["elm-inline-icon"]
301
+ class: styles$N["elm-inline-icon"]
302
302
  }, null, 3, null), 0, "D4_0");
303
303
  }, "ElmInlineIcon_component_9LkENpSGozA"));
304
- const _hf0$x = (p0) => ({
304
+ const _hf0$y = (p0) => ({
305
305
  ...p0.style,
306
306
  "--elmethis-scoped-color": p0.color,
307
307
  "--elmethis-scoped-font-size": p0.size ?? "1em",
@@ -329,7 +329,7 @@ const ElmInlineText = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_
329
329
  vnode = /* @__PURE__ */ _jsxSorted("a", {
330
330
  href: _wrapProp(_rawProps, "href")
331
331
  }, {
332
- class: styles$N.link,
332
+ class: styles$O.link,
333
333
  target: "_blank",
334
334
  rel: "noopener noreferrer"
335
335
  }, [
@@ -341,18 +341,18 @@ const ElmInlineText = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_
341
341
  ], 1, "7t_2");
342
342
  }
343
343
  if (_rawProps.kbd ?? false) vnode = /* @__PURE__ */ _jsxSorted("kbd", null, {
344
- class: styles$N.kbd
344
+ class: styles$O.kbd
345
345
  }, vnode, 1, "7t_3");
346
346
  if (_rawProps.strikethrough ?? false) vnode = /* @__PURE__ */ _jsxSorted("del", null, null, vnode, 1, "7t_4");
347
347
  if (_rawProps.italic ?? false) vnode = /* @__PURE__ */ _jsxSorted("em", null, null, vnode, 1, "7t_5");
348
348
  if (_rawProps.underline ?? false) vnode = /* @__PURE__ */ _jsxSorted("ins", null, null, vnode, 1, "7t_6");
349
349
  if (_rawProps.bold ?? false) vnode = /* @__PURE__ */ _jsxSorted("strong", null, null, vnode, 1, "7t_7");
350
350
  if (_rawProps.code ?? false) vnode = /* @__PURE__ */ _jsxSorted("code", null, {
351
- class: styles$N.code
351
+ class: styles$O.code
352
352
  }, vnode, 1, "7t_8");
353
353
  if (_rawProps.ruby) {
354
354
  vnode = /* @__PURE__ */ _jsxSorted("ruby", null, {
355
- class: styles$N["elm-inline-text"]
355
+ class: styles$O["elm-inline-text"]
356
356
  }, [
357
357
  /* @__PURE__ */ _jsxSorted("span", null, null, vnode, 1, null),
358
358
  /* @__PURE__ */ _jsxSorted("rt", null, null, _wrapProp(_rawProps, "ruby"), 1, null)
@@ -360,20 +360,20 @@ const ElmInlineText = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_
360
360
  }
361
361
  return /* @__PURE__ */ _jsxSplit("span", {
362
362
  class: [
363
- styles$N["elm-inline-text"],
363
+ styles$O["elm-inline-text"],
364
364
  textStyles.text,
365
365
  _rawProps.class
366
366
  ],
367
- style: _fnSignal(_hf0$x, [
367
+ style: _fnSignal(_hf0$y, [
368
368
  _rawProps
369
369
  ]),
370
370
  ..._getVarProps(rest)
371
371
  }, _getConstProps(rest), vnode, 0, "7t_10");
372
372
  }, "ElmInlineText_component_MdjKbLJ3SR0"));
373
- const styles$L = {
373
+ const styles$M = {
374
374
  "elm-paragraph": "_elm-paragraph_rbsk5_1"
375
375
  };
376
- const _hf0$w = (p0) => ({
376
+ const _hf0$x = (p0) => ({
377
377
  ...p0.style,
378
378
  "--elmethis-scoped-color": p0.color,
379
379
  "--elmethis-scoped-background-color": p0.backgroundColor
@@ -387,11 +387,11 @@ const ElmParagraph = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_r
387
387
  ]);
388
388
  return /* @__PURE__ */ _jsxSplit("p", {
389
389
  class: [
390
- styles$L["elm-paragraph"],
390
+ styles$M["elm-paragraph"],
391
391
  textStyles.text,
392
392
  _rawProps.class
393
393
  ],
394
- style: _fnSignal(_hf0$w, [
394
+ style: _fnSignal(_hf0$x, [
395
395
  _rawProps
396
396
  ]),
397
397
  ..._getVarProps(props)
@@ -413,7 +413,7 @@ const slider = "_slider_4ps3c_192";
413
413
  const modal = "_modal_4ps3c_199";
414
414
  const video = "_video_4ps3c_209";
415
415
  const audio = "_audio_4ps3c_210";
416
- const styles$K = {
416
+ const styles$L = {
417
417
  "elm-a2ui": "_elm-a2ui_4ps3c_1",
418
418
  surface: surface$1,
419
419
  row: row$1,
@@ -511,8 +511,8 @@ function firstChildMargin(index) {
511
511
  marginBlockStart: 0
512
512
  } : void 0;
513
513
  }
514
- const _hf0$v = (p0) => p0.props.min ?? 0;
515
- const _hf1$h = (p0) => p0.props.max;
514
+ const _hf0$w = (p0) => p0.props.min ?? 0;
515
+ const _hf1$i = (p0) => p0.props.max;
516
516
  const textFieldInputType = {
517
517
  shortText: "text",
518
518
  number: "number",
@@ -550,28 +550,28 @@ const basicCatalog = new CatalogRenderer([
550
550
  alignItems: alignItemsMap[_rawProps.props.align ?? "center"]
551
551
  }
552
552
  }, {
553
- class: styles$K.row
553
+ class: styles$L.row
554
554
  }, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted("span", null, {
555
- class: styles$K["child-wrap"]
555
+ class: styles$L["child-wrap"]
556
556
  }, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Lh_3")),
557
557
  defineRenderer(ColumnApi, (_rawProps) => /* @__PURE__ */ _jsxSorted("div", null, {
558
- class: styles$K.column,
558
+ class: styles$L.column,
559
559
  style: {
560
560
  "--margin-block": "2rem"
561
561
  }
562
562
  }, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted("span", null, {
563
- class: styles$K["child-wrap"]
563
+ class: styles$L["child-wrap"]
564
564
  }, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Lh_4")),
565
565
  defineRenderer(ListApi, (_rawProps) => /* @__PURE__ */ _jsxSorted("div", {
566
566
  class: [
567
- styles$K.list,
568
- _rawProps.props.direction === "horizontal" && styles$K["list-horizontal"]
567
+ styles$L.list,
568
+ _rawProps.props.direction === "horizontal" && styles$L["list-horizontal"]
569
569
  ]
570
570
  }, null, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted("div", null, {
571
- class: styles$K["list-item"]
571
+ class: styles$L["list-item"]
572
572
  }, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Lh_5")),
573
573
  defineRenderer(CardApi, (_rawProps) => /* @__PURE__ */ _jsxSorted("div", null, {
574
- class: styles$K.card
574
+ class: styles$L.card
575
575
  }, _rawProps.renderChild(_rawProps.props.child), 1, "Lh_6")),
576
576
  // Rendered as a div-with-role rather than a native <button> because the
577
577
  // A2UI `child` can be any component (Row, Column, Card, etc.), and those
@@ -579,8 +579,8 @@ const basicCatalog = new CatalogRenderer([
579
579
  // SSR validator (Q12).
580
580
  defineRenderer(ButtonApi, (_rawProps) => /* @__PURE__ */ _jsxSorted("div", {
581
581
  class: [
582
- styles$K.button,
583
- _rawProps.props.variant === "primary" && styles$K["button-primary"]
582
+ styles$L.button,
583
+ _rawProps.props.variant === "primary" && styles$L["button-primary"]
584
584
  ],
585
585
  "q-e:click": _rawProps.props.action ? () => _rawProps.dispatchAction$("action") : void 0,
586
586
  "q-e:keydown": _rawProps.props.action ? (e) => {
@@ -602,7 +602,7 @@ const basicCatalog = new CatalogRenderer([
602
602
  objectFit: objectFitMap[_rawProps.props.fit ?? "cover"]
603
603
  }
604
604
  }, {
605
- class: styles$K.image
605
+ class: styles$L.image
606
606
  }, null, 3, "Lh_8")
607
607
  )),
608
608
  defineRenderer(IconApi, (_rawProps) => {
@@ -611,13 +611,13 @@ const basicCatalog = new CatalogRenderer([
611
611
  "aria-label": name,
612
612
  "data-icon": name
613
613
  }, {
614
- class: styles$K.icon
614
+ class: styles$L.icon
615
615
  }, null, 3, "Lh_9");
616
616
  }),
617
617
  defineRenderer(DividerApi, (_rawProps) => /* @__PURE__ */ _jsxSorted("div", {
618
618
  class: [
619
- styles$K.divider,
620
- _rawProps.props.axis === "vertical" && styles$K["divider-vertical"]
619
+ styles$L.divider,
620
+ _rawProps.props.axis === "vertical" && styles$L["divider-vertical"]
621
621
  ]
622
622
  }, {
623
623
  role: "separator"
@@ -626,10 +626,10 @@ const basicCatalog = new CatalogRenderer([
626
626
  const variant = _rawProps.props.variant ?? "shortText";
627
627
  const value = _rawProps.props.value ? _rawProps.resolve(_rawProps.props.value) : "";
628
628
  return /* @__PURE__ */ _jsxSorted("div", null, {
629
- class: styles$K["text-field"]
629
+ class: styles$L["text-field"]
630
630
  }, [
631
631
  /* @__PURE__ */ _jsxSorted("label", null, {
632
- class: styles$K.label
632
+ class: styles$L.label
633
633
  }, _rawProps.resolve(_rawProps.props.label), 1, null),
634
634
  variant === "longText" ? /* @__PURE__ */ _jsxSorted("textarea", {
635
635
  "q-e:change": /* @__PURE__ */ inlinedQrl((_e, el, _rawProps2) => _rawProps2.setBinding$("value", el.value), "basicCatalog_defineRenderer_div_textarea_q_e_change_AvRxzHDOuzE"),
@@ -637,7 +637,7 @@ const basicCatalog = new CatalogRenderer([
637
637
  "q:p": _rawProps,
638
638
  value
639
639
  }, {
640
- class: styles$K.input
640
+ class: styles$L.input
641
641
  }, null, 6, "Lh_11") : /* @__PURE__ */ _jsxSorted("input", {
642
642
  "q-e:change": /* @__PURE__ */ inlinedQrl((_e, el, _rawProps2) => _rawProps2.setBinding$("value", el.value), "basicCatalog_defineRenderer_div_input_q_e_change_d4MNBikoI0c"),
643
643
  "q-e:input": /* @__PURE__ */ inlinedQrl((_e, el, _rawProps2) => _rawProps2.setBinding$("value", el.value), "basicCatalog_defineRenderer_div_input_q_e_input_XTp8fL9T8eo"),
@@ -645,14 +645,14 @@ const basicCatalog = new CatalogRenderer([
645
645
  type: textFieldInputType[variant] ?? "text",
646
646
  value
647
647
  }, {
648
- class: styles$K.input
648
+ class: styles$L.input
649
649
  }, null, 6, "Lh_12")
650
650
  ], 1, "Lh_13");
651
651
  }),
652
652
  defineRenderer(CheckBoxApi, (_rawProps) => {
653
653
  const checked2 = typeof _rawProps.props.value === "boolean" ? _rawProps.props.value : Boolean(_rawProps.ctx.dataContext.resolveDynamicValue(_rawProps.props.value) ?? false);
654
654
  return /* @__PURE__ */ _jsxSorted("label", null, {
655
- class: styles$K.checkbox
655
+ class: styles$L.checkbox
656
656
  }, [
657
657
  /* @__PURE__ */ _jsxSorted("input", {
658
658
  checked: checked2,
@@ -662,17 +662,17 @@ const basicCatalog = new CatalogRenderer([
662
662
  type: "checkbox"
663
663
  }, null, 6, null),
664
664
  /* @__PURE__ */ _jsxSorted("span", null, {
665
- class: styles$K["checkbox-label"]
665
+ class: styles$L["checkbox-label"]
666
666
  }, _rawProps.resolve(_rawProps.props.label), 1, null)
667
667
  ], 1, "Lh_14");
668
668
  }),
669
669
  defineRenderer(SliderApi, (_rawProps) => {
670
670
  const value = typeof _rawProps.props.value === "number" ? _rawProps.props.value : Number(_rawProps.ctx.dataContext.resolveDynamicValue(_rawProps.props.value) ?? 0);
671
671
  return /* @__PURE__ */ _jsxSorted("input", {
672
- max: _fnSignal(_hf1$h, [
672
+ max: _fnSignal(_hf1$i, [
673
673
  _rawProps
674
674
  ]),
675
- min: _fnSignal(_hf0$v, [
675
+ min: _fnSignal(_hf0$w, [
676
676
  _rawProps
677
677
  ]),
678
678
  "q-e:change": /* @__PURE__ */ inlinedQrl((_e, el, _rawProps2) => _rawProps2.setBinding$("value", Number(el.value)), "basicCatalog_defineRenderer_input_q_e_change_U0Dwvjz0O9o"),
@@ -680,7 +680,7 @@ const basicCatalog = new CatalogRenderer([
680
680
  "q:p": _rawProps,
681
681
  value
682
682
  }, {
683
- class: styles$K.slider,
683
+ class: styles$L.slider,
684
684
  type: "range"
685
685
  }, null, 6, "Lh_15");
686
686
  }),
@@ -695,23 +695,23 @@ const basicCatalog = new CatalogRenderer([
695
695
  }, null, _rawProps.renderChild(tab2.child), 1, idx))
696
696
  ], 1, "Lh_17")),
697
697
  defineRenderer(ModalApi, (_rawProps) => /* @__PURE__ */ _jsxSorted("div", null, {
698
- class: styles$K.modal
698
+ class: styles$L.modal
699
699
  }, [
700
700
  _rawProps.renderChild(_rawProps.props.trigger),
701
701
  /* @__PURE__ */ _jsxSorted("div", null, {
702
- class: styles$K["modal-content"]
702
+ class: styles$L["modal-content"]
703
703
  }, _rawProps.renderChild(_rawProps.props.content), 1, null)
704
704
  ], 1, "Lh_18")),
705
705
  defineRenderer(VideoApi, (_rawProps) => /* @__PURE__ */ _jsxSorted("video", {
706
706
  src: _rawProps.resolve(_rawProps.props.url)
707
707
  }, {
708
- class: styles$K.video,
708
+ class: styles$L.video,
709
709
  controls: true
710
710
  }, null, 3, "Lh_19")),
711
711
  defineRenderer(AudioPlayerApi, (_rawProps) => /* @__PURE__ */ _jsxSorted("audio", {
712
712
  src: _rawProps.resolve(_rawProps.props.url)
713
713
  }, {
714
- class: styles$K.audio,
714
+ class: styles$L.audio,
715
715
  controls: true
716
716
  }, null, 3, "Lh_20")),
717
717
  defineRenderer(ChoicePickerApi, (_rawProps) => {
@@ -728,15 +728,15 @@ const basicCatalog = new CatalogRenderer([
728
728
  }, "basicCatalog_defineRenderer_div_q_e_change_HaNxxdy0Z1g"),
729
729
  "q:p": _rawProps
730
730
  }, {
731
- class: styles$K["choice-picker"]
731
+ class: styles$L["choice-picker"]
732
732
  }, [
733
733
  _rawProps.props.label ? /* @__PURE__ */ _jsxSorted("span", null, {
734
- class: styles$K["choice-picker-label"]
734
+ class: styles$L["choice-picker-label"]
735
735
  }, _rawProps.resolve(_rawProps.props.label), 1, "Lh_21") : null,
736
736
  /* @__PURE__ */ _jsxSorted("div", null, {
737
- class: styles$K["choice-picker-options"]
737
+ class: styles$L["choice-picker-options"]
738
738
  }, _rawProps.props.options.map((opt) => /* @__PURE__ */ _jsxSorted("label", null, {
739
- class: styles$K["choice-picker-option"]
739
+ class: styles$L["choice-picker-option"]
740
740
  }, [
741
741
  /* @__PURE__ */ _jsxSorted("input", {
742
742
  checked: selected.includes(opt.value),
@@ -753,10 +753,10 @@ const basicCatalog = new CatalogRenderer([
753
753
  const enableTime = _rawProps.props.enableTime ?? false;
754
754
  const inputType = enableDate && enableTime ? "datetime-local" : enableDate ? "date" : enableTime ? "time" : "text";
755
755
  return /* @__PURE__ */ _jsxSorted("div", null, {
756
- class: styles$K["datetime-input"]
756
+ class: styles$L["datetime-input"]
757
757
  }, [
758
758
  _rawProps.props.label ? /* @__PURE__ */ _jsxSorted("label", null, {
759
- class: styles$K.label
759
+ class: styles$L.label
760
760
  }, _rawProps.resolve(_rawProps.props.label), 1, "Lh_23") : null,
761
761
  /* @__PURE__ */ _jsxSorted("input", {
762
762
  max: _rawProps.props.max != null ? String(_rawProps.props.max) : void 0,
@@ -767,7 +767,7 @@ const basicCatalog = new CatalogRenderer([
767
767
  type: inputType,
768
768
  value: _rawProps.props.value ? _rawProps.resolve(_rawProps.props.value) : ""
769
769
  }, {
770
- class: styles$K.input
770
+ class: styles$L.input
771
771
  }, null, 6, null)
772
772
  ], 1, "Lh_24");
773
773
  })
@@ -1000,7 +1000,7 @@ const A2uiSurface = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((pro
1000
1000
  useContextProvider(A2uiSurfaceContext, props.surface);
1001
1001
  useContextProvider(A2uiAncestorContext, []);
1002
1002
  return /* @__PURE__ */ _jsxSorted("div", null, {
1003
- class: styles$K.surface,
1003
+ class: styles$L.surface,
1004
1004
  style: {
1005
1005
  "--elmethis-margin-block-start": "2rem"
1006
1006
  }
@@ -1013,7 +1013,7 @@ const SurfaceView = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((pro
1013
1013
  useContextProvider(A2uiSurfaceContext, props.surface);
1014
1014
  useContextProvider(A2uiAncestorContext, []);
1015
1015
  return /* @__PURE__ */ _jsxSorted("div", null, {
1016
- class: styles$K.surface,
1016
+ class: styles$L.surface,
1017
1017
  style: {
1018
1018
  "--elmethis-margin-block-start": "2rem"
1019
1019
  }
@@ -1042,11 +1042,11 @@ const ElmA2ui = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props)
1042
1042
  }, "ElmA2ui_component_useTask_xwXB3CpZoHI", [
1043
1043
  processorRef
1044
1044
  ]));
1045
- useTaskQrl(/* @__PURE__ */ inlinedQrl(async ({ track }) => {
1045
+ useTaskQrl(/* @__PURE__ */ inlinedQrl(async ({ track: track2 }) => {
1046
1046
  const processorRef2 = _captures[0], props2 = _captures[1], streamStore2 = _captures[2], surfaceMapSig2 = _captures[3], tick2 = _captures[4];
1047
- const propsMessages = track(() => props2.messages);
1048
- const propsCatalogId = track(() => props2.catalogId);
1049
- track(() => streamStore2.list.length);
1047
+ const propsMessages = track2(() => props2.messages);
1048
+ const propsCatalogId = track2(() => props2.catalogId);
1049
+ track2(() => streamStore2.list.length);
1050
1050
  const effective = propsMessages ? [
1051
1051
  ...propsMessages
1052
1052
  ] : [
@@ -1157,7 +1157,7 @@ const ElmA2ui = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props)
1157
1157
  ]));
1158
1158
  return /* @__PURE__ */ _jsxSorted("div", {
1159
1159
  class: [
1160
- styles$K["elm-a2ui"],
1160
+ styles$L["elm-a2ui"],
1161
1161
  props.class
1162
1162
  ],
1163
1163
  style: _wrapProp(props, "style")
@@ -1165,10 +1165,10 @@ const ElmA2ui = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props)
1165
1165
  surface: noSerialize(surface2)
1166
1166
  }, null, null, 3, surface2.id)), 1, "pJ_4");
1167
1167
  }, "ElmA2ui_component_JeVykabE5oE"));
1168
- const styles$J = {
1168
+ const styles$K = {
1169
1169
  "elm-katex": "_elm-katex_189xe_1"
1170
1170
  };
1171
- const _hf0$u = (p0) => p0.value ?? "";
1171
+ const _hf0$v = (p0) => p0.value ?? "";
1172
1172
  const ElmKatex = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
1173
1173
  const rest = _restProps(props, [
1174
1174
  "class",
@@ -1187,10 +1187,10 @@ const ElmKatex = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props)
1187
1187
  return /* @__PURE__ */ _jsxSplit("div", {
1188
1188
  class: [
1189
1189
  textStyles.text,
1190
- props.block ? styles$J["elm-katex"] : void 0,
1190
+ props.block ? styles$K["elm-katex"] : void 0,
1191
1191
  props.class
1192
1192
  ],
1193
- dangerouslySetInnerHTML: _fnSignal(_hf0$u, [
1193
+ dangerouslySetInnerHTML: _fnSignal(_hf0$v, [
1194
1194
  html
1195
1195
  ]),
1196
1196
  ..._getVarProps(rest)
@@ -1199,7 +1199,7 @@ const ElmKatex = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props)
1199
1199
  const caption$1 = "_caption_xdmlc_22";
1200
1200
  const divider$1 = "_divider_xdmlc_33";
1201
1201
  const code = "_code_xdmlc_40";
1202
- const styles$I = {
1202
+ const styles$J = {
1203
1203
  "elm-code-block": "_elm-code-block_xdmlc_1",
1204
1204
  "language-icon": "_language-icon_xdmlc_17",
1205
1205
  caption: caption$1,
@@ -1207,8 +1207,8 @@ const styles$I = {
1207
1207
  divider: divider$1,
1208
1208
  code
1209
1209
  };
1210
- const _hf0$t = (p0) => p0.icon.viewBox;
1211
- const _hf1$g = (p0) => p0.size ?? 24;
1210
+ const _hf0$u = (p0) => p0.icon.viewBox;
1211
+ const _hf1$h = (p0) => p0.size ?? 24;
1212
1212
  const scopeId = (value, key2, suffix) => key2 === "id" ? `${value}-${suffix}` : value.replace(/url\(#([^)]+)\)/g, `url(#$1-${suffix})`);
1213
1213
  const renderNode = (node, suffix, key2) => {
1214
1214
  const attrs = {};
@@ -1227,13 +1227,13 @@ const LanguageGlyph = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_
1227
1227
  const suffix = useId();
1228
1228
  return /* @__PURE__ */ _jsxSplit("svg", {
1229
1229
  xmlns: "http://www.w3.org/2000/svg",
1230
- viewBox: _fnSignal(_hf0$t, [
1230
+ viewBox: _fnSignal(_hf0$u, [
1231
1231
  _rawProps
1232
1232
  ]),
1233
- width: _fnSignal(_hf1$g, [
1233
+ width: _fnSignal(_hf1$h, [
1234
1234
  _rawProps
1235
1235
  ]),
1236
- height: _fnSignal(_hf1$g, [
1236
+ height: _fnSignal(_hf1$h, [
1237
1237
  _rawProps
1238
1238
  ]),
1239
1239
  class: _wrapProp(_rawProps, "class"),
@@ -1241,16 +1241,16 @@ const LanguageGlyph = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_
1241
1241
  ..._rawProps.icon.attrs
1242
1242
  }, null, _rawProps.icon.children.map((child, i) => renderNode(child, suffix, i)), 0, "d4_0");
1243
1243
  }, "LanguageGlyph_component_8wkMyHdmoRo"));
1244
- const styles$H = {
1244
+ const styles$I = {
1245
1245
  "elm-mdi-icon": "_elm-mdi-icon_ihskx_1"
1246
1246
  };
1247
- const _hf0$s = (p0) => ({
1247
+ const _hf0$t = (p0) => ({
1248
1248
  "--elmethis-scoped-color": p0.lightColor ?? p0.color ?? "currentColor",
1249
1249
  "--dark-color": p0.darkColor ?? p0.color ?? "currentColor",
1250
1250
  ...p0.style
1251
1251
  });
1252
- const _hf1$f = (p0) => p0.size ?? "1em";
1253
- const _hf2$a = (p0) => p0.color ?? "currentColor";
1252
+ const _hf1$g = (p0) => p0.size ?? "1em";
1253
+ const _hf2$b = (p0) => p0.color ?? "currentColor";
1254
1254
  const ElmMdiIcon = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_rawProps) => {
1255
1255
  const props = _restProps(_rawProps, [
1256
1256
  "class",
@@ -1263,20 +1263,20 @@ const ElmMdiIcon = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_raw
1263
1263
  ]);
1264
1264
  return /* @__PURE__ */ _jsxSplit("svg", {
1265
1265
  class: [
1266
- styles$H["elm-mdi-icon"],
1266
+ styles$I["elm-mdi-icon"],
1267
1267
  _rawProps.class
1268
1268
  ],
1269
- style: _fnSignal(_hf0$s, [
1269
+ style: _fnSignal(_hf0$t, [
1270
1270
  _rawProps
1271
1271
  ]),
1272
- width: _fnSignal(_hf1$f, [
1272
+ width: _fnSignal(_hf1$g, [
1273
1273
  _rawProps
1274
1274
  ]),
1275
- height: _fnSignal(_hf1$f, [
1275
+ height: _fnSignal(_hf1$g, [
1276
1276
  _rawProps
1277
1277
  ]),
1278
1278
  viewBox: "0 0 24 24",
1279
- fill: _fnSignal(_hf2$a, [
1279
+ fill: _fnSignal(_hf2$b, [
1280
1280
  _rawProps
1281
1281
  ]),
1282
1282
  xmlns: "http://www.w3.org/2000/svg",
@@ -1287,7 +1287,7 @@ const ElmMdiIcon = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_raw
1287
1287
  d: _wrapProp(_rawProps, "d")
1288
1288
  }, null, null, 3, null), 0, "IA_0");
1289
1289
  }, "ElmMdiIcon_component_AUxPCIu3tI0"));
1290
- const _hf0$r = (p0) => p0.size ?? 24;
1290
+ const _hf0$s = (p0) => p0.size ?? 24;
1291
1291
  const ElmLanguageIcon = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_rawProps) => {
1292
1292
  const normalized = normalizeLanguage(_rawProps.language);
1293
1293
  if (normalized === "file") {
@@ -1300,14 +1300,14 @@ const ElmLanguageIcon = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl(
1300
1300
  return /* @__PURE__ */ _jsxSorted(LanguageGlyph, {
1301
1301
  icon: languageIcons[normalized]
1302
1302
  }, {
1303
- size: _fnSignal(_hf0$r, [
1303
+ size: _fnSignal(_hf0$s, [
1304
1304
  _rawProps
1305
1305
  ]),
1306
1306
  class: _wrapProp(_rawProps, "class"),
1307
1307
  style: _wrapProp(_rawProps, "style")
1308
1308
  }, null, 3, "bu_1");
1309
1309
  }, "ElmLanguageIcon_component_nXOhYnvIKLk"));
1310
- const styles$G = {
1310
+ const styles$H = {
1311
1311
  "elm-shiki-highlighter": "_elm-shiki-highlighter_j5tas_1"
1312
1312
  };
1313
1313
  const ElmShikiHighlighter = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_rawProps) => {
@@ -1317,10 +1317,10 @@ const ElmShikiHighlighter = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlined
1317
1317
  "language"
1318
1318
  ]);
1319
1319
  const rawHtml = useSignal("");
1320
- useTaskQrl(/* @__PURE__ */ inlinedQrl(async ({ track }) => {
1320
+ useTaskQrl(/* @__PURE__ */ inlinedQrl(async ({ track: track2 }) => {
1321
1321
  const _rawProps2 = _captures[0], rawHtml2 = _captures[1];
1322
- track(() => _rawProps2.code);
1323
- track(() => _rawProps2.language ?? "txt");
1322
+ track2(() => _rawProps2.code);
1323
+ track2(() => _rawProps2.language ?? "txt");
1324
1324
  if (!_rawProps2.code) return;
1325
1325
  try {
1326
1326
  rawHtml2.value = await codeToHtml(_rawProps2.code, {
@@ -1347,14 +1347,14 @@ const ElmShikiHighlighter = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlined
1347
1347
  ]));
1348
1348
  return /* @__PURE__ */ _jsxSplit("pre", {
1349
1349
  class: [
1350
- styles$G["elm-shiki-highlighter"],
1350
+ styles$H["elm-shiki-highlighter"],
1351
1351
  _rawProps.class
1352
1352
  ],
1353
1353
  dangerouslySetInnerHTML: _wrapProp(rawHtml),
1354
1354
  ..._getVarProps(props)
1355
1355
  }, _getConstProps(props), null, 0, "ZN_0");
1356
1356
  }, "ElmShikiHighlighter_component_vKuHJZdaUdo"));
1357
- const styles$F = {
1357
+ const styles$G = {
1358
1358
  "use-clipboard": "_use-clipboard_mb0qt_1",
1359
1359
  "use-clipboard-icon-copied": "_use-clipboard-icon-copied_mb0qt_15"
1360
1360
  };
@@ -1393,7 +1393,7 @@ const useClipboard = (options) => {
1393
1393
  const copied2 = _captures[0], copy2 = _captures[1], options2 = _captures[2];
1394
1394
  return /* @__PURE__ */ _jsxSorted("span", {
1395
1395
  class: [
1396
- styles$F["use-clipboard"],
1396
+ styles$G["use-clipboard"],
1397
1397
  options2.class
1398
1398
  ],
1399
1399
  style: _wrapProp(options2, "style")
@@ -1402,7 +1402,7 @@ const useClipboard = (options) => {
1402
1402
  }, /* @__PURE__ */ _jsxSorted(ElmMdiIcon, {
1403
1403
  class: [
1404
1404
  {
1405
- [styles$F["use-clipboard-icon-copied"]]: copied2.value
1405
+ [styles$G["use-clipboard-icon-copied"]]: copied2.value
1406
1406
  }
1407
1407
  ],
1408
1408
  d: copied2.value ? mdiClipboardCheckOutline : mdiClipboardOutline
@@ -1419,8 +1419,8 @@ const useClipboard = (options) => {
1419
1419
  copy
1420
1420
  };
1421
1421
  };
1422
- const _hf0$q = (p0) => p0.language ?? "txt";
1423
- const _hf1$e = (p0) => p0.caption || (p0.language ?? "txt");
1422
+ const _hf0$r = (p0) => p0.language ?? "txt";
1423
+ const _hf1$f = (p0) => p0.caption || (p0.language ?? "txt");
1424
1424
  const ElmCodeBlock = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_rawProps) => {
1425
1425
  const props = _restProps(_rawProps, [
1426
1426
  "class",
@@ -1433,42 +1433,526 @@ const ElmCodeBlock = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_r
1433
1433
  });
1434
1434
  return /* @__PURE__ */ _jsxSplit("figure", {
1435
1435
  class: [
1436
- styles$I["elm-code-block"],
1436
+ styles$J["elm-code-block"],
1437
1437
  _rawProps.class
1438
1438
  ],
1439
1439
  ..._getVarProps(props)
1440
1440
  }, _getConstProps(props), [
1441
1441
  /* @__PURE__ */ _jsxSorted("span", null, {
1442
- class: styles$I["language-icon"]
1442
+ class: styles$J["language-icon"]
1443
1443
  }, /* @__PURE__ */ _jsxSorted(ElmLanguageIcon, null, {
1444
- language: _fnSignal(_hf0$q, [
1444
+ language: _fnSignal(_hf0$r, [
1445
1445
  _rawProps
1446
1446
  ])
1447
1447
  }, null, 3, "sK_0"), 1, null),
1448
1448
  /* @__PURE__ */ _jsxSorted("span", null, {
1449
- class: styles$I.caption
1449
+ class: styles$J.caption
1450
1450
  }, /* @__PURE__ */ _jsxSorted(ElmInlineText, null, null, [
1451
- _fnSignal(_hf1$e, [
1451
+ _fnSignal(_hf1$f, [
1452
1452
  _rawProps
1453
1453
  ]),
1454
1454
  /* @__PURE__ */ _jsxSorted(Slot, null, null, null, 3, "sK_1")
1455
1455
  ], 1, "sK_2"), 1, null),
1456
1456
  /* @__PURE__ */ _jsxSorted("div", null, {
1457
- class: styles$I["copy-icon"]
1457
+ class: styles$J["copy-icon"]
1458
1458
  }, /* @__PURE__ */ _jsxSorted(clipboard.CopyButton, null, null, null, 3, "sK_3"), 1, null),
1459
1459
  /* @__PURE__ */ _jsxSorted("hr", null, {
1460
- class: styles$I.divider
1460
+ class: styles$J.divider
1461
1461
  }, null, 3, null),
1462
1462
  /* @__PURE__ */ _jsxSorted("div", null, {
1463
- class: styles$I.code
1463
+ class: styles$J.code
1464
1464
  }, /* @__PURE__ */ _jsxSorted(ElmShikiHighlighter, null, {
1465
1465
  code: _wrapProp(_rawProps, "code"),
1466
- language: _fnSignal(_hf0$q, [
1466
+ language: _fnSignal(_hf0$r, [
1467
1467
  _rawProps
1468
1468
  ])
1469
1469
  }, null, 3, "sK_4"), 1, null)
1470
1470
  ], 0, "sK_5");
1471
1471
  }, "ElmCodeBlock_component_rH8kn9Tvguw"));
1472
+ const loading$3 = "_loading_p7xym_34";
1473
+ const header$4 = "_header_p7xym_40";
1474
+ const artwork = "_artwork_p7xym_46";
1475
+ const meta = "_meta_p7xym_69";
1476
+ const title$1 = "_title_p7xym_77";
1477
+ const artist = "_artist_p7xym_87";
1478
+ const equalizer = "_equalizer_p7xym_99";
1479
+ const playing = "_playing_p7xym_116";
1480
+ const seekbar = "_seekbar_p7xym_151";
1481
+ const track = "_track_p7xym_167";
1482
+ const fill = "_fill_p7xym_176";
1483
+ const thumb = "_thumb_p7xym_189";
1484
+ const controls = "_controls_p7xym_248";
1485
+ const time = "_time_p7xym_254";
1486
+ const transport = "_transport_p7xym_273";
1487
+ const volume = "_volume_p7xym_359";
1488
+ const errored = "_errored_p7xym_412";
1489
+ const styles$F = {
1490
+ "elm-audio-player": "_elm-audio-player_p7xym_1",
1491
+ loading: loading$3,
1492
+ header: header$4,
1493
+ artwork,
1494
+ "artwork-error": "_artwork-error_p7xym_63",
1495
+ meta,
1496
+ title: title$1,
1497
+ artist,
1498
+ equalizer,
1499
+ playing,
1500
+ seekbar,
1501
+ track,
1502
+ fill,
1503
+ thumb,
1504
+ "hover-thumb": "_hover-thumb_p7xym_209",
1505
+ controls,
1506
+ time,
1507
+ "time-current": "_time-current_p7xym_264",
1508
+ "time-total": "_time-total_p7xym_269",
1509
+ transport,
1510
+ "icon-button": "_icon-button_p7xym_281",
1511
+ "play-button": "_play-button_p7xym_312",
1512
+ volume,
1513
+ "volume-slider": "_volume-slider_p7xym_366",
1514
+ errored,
1515
+ "error-notice": "_error-notice_p7xym_421",
1516
+ "error-message": "_error-message_p7xym_431"
1517
+ };
1518
+ const _hf0$q = (p0, p1) => ({
1519
+ "--elmethis-scoped-progress": p1.value,
1520
+ "--elmethis-scoped-hover": p0.value ?? 0
1521
+ });
1522
+ const _hf1$e = (p0) => p0.errorMessage ?? "This audio couldn't be loaded.";
1523
+ const _hf2$a = (p0) => p0.value ? "Pause" : "Play";
1524
+ const _hf3$9 = (p0) => p0.value ? "Unmute" : "Mute";
1525
+ const _hf4$5 = (p0, p1) => p0.value ? 0 : p1.value;
1526
+ const _hf5$3 = (p0, p1) => ({
1527
+ "--elmethis-scoped-volume": p0.value ? 0 : p1.value
1528
+ });
1529
+ const formatTime = (seconds) => {
1530
+ if (!Number.isFinite(seconds) || seconds < 0) seconds = 0;
1531
+ const total = Math.floor(seconds);
1532
+ const h = Math.floor(total / 3600);
1533
+ const m = Math.floor(total % 3600 / 60);
1534
+ const s = total % 60;
1535
+ const mm = h > 0 ? String(m).padStart(2, "0") : String(m);
1536
+ const out = `${mm}:${String(s).padStart(2, "0")}`;
1537
+ return h > 0 ? `${h}:${out}` : out;
1538
+ };
1539
+ const fileNameFromSrc = (src) => {
1540
+ const clean = src.split(/[?#]/)[0];
1541
+ const seg = clean.split("/").filter(Boolean).pop() ?? src;
1542
+ try {
1543
+ return decodeURIComponent(seg);
1544
+ } catch {
1545
+ return seg;
1546
+ }
1547
+ };
1548
+ const ElmAudioPlayer = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
1549
+ const rest = _restProps(props, [
1550
+ "class",
1551
+ "src",
1552
+ "title",
1553
+ "artist",
1554
+ "errorMessage",
1555
+ "seekStep",
1556
+ "loop",
1557
+ "autoPlay"
1558
+ ]);
1559
+ const audioRef = useSignal();
1560
+ const rafId = useSignal(null);
1561
+ const isPlaying = useSignal(false);
1562
+ const isLoading = useSignal(true);
1563
+ const hasError = useSignal(false);
1564
+ const duration = useSignal(0);
1565
+ const currentTime = useSignal(0);
1566
+ const volume2 = useSignal(1);
1567
+ const isMuted = useSignal(false);
1568
+ const hoverRatio = useSignal(null);
1569
+ const progress = useComputedQrl(/* @__PURE__ */ inlinedQrl(() => {
1570
+ const currentTime2 = _captures[0], duration2 = _captures[1];
1571
+ return duration2.value > 0 ? Math.min(1, currentTime2.value / duration2.value) : 0;
1572
+ }, "ElmAudioPlayer_component_progress_useComputed_UmcsvccDM9g", [
1573
+ currentTime,
1574
+ duration
1575
+ ]));
1576
+ const volumeIcon = useComputedQrl(/* @__PURE__ */ inlinedQrl(() => {
1577
+ const isMuted2 = _captures[0], volume22 = _captures[1];
1578
+ if (isMuted2.value || volume22.value === 0) return mdiVolumeOff;
1579
+ if (volume22.value < 0.34) return mdiVolumeLow;
1580
+ if (volume22.value < 0.67) return mdiVolumeMedium;
1581
+ return mdiVolumeHigh;
1582
+ }, "ElmAudioPlayer_component_volumeIcon_useComputed_PPOFACXYryU", [
1583
+ isMuted,
1584
+ volume2
1585
+ ]));
1586
+ const resolvedTitle = useComputedQrl(/* @__PURE__ */ inlinedQrl(() => {
1587
+ const props2 = _captures[0];
1588
+ return props2.title ?? fileNameFromSrc(props2.src);
1589
+ }, "ElmAudioPlayer_component_resolvedTitle_useComputed_n7BecSAD0Ho", [
1590
+ props
1591
+ ]));
1592
+ const startRaf = /* @__PURE__ */ inlinedQrl(() => {
1593
+ const audioRef2 = _captures[0], currentTime2 = _captures[1], rafId2 = _captures[2];
1594
+ if (rafId2.value != null) return;
1595
+ const tick = () => {
1596
+ if (audioRef2.value) currentTime2.value = audioRef2.value.currentTime;
1597
+ rafId2.value = requestAnimationFrame(tick);
1598
+ };
1599
+ rafId2.value = requestAnimationFrame(tick);
1600
+ }, "ElmAudioPlayer_component_startRaf_uyzIbOd8edc", [
1601
+ audioRef,
1602
+ currentTime,
1603
+ rafId
1604
+ ]);
1605
+ const stopRaf = /* @__PURE__ */ inlinedQrl(() => {
1606
+ const rafId2 = _captures[0];
1607
+ if (rafId2.value != null) {
1608
+ cancelAnimationFrame(rafId2.value);
1609
+ rafId2.value = null;
1610
+ }
1611
+ }, "ElmAudioPlayer_component_stopRaf_iSlA4zwTszs", [
1612
+ rafId
1613
+ ]);
1614
+ useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ cleanup }) => {
1615
+ const rafId2 = _captures[0];
1616
+ cleanup(() => {
1617
+ if (rafId2.value != null) cancelAnimationFrame(rafId2.value);
1618
+ });
1619
+ }, "ElmAudioPlayer_component_useVisibleTask_yjHYVV53qtg", [
1620
+ rafId
1621
+ ]));
1622
+ const togglePlay = /* @__PURE__ */ inlinedQrl(() => {
1623
+ const audioRef2 = _captures[0], isPlaying2 = _captures[1];
1624
+ const audio2 = audioRef2.value;
1625
+ if (!audio2) return;
1626
+ if (audio2.paused) {
1627
+ void audio2.play().catch(() => isPlaying2.value = false);
1628
+ } else {
1629
+ audio2.pause();
1630
+ }
1631
+ }, "ElmAudioPlayer_component_togglePlay_sMx00mG9yLs", [
1632
+ audioRef,
1633
+ isPlaying
1634
+ ]);
1635
+ const seekTo = /* @__PURE__ */ inlinedQrl((seconds) => {
1636
+ const audioRef2 = _captures[0], currentTime2 = _captures[1], duration2 = _captures[2];
1637
+ const audio2 = audioRef2.value;
1638
+ if (!audio2 || !Number.isFinite(duration2.value) || duration2.value <= 0) {
1639
+ return;
1640
+ }
1641
+ const clamped = Math.max(0, Math.min(duration2.value, seconds));
1642
+ audio2.currentTime = clamped;
1643
+ currentTime2.value = clamped;
1644
+ }, "ElmAudioPlayer_component_seekTo_IAobgQJxsaY", [
1645
+ audioRef,
1646
+ currentTime,
1647
+ duration
1648
+ ]);
1649
+ const changeVolume = /* @__PURE__ */ inlinedQrl((next) => {
1650
+ const audioRef2 = _captures[0], isMuted2 = _captures[1], volume22 = _captures[2];
1651
+ const audio2 = audioRef2.value;
1652
+ const clamped = Math.max(0, Math.min(1, next));
1653
+ if (audio2) {
1654
+ audio2.volume = clamped;
1655
+ audio2.muted = clamped === 0;
1656
+ }
1657
+ volume22.value = clamped;
1658
+ isMuted2.value = clamped === 0;
1659
+ }, "ElmAudioPlayer_component_changeVolume_FE02J81CE7g", [
1660
+ audioRef,
1661
+ isMuted,
1662
+ volume2
1663
+ ]);
1664
+ const toggleMute = /* @__PURE__ */ inlinedQrl(() => {
1665
+ const audioRef2 = _captures[0], isMuted2 = _captures[1];
1666
+ const audio2 = audioRef2.value;
1667
+ if (!audio2) return;
1668
+ const next = !audio2.muted;
1669
+ audio2.muted = next;
1670
+ isMuted2.value = next;
1671
+ }, "ElmAudioPlayer_component_toggleMute_GwaccfmcDuM", [
1672
+ audioRef,
1673
+ isMuted
1674
+ ]);
1675
+ return /* @__PURE__ */ _jsxSplit("div", {
1676
+ class: [
1677
+ styles$F["elm-audio-player"],
1678
+ isPlaying.value && styles$F.playing,
1679
+ isLoading.value && styles$F.loading,
1680
+ hasError.value && styles$F.errored,
1681
+ props.class
1682
+ ],
1683
+ style: _fnSignal(_hf0$q, [
1684
+ hoverRatio,
1685
+ progress
1686
+ ]),
1687
+ ..._getVarProps(rest)
1688
+ }, _getConstProps(rest), [
1689
+ /* @__PURE__ */ _jsxSorted("audio", {
1690
+ autoplay: _wrapProp(props, "autoPlay"),
1691
+ loop: _wrapProp(props, "loop"),
1692
+ "q-e:canplay": /* @__PURE__ */ inlinedQrl((_, _1, _2, _3, _4, isLoading2) => isLoading2.value = false, "ElmAudioPlayer_component_div_audio_q_e_canplay_9wP9DQ5FnZw"),
1693
+ "q-e:durationchange": /* @__PURE__ */ inlinedQrl((_, el, _2, duration2) => duration2.value = el.duration, "ElmAudioPlayer_component_div_audio_q_e_durationchange_1Qldw8NrJFs"),
1694
+ "q-e:ended": /* @__PURE__ */ inlinedQrl((_, _1, _2, _3, _4, _5, _6, isPlaying2, _8, _9, stopRaf2) => {
1695
+ isPlaying2.value = false;
1696
+ stopRaf2();
1697
+ }, "ElmAudioPlayer_component_div_audio_q_e_ended_6V0pmk1XTv4"),
1698
+ "q-e:error": /* @__PURE__ */ inlinedQrl((_, _1, _2, _3, hasError2, isLoading2) => {
1699
+ hasError2.value = true;
1700
+ isLoading2.value = false;
1701
+ }, "ElmAudioPlayer_component_div_audio_q_e_error_iWobgs8gRR0"),
1702
+ "q-e:loadedmetadata": /* @__PURE__ */ inlinedQrl((_, el, _2, duration2, _4, isLoading2, isMuted2, _7, _8, _9, _10, volume22) => {
1703
+ duration2.value = el.duration;
1704
+ volume22.value = el.volume;
1705
+ isMuted2.value = el.muted;
1706
+ isLoading2.value = false;
1707
+ }, "ElmAudioPlayer_component_div_audio_q_e_loadedmetadata_u6lLcP8Pk4A"),
1708
+ "q-e:pause": /* @__PURE__ */ inlinedQrl((_, _1, _2, _3, _4, _5, _6, isPlaying2, _8, _9, stopRaf2) => {
1709
+ isPlaying2.value = false;
1710
+ stopRaf2();
1711
+ }, "ElmAudioPlayer_component_div_audio_q_e_pause_RC60H909VsM"),
1712
+ "q-e:play": /* @__PURE__ */ inlinedQrl((_, _1, _2, _3, _4, _5, _6, isPlaying2, _8, startRaf2) => {
1713
+ isPlaying2.value = true;
1714
+ startRaf2();
1715
+ }, "ElmAudioPlayer_component_div_audio_q_e_play_nhVqTik63OM"),
1716
+ "q-e:playing": /* @__PURE__ */ inlinedQrl((_, _1, _2, _3, _4, isLoading2) => isLoading2.value = false, "ElmAudioPlayer_component_div_audio_q_e_playing_y7NnWkObWHI"),
1717
+ "q-e:timeupdate": /* @__PURE__ */ inlinedQrl((_, el, currentTime2, _3, _4, _5, _6, _7, rafId2) => {
1718
+ if (rafId2.value == null) currentTime2.value = el.currentTime;
1719
+ }, "ElmAudioPlayer_component_div_audio_q_e_timeupdate_q5IfjlJ1OeU"),
1720
+ "q-e:volumechange": /* @__PURE__ */ inlinedQrl((_, el, _2, _3, _4, _5, isMuted2, _7, _8, _9, _10, volume22) => {
1721
+ volume22.value = el.volume;
1722
+ isMuted2.value = el.muted;
1723
+ }, "ElmAudioPlayer_component_div_audio_q_e_volumechange_ItVSO66jfwo"),
1724
+ "q-e:waiting": /* @__PURE__ */ inlinedQrl((_, _1, _2, _3, _4, isLoading2) => isLoading2.value = true, "ElmAudioPlayer_component_div_audio_q_e_waiting_iiUap70uy9g"),
1725
+ "q:ps": [
1726
+ currentTime,
1727
+ duration,
1728
+ hasError,
1729
+ isLoading,
1730
+ isMuted,
1731
+ isPlaying,
1732
+ rafId,
1733
+ startRaf,
1734
+ stopRaf,
1735
+ volume2
1736
+ ],
1737
+ ref: audioRef,
1738
+ src: _wrapProp(props, "src")
1739
+ }, {
1740
+ preload: "metadata"
1741
+ }, null, 6, null),
1742
+ /* @__PURE__ */ _jsxSorted("div", null, {
1743
+ class: styles$F.header
1744
+ }, [
1745
+ /* @__PURE__ */ _jsxSorted("span", {
1746
+ class: [
1747
+ styles$F.artwork,
1748
+ hasError.value && styles$F["artwork-error"]
1749
+ ]
1750
+ }, {
1751
+ "aria-hidden": "true"
1752
+ }, /* @__PURE__ */ _jsxSorted(ElmMdiIcon, {
1753
+ d: hasError.value ? mdiAlertCircleOutline : mdiMusicNote
1754
+ }, {
1755
+ size: "1.25rem"
1756
+ }, null, 3, "CY_0"), 1, null),
1757
+ /* @__PURE__ */ _jsxSorted("div", null, {
1758
+ class: styles$F.meta
1759
+ }, [
1760
+ /* @__PURE__ */ _jsxSorted("span", null, {
1761
+ class: styles$F.title,
1762
+ title: _wrapProp(resolvedTitle)
1763
+ }, _wrapProp(resolvedTitle), 3, null),
1764
+ props.artist && /* @__PURE__ */ _jsxSorted("span", null, {
1765
+ class: styles$F.artist
1766
+ }, _wrapProp(props, "artist"), 1, "CY_1")
1767
+ ], 1, null),
1768
+ /* @__PURE__ */ _jsxSorted("span", null, {
1769
+ class: styles$F.equalizer,
1770
+ "aria-hidden": "true"
1771
+ }, [
1772
+ /* @__PURE__ */ _jsxSorted("i", null, null, null, 3, null),
1773
+ /* @__PURE__ */ _jsxSorted("i", null, null, null, 3, null),
1774
+ /* @__PURE__ */ _jsxSorted("i", null, null, null, 3, null),
1775
+ /* @__PURE__ */ _jsxSorted("i", null, null, null, 3, null)
1776
+ ], 3, null)
1777
+ ], 1, null),
1778
+ hasError.value ? /* @__PURE__ */ _jsxSorted("div", null, {
1779
+ class: styles$F["error-notice"],
1780
+ role: "alert"
1781
+ }, [
1782
+ /* @__PURE__ */ _jsxSorted(ElmMdiIcon, null, {
1783
+ d: mdiAlertCircleOutline,
1784
+ size: "1.25rem"
1785
+ }, null, 3, "CY_2"),
1786
+ /* @__PURE__ */ _jsxSorted("span", null, {
1787
+ class: styles$F["error-message"]
1788
+ }, _fnSignal(_hf1$e, [
1789
+ props
1790
+ ]), 1, null)
1791
+ ], 1, "CY_3") : /* @__PURE__ */ _jsxSorted(Fragment, null, null, [
1792
+ /* @__PURE__ */ _jsxSorted("div", {
1793
+ "aria-valuemax": Math.round(duration.value) || 0,
1794
+ "aria-valuenow": Math.round(currentTime.value),
1795
+ "aria-valuetext": `${formatTime(currentTime.value)} of ${formatTime(duration.value)}`,
1796
+ "q-e:keydown": /* @__PURE__ */ inlinedQrl((event, _1, currentTime2, duration2, _4, props2, seekTo2) => {
1797
+ if (event.key === "ArrowRight") {
1798
+ event.preventDefault();
1799
+ seekTo2(currentTime2.value + (props2.seekStep ?? 10));
1800
+ } else if (event.key === "ArrowLeft") {
1801
+ event.preventDefault();
1802
+ seekTo2(currentTime2.value - (props2.seekStep ?? 10));
1803
+ } else if (event.key === "Home") {
1804
+ event.preventDefault();
1805
+ seekTo2(0);
1806
+ } else if (event.key === "End") {
1807
+ event.preventDefault();
1808
+ seekTo2(duration2.value);
1809
+ }
1810
+ }, "ElmAudioPlayer_component_div_Fragment_div_q_e_keydown_J0ebQ9Yvu08"),
1811
+ "q-e:pointerdown": /* @__PURE__ */ inlinedQrl((event, el, _2, duration2, _4, _5, seekTo2) => {
1812
+ el.setPointerCapture(event.pointerId);
1813
+ const rect2 = el.getBoundingClientRect();
1814
+ const ratio = rect2.width === 0 ? 0 : Math.max(0, Math.min(1, (event.clientX - rect2.left) / rect2.width));
1815
+ seekTo2(ratio * duration2.value);
1816
+ }, "ElmAudioPlayer_component_div_Fragment_div_q_e_pointerdown_780WVX50v1Y"),
1817
+ "q-e:pointerleave": /* @__PURE__ */ inlinedQrl((_, _1, _2, _3, hoverRatio2) => hoverRatio2.value = null, "ElmAudioPlayer_component_div_Fragment_div_q_e_pointerleave_K0r0ltqd1Ak"),
1818
+ "q-e:pointermove": /* @__PURE__ */ inlinedQrl((event, el, _2, duration2, hoverRatio2, _5, seekTo2) => {
1819
+ const rect2 = el.getBoundingClientRect();
1820
+ const ratio = rect2.width === 0 ? 0 : Math.max(0, Math.min(1, (event.clientX - rect2.left) / rect2.width));
1821
+ hoverRatio2.value = ratio;
1822
+ if (el.hasPointerCapture(event.pointerId)) {
1823
+ seekTo2(ratio * duration2.value);
1824
+ }
1825
+ }, "ElmAudioPlayer_component_div_Fragment_div_q_e_pointermove_aXJtCYXlCkc"),
1826
+ "q:ps": [
1827
+ currentTime,
1828
+ duration,
1829
+ hoverRatio,
1830
+ props,
1831
+ seekTo
1832
+ ]
1833
+ }, {
1834
+ class: styles$F.seekbar,
1835
+ role: "slider",
1836
+ tabIndex: 0,
1837
+ "aria-label": "Seek",
1838
+ "aria-valuemin": 0
1839
+ }, [
1840
+ /* @__PURE__ */ _jsxSorted("div", null, {
1841
+ class: styles$F.track,
1842
+ "aria-hidden": "true"
1843
+ }, /* @__PURE__ */ _jsxSorted("div", null, {
1844
+ class: styles$F.fill
1845
+ }, null, 3, null), 3, null),
1846
+ /* @__PURE__ */ _jsxSorted("span", null, {
1847
+ class: styles$F["hover-thumb"],
1848
+ "aria-hidden": "true"
1849
+ }, null, 3, null),
1850
+ /* @__PURE__ */ _jsxSorted("span", null, {
1851
+ class: styles$F.thumb,
1852
+ "aria-hidden": "true"
1853
+ }, null, 3, null)
1854
+ ], 6, null),
1855
+ /* @__PURE__ */ _jsxSorted("div", null, {
1856
+ class: styles$F.controls
1857
+ }, [
1858
+ /* @__PURE__ */ _jsxSorted("span", null, {
1859
+ class: [
1860
+ styles$F.time,
1861
+ styles$F["time-current"]
1862
+ ]
1863
+ }, formatTime(currentTime.value), 1, null),
1864
+ /* @__PURE__ */ _jsxSorted("div", null, {
1865
+ class: styles$F["transport"]
1866
+ }, [
1867
+ /* @__PURE__ */ _jsxSorted("button", {
1868
+ "aria-label": `Back ${props.seekStep ?? 10} seconds`,
1869
+ "q-e:click": /* @__PURE__ */ inlinedQrl((_, _1, currentTime2, props2, seekTo2) => seekTo2(currentTime2.value - (props2.seekStep ?? 10)), "ElmAudioPlayer_component_div_Fragment_div_div_button_q_e_click_dyAWFy4PvTs"),
1870
+ "q:ps": [
1871
+ currentTime,
1872
+ props,
1873
+ seekTo
1874
+ ]
1875
+ }, {
1876
+ type: "button",
1877
+ class: styles$F["icon-button"]
1878
+ }, /* @__PURE__ */ _jsxSorted(ElmMdiIcon, null, {
1879
+ d: mdiRewind10,
1880
+ size: "1.25rem"
1881
+ }, null, 3, "CY_4"), 4, null),
1882
+ /* @__PURE__ */ _jsxSorted("button", null, {
1883
+ type: "button",
1884
+ class: styles$F["play-button"],
1885
+ "q-e:click": togglePlay,
1886
+ "aria-label": _fnSignal(_hf2$a, [
1887
+ isPlaying
1888
+ ]),
1889
+ "aria-pressed": _wrapProp(isPlaying)
1890
+ }, /* @__PURE__ */ _jsxSorted(ElmMdiIcon, {
1891
+ d: isPlaying.value ? mdiPause : mdiPlay
1892
+ }, {
1893
+ size: "1.5rem"
1894
+ }, null, 3, "CY_5"), 1, null),
1895
+ /* @__PURE__ */ _jsxSorted("button", {
1896
+ "aria-label": `Forward ${props.seekStep ?? 10} seconds`,
1897
+ "q-e:click": /* @__PURE__ */ inlinedQrl((_, _1, currentTime2, props2, seekTo2) => seekTo2(currentTime2.value + (props2.seekStep ?? 10)), "ElmAudioPlayer_component_div_Fragment_div_div_button_q_e_click_1_8X73FmeqLbY"),
1898
+ "q:ps": [
1899
+ currentTime,
1900
+ props,
1901
+ seekTo
1902
+ ]
1903
+ }, {
1904
+ type: "button",
1905
+ class: styles$F["icon-button"]
1906
+ }, /* @__PURE__ */ _jsxSorted(ElmMdiIcon, null, {
1907
+ d: mdiFastForward10,
1908
+ size: "1.25rem"
1909
+ }, null, 3, "CY_6"), 4, null)
1910
+ ], 1, null),
1911
+ /* @__PURE__ */ _jsxSorted("div", null, {
1912
+ class: styles$F.volume
1913
+ }, [
1914
+ /* @__PURE__ */ _jsxSorted("button", null, {
1915
+ type: "button",
1916
+ class: styles$F["icon-button"],
1917
+ "q-e:click": toggleMute,
1918
+ "aria-label": _fnSignal(_hf3$9, [
1919
+ isMuted
1920
+ ]),
1921
+ "aria-pressed": _wrapProp(isMuted)
1922
+ }, /* @__PURE__ */ _jsxSorted(ElmMdiIcon, null, {
1923
+ d: _wrapProp(volumeIcon),
1924
+ size: "1.25rem"
1925
+ }, null, 3, "CY_7"), 1, null),
1926
+ /* @__PURE__ */ _jsxSorted("input", {
1927
+ "q-e:input": /* @__PURE__ */ inlinedQrl((_, el, changeVolume2) => changeVolume2(el.valueAsNumber), "ElmAudioPlayer_component_div_Fragment_div_div_input_q_e_input_wgZ524DJ28g"),
1928
+ "q:p": changeVolume
1929
+ }, {
1930
+ class: styles$F["volume-slider"],
1931
+ type: "range",
1932
+ min: 0,
1933
+ max: 1,
1934
+ step: 0.01,
1935
+ value: _fnSignal(_hf4$5, [
1936
+ isMuted,
1937
+ volume2
1938
+ ]),
1939
+ "aria-label": "Volume",
1940
+ style: _fnSignal(_hf5$3, [
1941
+ isMuted,
1942
+ volume2
1943
+ ])
1944
+ }, null, 6, null)
1945
+ ], 1, null),
1946
+ /* @__PURE__ */ _jsxSorted("span", null, {
1947
+ class: [
1948
+ styles$F.time,
1949
+ styles$F["time-total"]
1950
+ ]
1951
+ }, formatTime(duration.value), 1, null)
1952
+ ], 1, null)
1953
+ ], 1, "CY_8")
1954
+ ], 0, "CY_9");
1955
+ }, "ElmAudioPlayer_component_yG6lZHeffu8"));
1472
1956
  const image$2 = "_image_kwjx3_12";
1473
1957
  const fallback$1 = "_fallback_kwjx3_36";
1474
1958
  const styles$E = {
@@ -1510,9 +1994,9 @@ const ElmModal = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props)
1510
1994
  ]);
1511
1995
  const dialogRef = useSignal();
1512
1996
  const isShown = useSignal(false);
1513
- useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track, cleanup }) => {
1997
+ useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2, cleanup }) => {
1514
1998
  const dialogRef2 = _captures[0], isShown2 = _captures[1], props2 = _captures[2];
1515
- track(() => props2.isOpen);
1999
+ track2(() => props2.isOpen);
1516
2000
  if (!dialogRef2.value) return;
1517
2001
  if (props2.isOpen) {
1518
2002
  dialogRef2.value.showModal();
@@ -2156,9 +2640,9 @@ const ElmTable = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props)
2156
2640
  "hasRowHeader"
2157
2641
  ]);
2158
2642
  const hasRowHeader = useSignal(props.hasRowHeader ?? false);
2159
- useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track }) => {
2643
+ useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2 }) => {
2160
2644
  const hasRowHeader2 = _captures[0], props2 = _captures[1];
2161
- hasRowHeader2.value = track(() => props2.hasRowHeader) ?? false;
2645
+ hasRowHeader2.value = track2(() => props2.hasRowHeader) ?? false;
2162
2646
  }, "ElmTable_component_useTask_TZl40E0lLa8", [
2163
2647
  hasRowHeader,
2164
2648
  props
@@ -2313,10 +2797,14 @@ const ElmUnsupportedBlock = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlined
2313
2797
  }, "ElmUnsupportedBlock_component_yKqwfnlPSP4"));
2314
2798
  const _hf0$l = (p0) => p0.props.color;
2315
2799
  const _hf1$b = (p0) => p0.props.ruby;
2316
- const _hf10 = (p0) => p0.props.width;
2317
- const _hf11 = (p0) => p0.props.height;
2318
- const _hf12 = (p0) => p0.props.hasRowHeader;
2319
- const _hf13 = (p0) => p0.props.isHeader;
2800
+ const _hf10 = (p0) => p0.props.seekStep;
2801
+ const _hf11 = (p0) => p0.props.loop;
2802
+ const _hf12 = (p0) => p0.props.autoPlay;
2803
+ const _hf13 = (p0) => p0.props.width;
2804
+ const _hf14 = (p0) => p0.props.height;
2805
+ const _hf15 = (p0) => p0.props.muted;
2806
+ const _hf16 = (p0) => p0.props.hasRowHeader;
2807
+ const _hf17 = (p0) => p0.props.isHeader;
2320
2808
  const _hf2$8 = (p0) => p0.props.href;
2321
2809
  const _hf3$7 = (p0) => p0.props.favicon;
2322
2810
  const _hf4$3 = (p0) => p0.props.alt;
@@ -2401,7 +2889,7 @@ const blockCatalog = basicCatalog.extend(
2401
2889
  ...columnListStyle,
2402
2890
  ...firstChildMargin(_rawProps.index)
2403
2891
  }
2404
- }, null, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_5")),
2892
+ }, null, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_5")),
2405
2893
  // -------------------------------------------------------------------------
2406
2894
  // Block typography
2407
2895
  // -------------------------------------------------------------------------
@@ -2411,7 +2899,7 @@ const blockCatalog = basicCatalog.extend(
2411
2899
  level: _fnSignal(_hf5$2, [
2412
2900
  _rawProps
2413
2901
  ])
2414
- }, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_6")),
2902
+ }, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_6")),
2415
2903
  defineRenderer(ParagraphApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(ElmParagraph, {
2416
2904
  style: firstChildMargin(_rawProps.index)
2417
2905
  }, {
@@ -2429,21 +2917,21 @@ const blockCatalog = basicCatalog.extend(
2429
2917
  _rawProps
2430
2918
  ])
2431
2919
  }, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted("li", null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_8")),
2432
- defineRenderer(ListItemApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_9")),
2920
+ defineRenderer(ListItemApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_9")),
2433
2921
  defineRenderer(BlockQuoteApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(ElmBlockQuote, {
2434
2922
  style: firstChildMargin(_rawProps.index)
2435
2923
  }, {
2436
2924
  cite: _fnSignal(_hf8, [
2437
2925
  _rawProps
2438
2926
  ])
2439
- }, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_10")),
2927
+ }, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_10")),
2440
2928
  defineRenderer(CalloutApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(ElmCallout, {
2441
2929
  style: firstChildMargin(_rawProps.index)
2442
2930
  }, {
2443
2931
  type: _fnSignal(_hf9, [
2444
2932
  _rawProps
2445
2933
  ])
2446
- }, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_11")),
2934
+ }, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_11")),
2447
2935
  defineRenderer(DividerApi$1, (_rawProps) => /* @__PURE__ */ _jsxSorted(ElmDivider, {
2448
2936
  style: firstChildMargin(_rawProps.index)
2449
2937
  }, null, null, 3, "Fl_12")),
@@ -2453,7 +2941,7 @@ const blockCatalog = basicCatalog.extend(
2453
2941
  /* @__PURE__ */ _jsxSorted("div", {
2454
2942
  "q:slot": "summary"
2455
2943
  }, null, _rawProps.childRefs(_rawProps.props.summary).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted("span", null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, null),
2456
- _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`))
2944
+ _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`))
2457
2945
  ], 1, "Fl_13")),
2458
2946
  // -------------------------------------------------------------------------
2459
2947
  // Media / embed
@@ -2470,6 +2958,59 @@ const blockCatalog = basicCatalog.extend(
2470
2958
  src: _rawProps.resolve(_rawProps.props.src),
2471
2959
  style: firstChildMargin(_rawProps.index)
2472
2960
  }, null, null, 3, "Fl_15")),
2961
+ defineRenderer(AudioApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(ElmAudioPlayer, {
2962
+ artist: _rawProps.props.artist ? _rawProps.resolve(_rawProps.props.artist) : void 0,
2963
+ src: _rawProps.resolve(_rawProps.props.src),
2964
+ style: firstChildMargin(_rawProps.index),
2965
+ title: _rawProps.props.title ? _rawProps.resolve(_rawProps.props.title) : void 0
2966
+ }, {
2967
+ seekStep: _fnSignal(_hf10, [
2968
+ _rawProps
2969
+ ]),
2970
+ loop: _fnSignal(_hf11, [
2971
+ _rawProps
2972
+ ]),
2973
+ autoPlay: _fnSignal(_hf12, [
2974
+ _rawProps
2975
+ ])
2976
+ }, null, 3, "Fl_16")),
2977
+ defineRenderer(VideoApi$1, (_rawProps) => {
2978
+ const caption2 = _rawProps.props.caption ? _rawProps.resolve(_rawProps.props.caption) : void 0;
2979
+ return /* @__PURE__ */ _jsxSorted("figure", {
2980
+ style: {
2981
+ ...firstChildMargin(_rawProps.index),
2982
+ margin: 0
2983
+ }
2984
+ }, null, [
2985
+ /* @__PURE__ */ _jsxSorted("video", {
2986
+ autoplay: _fnSignal(_hf12, [
2987
+ _rawProps
2988
+ ]),
2989
+ height: _fnSignal(_hf14, [
2990
+ _rawProps
2991
+ ]),
2992
+ loop: _fnSignal(_hf11, [
2993
+ _rawProps
2994
+ ]),
2995
+ muted: _fnSignal(_hf15, [
2996
+ _rawProps
2997
+ ]),
2998
+ poster: _rawProps.props.poster ? _rawProps.resolve(_rawProps.props.poster) : void 0,
2999
+ src: _rawProps.resolve(_rawProps.props.src),
3000
+ title: _rawProps.props.title ? _rawProps.resolve(_rawProps.props.title) : void 0,
3001
+ width: _fnSignal(_hf13, [
3002
+ _rawProps
3003
+ ])
3004
+ }, {
3005
+ controls: true,
3006
+ style: {
3007
+ maxWidth: "100%",
3008
+ height: "auto"
3009
+ }
3010
+ }, null, 3, null),
3011
+ caption2 ? /* @__PURE__ */ _jsxSorted("figcaption", null, null, caption2, 1, "Fl_17") : null
3012
+ ], 1, "Fl_18");
3013
+ }),
2473
3014
  defineRenderer(BlockImageApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(ElmBlockImage, {
2474
3015
  alt: _rawProps.props.alt ? _rawProps.resolve(_rawProps.props.alt) : void 0,
2475
3016
  caption: _rawProps.props.caption ? _rawProps.resolve(_rawProps.props.caption) : void 0,
@@ -2478,14 +3019,14 @@ const blockCatalog = basicCatalog.extend(
2478
3019
  srcset: _rawProps.props.srcset ? _rawProps.resolve(_rawProps.props.srcset) : void 0,
2479
3020
  style: firstChildMargin(_rawProps.index)
2480
3021
  }, {
2481
- width: _fnSignal(_hf10, [
3022
+ width: _fnSignal(_hf13, [
2482
3023
  _rawProps
2483
3024
  ]),
2484
- height: _fnSignal(_hf11, [
3025
+ height: _fnSignal(_hf14, [
2485
3026
  _rawProps
2486
3027
  ]),
2487
3028
  enableModal: true
2488
- }, null, 3, "Fl_16")),
3029
+ }, null, 3, "Fl_19")),
2489
3030
  // -------------------------------------------------------------------------
2490
3031
  // Code / math / diagram
2491
3032
  // -------------------------------------------------------------------------
@@ -2494,13 +3035,13 @@ const blockCatalog = basicCatalog.extend(
2494
3035
  code: _rawProps.resolve(_rawProps.props.code),
2495
3036
  language: _rawProps.props.language ? _rawProps.resolve(_rawProps.props.language) : void 0,
2496
3037
  style: firstChildMargin(_rawProps.index)
2497
- }, null, null, 3, "Fl_17")),
3038
+ }, null, null, 3, "Fl_20")),
2498
3039
  defineRenderer(KatexApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(ElmKatex, {
2499
3040
  expression: _rawProps.resolve(_rawProps.props.expression),
2500
3041
  style: firstChildMargin(_rawProps.index)
2501
3042
  }, {
2502
3043
  block: true
2503
- }, null, 3, "Fl_18")),
3044
+ }, null, 3, "Fl_21")),
2504
3045
  // Mermaid is rendered as a syntax-highlighted code block — no dedicated
2505
3046
  // Mermaid renderer in this package. The diagram source is preserved so a
2506
3047
  // host application can post-process if needed.
@@ -2509,7 +3050,7 @@ const blockCatalog = basicCatalog.extend(
2509
3050
  style: firstChildMargin(_rawProps.index)
2510
3051
  }, {
2511
3052
  language: "mermaid"
2512
- }, null, 3, "Fl_19")),
3053
+ }, null, 3, "Fl_22")),
2513
3054
  // -------------------------------------------------------------------------
2514
3055
  // Tabs — ContentTab is data-only (its parent ContentTabs walks the surface
2515
3056
  // model to read each tab's label and content ChildList directly).
@@ -2532,11 +3073,11 @@ const blockCatalog = basicCatalog.extend(
2532
3073
  }, [
2533
3074
  /* @__PURE__ */ _jsxSorted(ElmTabList, null, null, tabs.map(({ tabId, labelIds }, idx) => /* @__PURE__ */ _jsxSorted(ElmTab, {
2534
3075
  value: String(idx)
2535
- }, null, labelIds.map((lid, i) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.renderChild(lid, "/", i), 1, `${lid}:${i}`)), 1, tabId)), 1, "Fl_20"),
3076
+ }, null, labelIds.map((lid, i) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.renderChild(lid, "/", i), 1, `${lid}:${i}`)), 1, tabId)), 1, "Fl_23"),
2536
3077
  tabs.map(({ tabId, contentIds }, idx) => /* @__PURE__ */ _jsxSorted(ElmTabPanel, {
2537
3078
  value: String(idx)
2538
- }, null, contentIds.map((cid, i) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.renderChild(cid, "/", i), 1, `${cid}:${i}`)), 1, tabId))
2539
- ], 1, "Fl_21");
3079
+ }, null, contentIds.map((cid, i) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.renderChild(cid, "/", i), 1, `${cid}:${i}`)), 1, tabId))
3080
+ ], 1, "Fl_24");
2540
3081
  }),
2541
3082
  // -------------------------------------------------------------------------
2542
3083
  // Table
@@ -2545,27 +3086,27 @@ const blockCatalog = basicCatalog.extend(
2545
3086
  caption: _rawProps.props.caption ? String(_rawProps.props.caption) : void 0,
2546
3087
  style: firstChildMargin(_rawProps.index)
2547
3088
  }, {
2548
- hasRowHeader: _fnSignal(_hf12, [
3089
+ hasRowHeader: _fnSignal(_hf16, [
2549
3090
  _rawProps
2550
3091
  ])
2551
3092
  }, [
2552
- _rawProps.props.header && _rawProps.props.header.length > 0 && /* @__PURE__ */ _jsxSorted(ElmTableHeader, null, null, _rawProps.childRefs(_rawProps.props.header).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_22"),
2553
- /* @__PURE__ */ _jsxSorted(ElmTableBody, null, null, _rawProps.childRefs(_rawProps.props.body).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_23")
2554
- ], 1, "Fl_24")),
2555
- defineRenderer(TableRowApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(ElmTableRow, null, null, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_25")),
3093
+ _rawProps.props.header && _rawProps.props.header.length > 0 && /* @__PURE__ */ _jsxSorted(ElmTableHeader, null, null, _rawProps.childRefs(_rawProps.props.header).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_25"),
3094
+ /* @__PURE__ */ _jsxSorted(ElmTableBody, null, null, _rawProps.childRefs(_rawProps.props.body).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_26")
3095
+ ], 1, "Fl_27")),
3096
+ defineRenderer(TableRowApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(ElmTableRow, null, null, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_28")),
2556
3097
  defineRenderer(TableCellApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(ElmTableCell, null, {
2557
- isHeader: _fnSignal(_hf13, [
3098
+ isHeader: _fnSignal(_hf17, [
2558
3099
  _rawProps
2559
3100
  ]),
2560
3101
  columnIndex: _wrapProp(_rawProps, "index")
2561
- }, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted("span", null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_26")),
3102
+ }, _rawProps.childRefs(_rawProps.props.children).map(({ id, path }, i) => /* @__PURE__ */ _jsxSorted("span", null, null, _rawProps.renderChild(id, path, i), 1, `${id}:${i}`)), 1, "Fl_29")),
2562
3103
  // -------------------------------------------------------------------------
2563
3104
  // Fallback
2564
3105
  // -------------------------------------------------------------------------
2565
3106
  defineRenderer(UnsupportedApi, (_rawProps) => /* @__PURE__ */ _jsxSorted(ElmUnsupportedBlock, {
2566
3107
  details: _rawProps.props.details ? `Unsupported component type: ${String(_rawProps.props.details)}` : "Unsupported component type",
2567
3108
  style: firstChildMargin(_rawProps.index)
2568
- }, null, null, 3, "Fl_27"))
3109
+ }, null, null, 3, "Fl_30"))
2569
3110
  );
2570
3111
  function findCompleteReasoningGroups(events) {
2571
3112
  const started = /* @__PURE__ */ new Set();
@@ -2788,9 +3329,9 @@ const ElmAgUiPromptPicker = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlined
2788
3329
  error: null
2789
3330
  });
2790
3331
  const firstFieldRef = useSignal();
2791
- useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track }) => {
3332
+ useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2 }) => {
2792
3333
  const active22 = _captures[0], firstFieldRef2 = _captures[1];
2793
- const desc = track(() => active22.descriptor);
3334
+ const desc = track2(() => active22.descriptor);
2794
3335
  if (!desc) return;
2795
3336
  requestAnimationFrame(() => firstFieldRef2.value?.focus());
2796
3337
  }, "ElmAgUiPromptPicker_component_useVisibleTask_feapXj33s9k", [
@@ -2820,10 +3361,10 @@ const ElmAgUiPromptPicker = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlined
2820
3361
  active2,
2821
3362
  modal2
2822
3363
  ]);
2823
- useTaskQrl(/* @__PURE__ */ inlinedQrl(async ({ track }) => {
3364
+ useTaskQrl(/* @__PURE__ */ inlinedQrl(async ({ track: track2 }) => {
2824
3365
  const _rawProps2 = _captures[0], onRowClick$2 = _captures[1];
2825
3366
  if (!_rawProps2.triggerDescriptor) return;
2826
- const desc = track(() => _rawProps2.triggerDescriptor.value);
3367
+ const desc = track2(() => _rawProps2.triggerDescriptor.value);
2827
3368
  if (desc === null) return;
2828
3369
  _rawProps2.triggerDescriptor.value = null;
2829
3370
  await onRowClick$2(desc);
@@ -2885,7 +3426,7 @@ const ElmAgUiPromptPicker = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlined
2885
3426
  active2,
2886
3427
  modal2
2887
3428
  ]);
2888
- return /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, [
3429
+ return /* @__PURE__ */ _jsxSorted(Fragment, null, null, [
2889
3430
  /* @__PURE__ */ _jsxSorted("div", {
2890
3431
  class: [
2891
3432
  styles$n.panel,
@@ -2921,7 +3462,7 @@ const ElmAgUiPromptPicker = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlined
2921
3462
  }), 1, null),
2922
3463
  /* @__PURE__ */ _jsxSorted(modal2.Modal, null, null, /* @__PURE__ */ _jsxSorted("div", null, {
2923
3464
  class: styles$n["modal-card"]
2924
- }, active2.descriptor && /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, [
3465
+ }, active2.descriptor && /* @__PURE__ */ _jsxSorted(Fragment, null, null, [
2925
3466
  /* @__PURE__ */ _jsxSorted("div", null, {
2926
3467
  class: styles$n["modal-header"]
2927
3468
  }, [
@@ -3391,7 +3932,7 @@ const renderByToken = (tokens) => {
3391
3932
  }
3392
3933
  return results;
3393
3934
  };
3394
- const ElmMarkdownStable = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_rawProps) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, renderByToken(_rawProps.tokens), 1, "c0_3"), "ElmMarkdownStable_component_QRIZ0kWHsGs"));
3935
+ const ElmMarkdownStable = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_rawProps) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, renderByToken(_rawProps.tokens), 1, "c0_3"), "ElmMarkdownStable_component_QRIZ0kWHsGs"));
3395
3936
  const ElmMarkdown = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
3396
3937
  const rest = _restProps(props, [
3397
3938
  "class",
@@ -3400,9 +3941,9 @@ const ElmMarkdown = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((pro
3400
3941
  ]);
3401
3942
  const stableTokens = useSignal([]);
3402
3943
  const tailTokens = useSignal([]);
3403
- useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track }) => {
3944
+ useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2 }) => {
3404
3945
  const props2 = _captures[0], stableTokens2 = _captures[1], tailTokens2 = _captures[2];
3405
- const md = track(() => props2.markdown);
3946
+ const md = track2(() => props2.markdown);
3406
3947
  const allTokens = marked.setOptions({
3407
3948
  gfm: true
3408
3949
  }).lexer(md);
@@ -3528,9 +4069,9 @@ const ElmAgUiToolExecution = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inline
3528
4069
  const isResultShown = useSignal(false);
3529
4070
  const isResultOpen = useSignal(false);
3530
4071
  const queue = useThrottledQueue(200);
3531
- useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track }) => {
4072
+ useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2 }) => {
3532
4073
  const _rawProps2 = _captures[0], isArgsOpen2 = _captures[1], isArgsShown2 = _captures[2], isOpen2 = _captures[3], isResultOpen2 = _captures[4], isResultShown2 = _captures[5], queue2 = _captures[6];
3533
- const eventType = track(() => _rawProps2.toolEventType);
4074
+ const eventType = track2(() => _rawProps2.toolEventType);
3534
4075
  switch (eventType) {
3535
4076
  case EventType.TOOL_CALL_START:
3536
4077
  queue2.value?.push(async () => {
@@ -3712,13 +4253,13 @@ const ElmAgUiInputContent = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlined
3712
4253
  break;
3713
4254
  }
3714
4255
  case "audio": {
3715
- return /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, null, 3, "xj_1");
4256
+ return /* @__PURE__ */ _jsxSorted(Fragment, null, null, null, 3, "xj_1");
3716
4257
  }
3717
4258
  case "video": {
3718
- return /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, null, 3, "xj_2");
4259
+ return /* @__PURE__ */ _jsxSorted(Fragment, null, null, null, 3, "xj_2");
3719
4260
  }
3720
4261
  case "document": {
3721
- return /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, /* @__PURE__ */ _jsxSorted("div", {
4262
+ return /* @__PURE__ */ _jsxSorted(Fragment, null, null, /* @__PURE__ */ _jsxSorted("div", {
3722
4263
  class: [
3723
4264
  styles$j["media-component"],
3724
4265
  _rawProps.class
@@ -3742,7 +4283,7 @@ const ElmAgUiInputContent = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlined
3742
4283
  ], 1, null), 1, "xj_4");
3743
4284
  }
3744
4285
  case "binary": {
3745
- return /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, null, 3, "xj_5");
4286
+ return /* @__PURE__ */ _jsxSorted(Fragment, null, null, null, 3, "xj_5");
3746
4287
  }
3747
4288
  case "image": {
3748
4289
  const { source } = content2;
@@ -3821,7 +4362,7 @@ const ElmAgUiMessageRenderer = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inli
3821
4362
  }
3822
4363
  case "assistant": {
3823
4364
  if (message2.content != null || message2.toolCalls?.length) {
3824
- return /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, [
4365
+ return /* @__PURE__ */ _jsxSorted(Fragment, null, null, [
3825
4366
  message2.toolCalls?.map((toolCall) => renderTool(toolCall, _rawProps.messages)),
3826
4367
  message2.content != null && /* @__PURE__ */ _jsxSorted("div", null, {
3827
4368
  class: styles$m["message-content-assistant-wrapper"]
@@ -3871,16 +4412,16 @@ const ElmAgUiMessageRenderer = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inli
3871
4412
  const reasoningRef = useSignal();
3872
4413
  const lastScrollTime = useSignal(0);
3873
4414
  const isOpen = useSignal(props.isReasoningRunning);
3874
- useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track }) => {
4415
+ useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2 }) => {
3875
4416
  const isOpen2 = _captures[0], props2 = _captures[1];
3876
- isOpen2.value = track(() => props2.isReasoningRunning);
4417
+ isOpen2.value = track2(() => props2.isReasoningRunning);
3877
4418
  }, "ElmAgUiMessageRenderer_component_render_Reasoning_component_useTask_60ln3xg09dQ", [
3878
4419
  isOpen,
3879
4420
  props
3880
4421
  ]));
3881
- useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track }) => {
4422
+ useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2 }) => {
3882
4423
  const lastScrollTime2 = _captures[0], props2 = _captures[1], reasoningRef2 = _captures[2];
3883
- track(() => props2.markdown);
4424
+ track2(() => props2.markdown);
3884
4425
  const now = Date.now();
3885
4426
  if (now - lastScrollTime2.value < 500) return;
3886
4427
  lastScrollTime2.value = now;
@@ -4019,9 +4560,9 @@ const ElmAgUiAgent = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((pr
4019
4560
  const input2 = useSignal("");
4020
4561
  const containerRef = useSignal();
4021
4562
  const lastScrollTime = useSignal(0);
4022
- useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track }) => {
4563
+ useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2 }) => {
4023
4564
  const containerRef2 = _captures[0], lastScrollTime2 = _captures[1], props2 = _captures[2];
4024
- track(() => props2.state.messages.length);
4565
+ track2(() => props2.state.messages.length);
4025
4566
  if (props2.enableAutoScroll) {
4026
4567
  const now = Date.now();
4027
4568
  if (now - lastScrollTime2.value < 500) return;
@@ -4095,7 +4636,7 @@ const ElmAgUiAgent = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((pr
4095
4636
  props
4096
4637
  ])
4097
4638
  }, null, 2, "Oj_0"),
4098
- props.state.error && /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, [
4639
+ props.state.error && /* @__PURE__ */ _jsxSorted(Fragment, null, null, [
4099
4640
  /* @__PURE__ */ _jsxSorted("div", null, {
4100
4641
  class: styles$i["error"]
4101
4642
  }, [
@@ -4293,10 +4834,10 @@ function useAgent({ url, tools, context, headers, initialMessages, agentFactory
4293
4834
  toolsRef,
4294
4835
  toolsSignal
4295
4836
  ]);
4296
- useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ cleanup, track }) => {
4837
+ useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ cleanup, track: track2 }) => {
4297
4838
  const agentRef2 = _captures[0], executeRun2 = _captures[1], factoryRef2 = _captures[2], headers2 = _captures[3], state2 = _captures[4], toolsRef2 = _captures[5], toolsSignal2 = _captures[6], url2 = _captures[7];
4298
- const trackedUrl = track(() => url2);
4299
- const trackedHeaders = track(() => headers2 ? {
4839
+ const trackedUrl = track2(() => url2);
4840
+ const trackedHeaders = track2(() => headers2 ? {
4300
4841
  ...headers2
4301
4842
  } : void 0);
4302
4843
  const factory = factoryRef2.value ?? ((opts) => new HttpAgent(opts));
@@ -4438,12 +4979,12 @@ async function createMcpClient(cfg) {
4438
4979
  const client = new Client(CLIENT_INFO, {
4439
4980
  capabilities: {}
4440
4981
  });
4441
- const transport = new StreamableHTTPClientTransport(new URL(cfg.url), {
4982
+ const transport2 = new StreamableHTTPClientTransport(new URL(cfg.url), {
4442
4983
  requestInit: cfg.headers ? {
4443
4984
  headers: cfg.headers
4444
4985
  } : void 0
4445
4986
  });
4446
- await client.connect(transport);
4987
+ await client.connect(transport2);
4447
4988
  return {
4448
4989
  listTools: async () => {
4449
4990
  const { tools } = await client.listTools();
@@ -4904,6 +5445,7 @@ const styles$d = {
4904
5445
  };
4905
5446
  const ElmButton = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props) => {
4906
5447
  const clicked = useSignal(false);
5448
+ const timer = useSignal();
4907
5449
  const rest = _restProps(props, [
4908
5450
  "class",
4909
5451
  "onClick$",
@@ -4913,18 +5455,26 @@ const ElmButton = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((props
4913
5455
  "color",
4914
5456
  "primary"
4915
5457
  ]);
5458
+ useTaskQrl(/* @__PURE__ */ inlinedQrl(({ cleanup }) => {
5459
+ const timer2 = _captures[0];
5460
+ cleanup(() => clearTimeout(timer2.value));
5461
+ }, "ElmButton_component_useTask_CIR92bUomvY", [
5462
+ timer
5463
+ ]));
4916
5464
  const handleClick = /* @__PURE__ */ inlinedQrl(async () => {
4917
- const clicked2 = _captures[0], props2 = _captures[1];
5465
+ const clicked2 = _captures[0], props2 = _captures[1], timer2 = _captures[2];
4918
5466
  if (!props2.isLoading && !props2.disabled) {
4919
5467
  if (props2.onClick$) {
4920
5468
  clicked2.value = true;
4921
- setTimeout(() => clicked2.value = false, 300);
5469
+ clearTimeout(timer2.value);
5470
+ timer2.value = setTimeout(() => clicked2.value = false, 300);
4922
5471
  await props2.onClick$();
4923
5472
  }
4924
5473
  }
4925
5474
  }, "ElmButton_component_handleClick_TjZWd0Dz3m8", [
4926
5475
  clicked,
4927
- props
5476
+ props,
5477
+ timer
4928
5478
  ]);
4929
5479
  return /* @__PURE__ */ _jsxSplit("button", {
4930
5480
  "q-e:click": handleClick,
@@ -5824,9 +6374,9 @@ const useDebouncedSignal = (initialValue, delay) => {
5824
6374
  const signal = useSignal(resolved);
5825
6375
  const debouncedSignal = useSignal(resolved);
5826
6376
  const isPending = useSignal(false);
5827
- useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track, cleanup }) => {
6377
+ useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2, cleanup }) => {
5828
6378
  const debouncedSignal2 = _captures[0], delay2 = _captures[1], isPending2 = _captures[2], signal2 = _captures[3];
5829
- const value = track(() => signal2.value);
6379
+ const value = track2(() => signal2.value);
5830
6380
  if (delay2 <= 0) {
5831
6381
  debouncedSignal2.value = value;
5832
6382
  isPending2.value = false;
@@ -5864,9 +6414,9 @@ const useDebouncedStore = (initialValue, delay) => {
5864
6414
  const store = useStore(cloneDeep(initialValue));
5865
6415
  const debouncedStore = useStore(cloneDeep(initialValue));
5866
6416
  const isPending = useSignal(false);
5867
- useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track, cleanup }) => {
6417
+ useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2, cleanup }) => {
5868
6418
  const debouncedStore2 = _captures[0], delay2 = _captures[1], isPending2 = _captures[2], store2 = _captures[3];
5869
- const snapshot = track(() => cloneDeep(store2));
6419
+ const snapshot = track2(() => cloneDeep(store2));
5870
6420
  if (delay2 <= 0) {
5871
6421
  syncStore$1(debouncedStore2, snapshot);
5872
6422
  isPending2.value = false;
@@ -5946,9 +6496,9 @@ const useThrottledSignal = (initialValue, interval) => {
5946
6496
  }, "useThrottledSignal_useTask_guB8zmf2bYc", [
5947
6497
  cooldownId
5948
6498
  ]));
5949
- useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track }) => {
6499
+ useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2 }) => {
5950
6500
  const cooldownId2 = _captures[0], interval2 = _captures[1], isCooling2 = _captures[2], signal2 = _captures[3], throttledSignal2 = _captures[4];
5951
- const value = track(() => signal2.value);
6501
+ const value = track2(() => signal2.value);
5952
6502
  if (interval2 <= 0) {
5953
6503
  throttledSignal2.value = value;
5954
6504
  return;
@@ -6001,9 +6551,9 @@ const useThrottledStore = (initialValue, interval) => {
6001
6551
  }, "useThrottledStore_useTask_3uGijs762ho", [
6002
6552
  cooldownId
6003
6553
  ]));
6004
- useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track }) => {
6554
+ useTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2 }) => {
6005
6555
  const cooldownId2 = _captures[0], interval2 = _captures[1], isCooling2 = _captures[2], store2 = _captures[3], throttledStore2 = _captures[4];
6006
- const snapshot = track(() => cloneDeep(store2));
6556
+ const snapshot = track2(() => cloneDeep(store2));
6007
6557
  if (interval2 <= 0) {
6008
6558
  syncStore(throttledStore2, snapshot);
6009
6559
  return;
@@ -6166,9 +6716,9 @@ const useStorage = (_rawProps) => {
6166
6716
  ]), {
6167
6717
  strategy: "document-ready"
6168
6718
  });
6169
- useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track }) => {
6719
+ useVisibleTaskQrl(/* @__PURE__ */ inlinedQrl(({ track: track2 }) => {
6170
6720
  const _rawProps2 = _captures[0], bcRef2 = _captures[1], state2 = _captures[2], storageRef2 = _captures[3];
6171
- const newState = track(state2);
6721
+ const newState = track2(state2);
6172
6722
  const storage = storageRef2.value;
6173
6723
  if (!storage) return;
6174
6724
  try {
@@ -6273,7 +6823,7 @@ const styles$5 = {
6273
6823
  const _hf0$3 = (p0) => p0.size ?? "2rem";
6274
6824
  const ElmToggleTheme = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_rawProps) => {
6275
6825
  const elmethistheme = useElmethisTheme();
6276
- return /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, !elmethistheme.isDarkTheme.value ? /* @__PURE__ */ _jsxSorted("svg", {
6826
+ return /* @__PURE__ */ _jsxSorted(Fragment, null, null, !elmethistheme.isDarkTheme.value ? /* @__PURE__ */ _jsxSorted("svg", {
6277
6827
  class: [
6278
6828
  styles$5["elm-toggle-theme"],
6279
6829
  _rawProps.class
@@ -6741,7 +7291,7 @@ const ElmBreadcrumb = /* @__PURE__ */ componentQrl(/* @__PURE__ */ inlinedQrl((_
6741
7291
  _rawProps.class
6742
7292
  ],
6743
7293
  ..._getVarProps(props)
6744
- }, _getConstProps(props), _rawProps.links.map((link2, index) => /* @__PURE__ */ _jsxSorted(Fragment$1, null, null, [
7294
+ }, _getConstProps(props), _rawProps.links.map((link2, index) => /* @__PURE__ */ _jsxSorted(Fragment, null, null, [
6745
7295
  /* @__PURE__ */ _jsxSorted("span", {
6746
7296
  "q-e:click": link2.onClick$
6747
7297
  }, {
@@ -24154,6 +24704,7 @@ export {
24154
24704
  ElmAgUiMessageRenderer,
24155
24705
  ElmAgUiPromptPicker,
24156
24706
  ElmAgUiToolExecution,
24707
+ ElmAudioPlayer,
24157
24708
  ElmBlockFallback,
24158
24709
  ElmBlockImage,
24159
24710
  ElmBlockQuote,